]> Some of my projects - graph.git/commitdiff
Add file dialogs.
authorAPTX <marek321@gmail.com>
Tue, 13 Dec 2011 13:50:33 +0000 (14:50 +0100)
committerAPTX <marek321@gmail.com>
Tue, 13 Dec 2011 13:50:33 +0000 (14:50 +0100)
mainwindow.cpp
mainwindow.h
mainwindow.ui

index 9631debb0692d30d742923157e443e2101e8383a..330372e9c6a807b15503cdf4ed4256dc676e45d4 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QItemEditorFactory>
 #include <QFile>
+#include <QFileDialog>
 #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()
index a790cf8c56d24cc7f9adfcba0f01ec7788b82a15..70f46491d1b2af0f4d47fe2573f281fecf28b2e8 100644 (file)
@@ -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
index 406d8b997d4ea761e49b7f5ae4e20860a9f920fc..d8f9f9a9b67c14c9cdf4192cd379b4eac57e0ac3 100644 (file)
     <property name="title">
      <string>File</string>
     </property>
+    <addaction name="actionNew"/>
     <addaction name="actionOpen"/>
+    <addaction name="actionReload"/>
+    <addaction name="separator"/>
     <addaction name="actionSave"/>
+    <addaction name="actionSaveAs"/>
     <addaction name="separator"/>
     <addaction name="actionQuit"/>
    </widget>
    <property name="text">
     <string>Open...</string>
    </property>
+   <property name="shortcut">
+    <string>Ctrl+O</string>
+   </property>
   </action>
   <action name="actionSave">
    <property name="text">
     <string>Save...</string>
    </property>
+   <property name="shortcut">
+    <string>Ctrl+S</string>
+   </property>
   </action>
   <action name="actionQuit">
    <property name="text">
     <string>Complete Current Graph</string>
    </property>
   </action>
+  <action name="actionNew">
+   <property name="text">
+    <string>New</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+N</string>
+   </property>
+  </action>
+  <action name="actionReload">
+   <property name="text">
+    <string>Reload</string>
+   </property>
+  </action>
+  <action name="actionSaveAs">
+   <property name="text">
+    <string>Save As...</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Shift+S</string>
+   </property>
+  </action>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources/>