From: APTX Date: Tue, 13 Dec 2011 13:50:33 +0000 (+0100) Subject: Add file dialogs. X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=0b42f110c140a71bb645bc90c6e4a8a4f3570aef;p=graph.git Add file dialogs. --- diff --git a/mainwindow.cpp b/mainwindow.cpp index 9631deb..330372e 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "colorlisteditor.h" #include "graph.h" @@ -65,26 +66,63 @@ void MainWindow::modeChanged(QAction *action) graph->setMode(Graph::EditMode); } +void MainWindow::on_actionNew_triggered() +{ + graph->clear(); + currentFile = ""; +} + void MainWindow::on_actionSave_triggered() { - QFile f("out.txt"); + if (currentFile.isEmpty()) + return on_actionSaveAs_triggered(); + + QFile f(currentFile); if (!f.open(QIODevice::WriteOnly)) { - qDebug() << "Cannot open file"; + ui->statusBar->showMessage(tr("Cannot open %1 for writing").arg(currentFile)); return; } graph->save(&f); + ui->statusBar->showMessage(tr("Saved")); +} + +void MainWindow::on_actionSaveAs_triggered() +{ + currentFile = QFileDialog::getSaveFileName(this, "Save graph"); + + if (!currentFile.isEmpty()) + return on_actionSave_triggered(); } void MainWindow::on_actionOpen_triggered() { - QFile f("out.txt"); + currentFile = QFileDialog::getOpenFileName(this, "Open graph"); + + if (currentFile.isEmpty()) + return; + + on_actionReload_triggered(); +} + +void MainWindow::on_actionReload_triggered() +{ + if (currentFile.isEmpty()) + return on_actionOpen_triggered(); + + QFile f(currentFile); if (!f.open(QIODevice::ReadOnly)) { - qDebug() << "Cannot open file"; + ui->statusBar->showMessage(tr("Cannot open %1 for reading").arg(currentFile)); return; } graph->load(&f); + ui->statusBar->showMessage(tr("Opened %1").arg(currentFile)); +} + +void MainWindow::on_actionQuit_triggered() +{ + qApp->quit(); } void MainWindow::on_actionCompleteCurrentGraph_triggered() diff --git a/mainwindow.h b/mainwindow.h index a790cf8..70f4649 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -20,8 +20,13 @@ public: private slots: void modeChanged(QAction *action); - void on_actionSave_triggered(); + + void on_actionNew_triggered(); void on_actionOpen_triggered(); + void on_actionReload_triggered(); + void on_actionSave_triggered(); + void on_actionSaveAs_triggered(); + void on_actionQuit_triggered(); void on_actionCompleteCurrentGraph_triggered(); void on_actionGenerateGraph_triggered(); @@ -33,6 +38,8 @@ private: Graph *graph; QActionGroup *modes; + + QString currentFile; }; #endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index 406d8b9..d8f9f9a 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -40,8 +40,12 @@ File + + + + @@ -151,11 +155,17 @@ Open... + + Ctrl+O + Save... + + Ctrl+S + @@ -177,6 +187,27 @@ Complete Current Graph + + + New + + + Ctrl+N + + + + + Reload + + + + + Save As... + + + Ctrl+Shift+S + +