From e5d35d6b643dbb8ecbd3ece2a0d84ec93cadbfc1 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 23 Apr 2022 22:02:06 +0200 Subject: First contact --- src/mainwindow.cc | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 src/mainwindow.cc (limited to 'src/mainwindow.cc') 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 +#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); +//} -- cgit v1.2.3