-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Expand file tree
/
Copy pathListDockWidget.cpp
More file actions
70 lines (56 loc) · 2.35 KB
/
ListDockWidget.cpp
File metadata and controls
70 lines (56 loc) · 2.35 KB
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
#include "ListDockWidget.h"
#include "ui_ListDockWidget.h"
#include "core/MainWindow.h"
#include "common/Helpers.h"
#include "common/CutterSearchable.h"
#include "shortcuts/ShortcutManager.h"
#include <QMenu>
#include <QResizeEvent>
#include <QShortcut>
ListDockWidget::ListDockWidget(MainWindow *main, SearchBarPolicy searchBarPolicy)
: CutterDockWidget(main),
ui(new Ui::ListDockWidget),
tree(new CutterTreeWidget(this)),
searchBarPolicy(searchBarPolicy)
{
ui->setupUi(this);
// Add Status Bar footer
tree->addStatusBar(ui->verticalLayout);
if (searchBarPolicy != SearchBarPolicy::Hide) {
// Ctrl-F to show/hide the filter entry
QShortcut *searchShortcut = Shortcuts()->makeQShortcut("General.showFilter", this);
connect(searchShortcut, &QShortcut::activated, ui->quickFilterView,
&QuickFilterView::showFilter);
searchShortcut->setContext(Qt::WidgetWithChildrenShortcut);
// Esc to clear the filter entry
QShortcut *clearShortcut = Shortcuts()->makeQShortcut("General.clearFilter", this);
connect(clearShortcut, &QShortcut::activated, [this]() {
ui->quickFilterView->clearFilter();
ui->treeView->setFocus();
});
clearShortcut->setContext(Qt::WidgetWithChildrenShortcut);
}
qhelpers::setVerticalScrollMode(ui->treeView);
ui->treeView->setMainWindow(mainWindow);
if (searchBarPolicy != SearchBarPolicy::ShowByDefault) {
ui->quickFilterView->closeFilter();
}
}
ListDockWidget::~ListDockWidget() {}
void ListDockWidget::showCount(bool show)
{
tree->showStatusBar(show);
}
void ListDockWidget::setModels(AddressableFilterProxyModel *objectFilterProxyModel)
{
this->objectFilterProxyModel = objectFilterProxyModel;
ui->treeView->setModel(objectFilterProxyModel);
connect(ui->quickFilterView, &QuickFilterView::filterChanged, this,
[=](const QString &text, int options) {
CutterSearchableHelper::applyFilter(objectFilterProxyModel, text, options);
});
connect(ui->quickFilterView, &QuickFilterView::filterClosed, ui->treeView,
static_cast<void (QWidget::*)()>(&QWidget::setFocus));
connect(ui->quickFilterView, &QuickFilterView::filterTextChanged, this,
[this] { tree->showItemsNumber(this->objectFilterProxyModel->rowCount()); });
}