summaryrefslogtreecommitdiff
path: root/src/mainwindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r--src/mainwindow.cc32
1 files changed, 25 insertions, 7 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 711370f..b91ae43 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -34,6 +34,8 @@
#include <QPixmap>
#include <QListWidget>
#include <QPainter>
+#include <QVBoxLayout>
+#include <QLineEdit>
#include "database.h"
#include "viewer.h"
@@ -59,9 +61,19 @@ MainWindow::MainWindow(Database& db)
// Create the browser docking widget
//
QDockWidget *browser = new QDockWidget("Browser");
+ auto w = new QWidget();
+ auto layout = new QVBoxLayout();
+ w->setLayout(layout);
+
+ auto e = new QLineEdit();
+ layout->addWidget(e);
+ connect(e, &QLineEdit::textChanged, this, &MainWindow::filterChanged);
+
listWidget = new QListWidget(this);
listWidget->setIconSize({64, 64});
- browser->setWidget(listWidget);
+ layout->addWidget(listWidget);
+
+ browser->setWidget(w);
//
// Create the viewer
@@ -83,11 +95,6 @@ MainWindow::~MainWindow()
{
}
-//void MainWindow::updateDocumentStatus(bool changed)
-//{
-// setWindowTitle(QString("foo bar") + (changed?"*":""));
-//}
-
void MainWindow::readDatabase()
{
auto items = db.getRecipes();
@@ -108,7 +115,7 @@ void MainWindow::readDatabase()
{
image = QImage::fromData((const uchar*)item.image.data(), item.image.size());
}
- //image = image.scaled(128, 128, Qt::KeepAspectRatioByExpanding);
+
int h = image.height();
int w = image.width();
if(h > w)
@@ -172,3 +179,14 @@ void MainWindow::itemChanged(int)
auto recipe = db.getRecipe(id);
viewer->show(recipe);
}
+
+void MainWindow::filterChanged(const QString& text)
+{
+ QRegExp rx(text);
+ rx.setCaseSensitivity(Qt::CaseInsensitive);
+ for(int i = 0; i < listWidget->count(); ++i)
+ {
+ auto item = listWidget->item(i);
+ item->setHidden(!item->text().contains(rx) && !text.isEmpty());
+ }
+}