Changeset View
Changeset View
Standalone View
Standalone View
kate/katequickopen.cpp
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Line(s) | |||||
48 | #include <QTreeView> | 48 | #include <QTreeView> | ||
49 | #include <QHeaderView> | 49 | #include <QHeaderView> | ||
50 | 50 | | |||
51 | Q_DECLARE_METATYPE(QPointer<KTextEditor::Document>) | 51 | Q_DECLARE_METATYPE(QPointer<KTextEditor::Document>) | ||
52 | 52 | | |||
53 | KateQuickOpen::KateQuickOpen(QWidget *parent, KateMainWindow *mainWindow) | 53 | KateQuickOpen::KateQuickOpen(QWidget *parent, KateMainWindow *mainWindow) | ||
54 | : QWidget(parent) | 54 | : QWidget(parent) | ||
55 | , m_mainWindow(mainWindow) | 55 | , m_mainWindow(mainWindow) | ||
56 | , m_matchMode(0) | | |||
57 | { | 56 | { | ||
58 | QVBoxLayout *layout = new QVBoxLayout(); | 57 | QVBoxLayout *layout = new QVBoxLayout(); | ||
59 | layout->setSpacing(0); | 58 | layout->setSpacing(0); | ||
60 | layout->setContentsMargins(0, 0, 0, 0); | 59 | layout->setContentsMargins(0, 0, 0, 0); | ||
61 | setLayout(layout); | 60 | setLayout(layout); | ||
62 | 61 | | |||
63 | m_inputLine = new KLineEdit(); | 62 | m_inputLine = new KLineEdit(); | ||
64 | setFocusProxy(m_inputLine); | 63 | setFocusProxy(m_inputLine); | ||
65 | m_inputLine->setPlaceholderText(i18n("Quick Open Search")); | 64 | m_inputLine->setPlaceholderText(i18n("Quick Open Search")); | ||
66 | 65 | | |||
67 | layout->addWidget(m_inputLine); | 66 | layout->addWidget(m_inputLine); | ||
68 | 67 | | |||
69 | m_listView = new QTreeView(); | 68 | m_listView = new QTreeView(); | ||
70 | layout->addWidget(m_listView, 1); | 69 | layout->addWidget(m_listView, 1); | ||
71 | m_listView->setTextElideMode(Qt::ElideLeft); | 70 | m_listView->setTextElideMode(Qt::ElideLeft); | ||
72 | 71 | | |||
73 | m_base_model = new KateQuickOpenModel(m_mainWindow, this); | 72 | m_base_model = new KateQuickOpenModel(m_mainWindow, this); | ||
74 | 73 | | |||
75 | m_model = new QSortFilterProxyModel(this); | 74 | m_model = new QSortFilterProxyModel(this); | ||
76 | m_model->setFilterRole(Qt::DisplayRole); | 75 | m_model->setFilterRole(Qt::DisplayRole); | ||
77 | m_model->setSortRole(Qt::DisplayRole); | 76 | m_model->setSortRole(Qt::DisplayRole); | ||
78 | m_model->setFilterCaseSensitivity(Qt::CaseInsensitive); | 77 | m_model->setFilterCaseSensitivity(Qt::CaseInsensitive); | ||
79 | m_model->setSortCaseSensitivity(Qt::CaseInsensitive); | 78 | m_model->setSortCaseSensitivity(Qt::CaseInsensitive); | ||
80 | m_model->setFilterKeyColumn(m_matchMode); | 79 | m_model->setFilterKeyColumn(0); | ||
81 | 80 | | |||
82 | connect(m_inputLine, &KLineEdit::textChanged, m_model, &QSortFilterProxyModel::setFilterWildcard); | 81 | connect(m_inputLine, &KLineEdit::textChanged, m_model, &QSortFilterProxyModel::setFilterWildcard); | ||
83 | connect(m_inputLine, &KLineEdit::returnPressed, this, &KateQuickOpen::slotReturnPressed); | 82 | connect(m_inputLine, &KLineEdit::returnPressed, this, &KateQuickOpen::slotReturnPressed); | ||
84 | connect(m_model, &QSortFilterProxyModel::rowsInserted, this, &KateQuickOpen::reselectFirst); | 83 | connect(m_model, &QSortFilterProxyModel::rowsInserted, this, &KateQuickOpen::reselectFirst); | ||
85 | connect(m_model, &QSortFilterProxyModel::rowsRemoved, this, &KateQuickOpen::reselectFirst); | 84 | connect(m_model, &QSortFilterProxyModel::rowsRemoved, this, &KateQuickOpen::reselectFirst); | ||
86 | 85 | | |||
87 | connect(m_listView, &QTreeView::activated, this, &KateQuickOpen::slotReturnPressed); | 86 | connect(m_listView, &QTreeView::activated, this, &KateQuickOpen::slotReturnPressed); | ||
88 | 87 | | |||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Line(s) | |||||
161 | void KateQuickOpen::slotReturnPressed() | 160 | void KateQuickOpen::slotReturnPressed() | ||
162 | { | 161 | { | ||
163 | const auto index = m_listView->model()->index(m_listView->currentIndex().row(), KateQuickOpenModel::Columns::FilePath); | 162 | const auto index = m_listView->model()->index(m_listView->currentIndex().row(), KateQuickOpenModel::Columns::FilePath); | ||
164 | auto url = index.data(Qt::UserRole).toUrl(); | 163 | auto url = index.data(Qt::UserRole).toUrl(); | ||
165 | m_mainWindow->wrapper()->openUrl(url); | 164 | m_mainWindow->wrapper()->openUrl(url); | ||
166 | m_mainWindow->slotWindowActivated(); | 165 | m_mainWindow->slotWindowActivated(); | ||
167 | m_inputLine->clear(); | 166 | m_inputLine->clear(); | ||
168 | } | 167 | } | ||
168 | | ||||
169 | | ||||
170 | void KateQuickOpen::setMatchMode(int mode) | ||||
171 | { | ||||
172 | m_model->setFilterKeyColumn(mode); | ||||
173 | } | ||||
174 | | ||||
175 | int KateQuickOpen::matchMode() | ||||
176 | { | ||||
177 | return m_model->filterKeyColumn(); | ||||
178 | } |