aboutsummaryrefslogtreecommitdiff
path: root/src/completion/Completer.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/completion/Completer.cpp47
1 files changed, 28 insertions, 19 deletions
diff --git a/src/completion/Completer.cpp b/src/completion/Completer.cpp
index 27a7b77..95d1dde 100644
--- a/src/completion/Completer.cpp
+++ b/src/completion/Completer.cpp
@@ -9,6 +9,7 @@
#include <QtCore/qnamespace.h>
#include <QtCore/qsortfilterproxymodel.h>
#include <QtCore>
+#include <QtWidgets/qboxlayout.h>
#include "completion/Completer.hpp"
#include "completion/CompleterDelegate.hpp"
@@ -17,43 +18,46 @@ const char *completerStyles = R"(
background-color: #111;
color: #fff;
border-radius: 0;
- width: 100%;
)";
-Completer::Completer() : QWidget() {
- view = new QTreeView(this);
+Completer::Completer(QWidget *parentNode) : QWidget(parentNode) {
+ layout = new QHBoxLayout(this);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+
+ setLayout(layout);
+ setStyleSheet(completerStyles);
+ setContentsMargins(0, 0, 0, 0);
+
+ view = new QTreeView();
+ layout->addWidget(view, 0);
viewDelegate = new CompleterDelegate(view);
- view->setStyleSheet(completerStyles);
view->setItemDelegate(viewDelegate);
view->setRootIsDecorated(false);
view->setUniformRowHeights(true);
view->header()->hide();
- view->setColumnWidth(1, 500);
+ view->setColumnWidth(0, 500);
view->setModel(&proxyModel);
view->setFocusPolicy(Qt::NoFocus);
- view->setEditTriggers(QAbstractItemView::NoEditTriggers);
view->setSelectionMode(QAbstractItemView::SingleSelection);
-}
-
-void Completer::setSourceModel(QAbstractItemModel *model) {
- proxyModel.setSourceModel(model);
-}
-
-void Completer::onTextChange(QString text) {
- proxyModel.setFilterWildcard(text);
-}
-
-void Completer::setHighlightedRow(uint32_t row) {
- viewDelegate->setCurrentRow(row);
- view->update();
+ view->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
+ view->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
+ view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
void Completer::acceptHighlighted() {
auto index = proxyModel.index(viewDelegate->currentRow(), 0);
auto text = proxyModel.data(index, Qt::DisplayRole).toString();
+ setHighlightedRow(0);
emit accepted(text);
}
+void Completer::onTextChange(QString text) {
+ setHighlightedRow(0);
+ proxyModel.setFilterWildcard(text);
+}
+
bool Completer::onKeyPressEvent(QKeyEvent *event) {
auto combo = event->keyCombination();
auto row = viewDelegate->currentRow();
@@ -84,3 +88,8 @@ bool Completer::onKeyPressEvent(QKeyEvent *event) {
return false;
}
+
+void Completer::setHighlightedRow(uint32_t row) {
+ viewDelegate->setCurrentRow(row);
+ view->update();
+}