/* -*- 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 #include #include #include #include #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); //}