aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/mainwindow.cpp')
-rw-r--r--src/ui/mainwindow.cpp60
1 files changed, 56 insertions, 4 deletions
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index 7e4ca77..5a60391 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -1,14 +1,66 @@
#include "ui/mainwindow.h"
#include "ui_mainwindow.h"
-MainWindow::MainWindow(QWidget *parent) :
+#include "ui/metadatadialog.h"
+
+#include <iostream>
+
+MainWindow::MainWindow(samb::Structogram *structogram, QWidget *parent) :
QMainWindow(parent),
- ui(new Ui::MainWindow)
+ _ui(new Ui::MainWindow),
+ _structogram(structogram)
{
- ui->setupUi(this);
+ _ui->setupUi(this);
+ initData();
}
MainWindow::~MainWindow()
{
- delete ui;
+ delete _ui;
+}
+
+/**** private slots ****/
+
+void MainWindow::on_newButton_clicked()
+{
+ if (_structogram != nullptr)
+ {
+ // TODO: implement save dialog
+ std::cout << "TODO: implement save dialog" << std::endl;
+
+ delete _structogram;
+ _structogram = nullptr;
+ }
+
+ MetadataDialog *dialog = new MetadataDialog(this);
+ if (dialog->exec() == QDialog::Accepted)
+ {
+ _structogram = new samb::Structogram(dialog->title(), dialog->author());
+ }
+
+ delete dialog;
+}
+
+void MainWindow::on_metadataButton_clicked()
+{
+ if (_structogram == nullptr) { return; }
+
+ MetadataDialog *dialog = new MetadataDialog(this);
+ dialog->setMetadata(_structogram->title(), _structogram->author());
+
+ if (dialog->exec() == QDialog::Accepted)
+ {
+ _structogram->title(dialog->title());
+ _structogram->author(dialog->author());
+ }
+}
+
+/**** private methods ****/
+
+void MainWindow::initData()
+{
+ if (_structogram == nullptr)
+ {
+ _structogram = new samb::Structogram("", "");
+ }
}