blob: eea7665c8493d4ebb73cd5f12cca8d87a8516396 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#ifndef PLUGINLISTVIEW_H
#define PLUGINLISTVIEW_H
#include "viewmarkingscrollbar.h"
#include <QDragEnterEvent>
#include <QTreeView>
namespace Ui
{
class MainWindow;
}
class OrganizerCore;
class MainWindow;
class ModListViewActions;
class PluginListSortProxy;
class PluginListView : public QTreeView
{
Q_OBJECT
public:
explicit PluginListView(QWidget* parent = nullptr);
void activated();
void setup(OrganizerCore& core, MainWindow* mw, Ui::MainWindow* mwui);
// the column by which the plugin list is currently sorted
//
int sortColumn() const;
// update the plugin counter
//
void updatePluginCount();
protected slots:
void onCustomContextMenuRequested(const QPoint& pos);
void onDoubleClicked(const QModelIndex& index);
void onFilterChanged(const QString& filter);
void onSortButtonClicked();
protected:
friend class PluginListContextMenu;
// map from/to the view indexes to the model
//
QModelIndex indexModelToView(const QModelIndex& index) const;
QModelIndexList indexModelToView(const QModelIndexList& index) const;
QModelIndex indexViewToModel(const QModelIndex& index) const;
QModelIndexList indexViewToModel(const QModelIndexList& index) const;
// method to react to various key events
//
bool moveSelection(int key);
bool toggleSelectionState();
// get/set the selected items on the view, this method return/take indices
// from the mod list model, not the view, so it's safe to restore
//
std::pair<QModelIndex, QModelIndexList> selected() const;
void setSelected(const QModelIndex& current, const QModelIndexList& selected);
bool event(QEvent* event) override;
private:
struct PluginListViewUi
{
// the plguin counter
QLCDNumber* counter;
// the filter
QLineEdit* filter;
};
OrganizerCore* m_core;
PluginListViewUi ui;
PluginListSortProxy* m_sortProxy;
ModListViewActions* m_modActions;
ViewMarkingScrollBar* m_Scrollbar;
bool m_didUpdateMasterList;
};
#endif // PLUGINLISTVIEW_H
|