From eaf3efa06bf4d0149e4569466f19ab63086f427c Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 11 May 2022 16:45:50 +0200 Subject: Improve scratch-pad --- src/mainwindow.cc | 109 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 45 deletions(-) (limited to 'src/mainwindow.cc') diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 30680de..1e988bf 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -36,6 +36,7 @@ #include #include #include +#include #include "database.h" #include "viewer.h" @@ -43,53 +44,71 @@ MainWindow::MainWindow(Database& db) : db(db) { - //connect(document, SIGNAL(documentStatusChanged(bool)), this, SLOT(updateDocumentStatus(bool))); - //updateDocumentStatus(document->hasChanged()); - setWindowTitle("Qookie"); - // - // 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"); - 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}); - layout->addWidget(listWidget); - - browser->setWidget(w); - - // - // Create the viewer - // - viewer = new Viewer(); - setCentralWidget(viewer); - - addToolBar(Qt::TopToolBarArea, toolbar); - addDockWidget(Qt::LeftDockWidgetArea, browser); - - QObject::connect(listWidget, &QListWidget::currentRowChanged, - this, &MainWindow::itemChanged); - - listWidget->setSortingEnabled(true); + //client.connectToHost("127.0.0.1"); + client.connectToHost("nanny"); + + { + auto toolbar = new QToolBar(); + + { + auto act = toolbar->addAction("New Scratch Pad"); + connect(act, &QAction::triggered, + [&]() + { + viewer->scratchPad(); + }); + } + + { + auto spacer = new QWidget(); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + toolbar->addWidget(spacer); + } + + { + auto act = toolbar->addAction("🍪ookie-Cast"); + connect(act, &QAction::triggered, + [&]() + { + const auto& title = viewer->getTitle(); + const auto& html = viewer->getHtml(); + client.writeData(title, html.toUtf8()); + }); + } + + addToolBar(Qt::TopToolBarArea, toolbar); + } + + { + auto browser = new QDockWidget("Recipes"); + browser->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + 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}); + QObject::connect(listWidget, &QListWidget::currentRowChanged, + this, &MainWindow::itemChanged); + listWidget->setSortingEnabled(true); + layout->addWidget(listWidget); + + browser->setWidget(w); + + addDockWidget(Qt::LeftDockWidgetArea, browser); + } + + { + viewer = new Viewer(); + setCentralWidget(viewer); + } + readDatabase(); } -- cgit v1.2.3