Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r--src/mainwindow.cc28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index f80f0ab..d1069d7 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -48,6 +48,11 @@ void MainWindow::init_actions()
action_open->setStatusTip(tr("Open an existing zone"));
connect(action_open, SIGNAL(triggered()), this, SLOT(slot_open()));
+ action_save = new QAction( tr("&Save..."), this);
+ action_save->setShortcuts(QKeySequence::Save);
+ action_save->setStatusTip(tr("Save File"));
+ connect(action_save, SIGNAL(triggered()), this, SLOT(slot_save()));
+
// File -> Quit
action_quit = new QAction(tr("&Quit"), this);
action_quit->setShortcuts(QKeySequence::Quit);
@@ -60,13 +65,22 @@ void MainWindow::init_menu()
mainwindow_filemenu = menuBar()->addMenu(tr("&File"));
mainwindow_filemenu->addAction(action_new);
mainwindow_filemenu->addAction(action_open);
+ mainwindow_filemenu->addAction(action_save);
mainwindow_filemenu->addSeparator();
mainwindow_filemenu->addAction(action_quit);
mainwindow_editmenu = menuBar()->addMenu(tr("&Edit"));
}
-EditorWindow *MainWindow::addEditorWindow()
+
+EditorWindow *MainWindow::active_child()
+{
+ if (QMdiSubWindow *active_subwindow = mainwindow_mdiarea->activeSubWindow())
+ return qobject_cast<EditorWindow *>(active_subwindow->widget());
+ return 0;
+}
+
+EditorWindow *MainWindow::add_child()
{
// create a child widget
EditorWindow *child_widget = new EditorWindow();
@@ -85,7 +99,7 @@ EditorWindow *MainWindow::addEditorWindow()
void MainWindow::slot_new()
{
- addEditorWindow();
+ add_child();
}
void MainWindow::slot_open()
@@ -93,10 +107,18 @@ void MainWindow::slot_open()
QString filename = QFileDialog::getOpenFileName(this, tr("Open file"));
if (!filename.isEmpty()) {
- EditorWindow *editorwindow = addEditorWindow();
+ EditorWindow *editorwindow = add_child();
editorwindow->loadFile(filename);
}
}
+void MainWindow::slot_save()
+{
+ QString filename;
+
+ if (active_child()) {
+ active_child()->saveFile(filename);
+ }
+}
}