summaryrefslogtreecommitdiff
path: root/src/mainwindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r--src/mainwindow.cc111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
new file mode 100644
index 0000000..c1b05f7
--- /dev/null
+++ b/src/mainwindow.cc
@@ -0,0 +1,111 @@
+/* -*- c++ -*- */
+/***************************************************************************
+ * mainwindow.cc
+ *
+ * Sat Apr 23 18:59:48 CEST 2022
+ * Copyright 2022 Bent Bisballe Nyeng
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of Qookie.
+ *
+ * Qookie is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Qookie is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Qookie; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#include "mainwindow.h"
+
+#include <QToolBar>
+#include <QDockWidget>
+#include <QLabel>
+#include <QPixmap>
+#include <QListWidget>
+
+#include "database.h"
+
+MainWindow::MainWindow(Database& db)
+ : db(db)
+{
+ //connect(document, SIGNAL(documentStatusChanged(bool)), this, SLOT(updateDocumentStatus(bool)));
+ //updateDocumentStatus(document->hasChanged());
+
+ //
+ // Create the toolbar
+ //
+ QToolBar *toolbar = new QToolBar("A toolbar");
+
+ QAction *act_load = toolbar->addAction("Load");
+ // connect(act_load, SIGNAL(triggered()), &document, SLOT(load()));
+
+ QAction *act_save = toolbar->addAction("Save");
+ // connect(act_save, SIGNAL(triggered()), &document, SLOT(save()));
+
+ //
+ // Create the browser docking widget
+ //
+ QDockWidget *browser = new QDockWidget("Browser");
+ listWidget = new QListWidget(this);
+ listWidget->setIconSize({128, 128});
+ browser->setWidget(listWidget);
+
+ //
+ // Create the viewer
+ //
+// viewer = new Viewer();
+// setCentralWidget(viewer);
+
+ addToolBar(Qt::TopToolBarArea, toolbar);
+ addDockWidget(Qt::LeftDockWidgetArea, browser);
+
+// connect signal:
+// void itemChanged(QListWidgetItem *item) in listWidget to itemchanged slot
+
+ readDatabase();
+}
+
+MainWindow::~MainWindow()
+{
+}
+
+//void MainWindow::updateDocumentStatus(bool changed)
+//{
+// setWindowTitle(QString("foo bar") + (changed?"*":""));
+//}
+
+void MainWindow::readDatabase()
+{
+ auto items = db.getRecipes();
+ for(const auto& item : items)
+ {
+ QListWidgetItem* listItem = new QListWidgetItem();
+ listItem->setText(QString::fromUtf8(item.title.data()));
+ if(!item.image.empty())
+ {
+ QIcon icon;
+ QImage image = QImage::fromData((const uchar*)item.image.data(), item.image.size());
+ icon.addPixmap(QPixmap::fromImage(image));
+ listItem->setIcon(icon);
+ }
+ listItem->setData(Qt::UserRole, item.id);
+ //listItem->setSizeHint({200,200});
+ listWidget->addItem(listItem);
+ }
+}
+
+//itemchanged slot(item*)
+//{
+// id = item->data(Qt::UserRole);
+// auto recipe = db.getRecipe(id);
+// viewer->show(recipe);
+//}