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.cc61
1 files changed, 60 insertions, 1 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 22347a5..e5f8000 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -7,6 +7,8 @@
#include <mainwindow.h>
+#include <QTextEdit>
+
namespace editor
{
@@ -21,15 +23,72 @@ MainWindow::MainWindow()
mainwindow_mdiarea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setCentralWidget(mainwindow_mdiarea);
+ // initialize actions
+ init_actions();
+
// initialize menu bar
init_menu();
}
+void MainWindow::init_actions()
+{
+ // File -> New
+ action_new = new QAction( tr("&New..."), this);
+ action_new->setShortcuts(QKeySequence::New);
+ action_new->setStatusTip(tr("Create a new zone"));
+ connect(action_new, SIGNAL(triggered()), this, SLOT(slot_new()));
+
+ // File -> Open
+ action_open = new QAction( tr("&Open..."), this);
+ action_open->setShortcuts(QKeySequence::Open);
+ action_open->setStatusTip(tr("Open an existing zone"));
+ connect(action_open, SIGNAL(triggered()), this, SLOT(slot_open()));
+
+ // File -> Quit
+ action_quit = new QAction(tr("&Quit"), this);
+ action_quit->setShortcuts(QKeySequence::Quit);
+ action_quit->setStatusTip(tr("Exit the application"));
+ connect(action_quit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
+}
+
void MainWindow::init_menu()
{
mainwindow_filemenu = menuBar()->addMenu(tr("&File"));
+ mainwindow_filemenu->addAction(action_new);
+ mainwindow_filemenu->addAction(action_open);
+ mainwindow_filemenu->addSeparator();
+ mainwindow_filemenu->addAction(action_quit);
+
mainwindow_editmenu = menuBar()->addMenu(tr("&Edit"));
}
-} \ No newline at end of file
+void MainWindow::add_child()
+{
+ // create a child widget
+ // TODO replace QTextEdit qith the actual editor widget
+ QTextEdit *child_widget = new QTextEdit();
+
+ // add the widget to the MDI area,
+ // this will wrap an QMdiSubWindow around it
+ mainwindow_mdiarea->addSubWindow(child_widget);
+
+ child_widget->show();
+}
+
+void MainWindow::slot_new()
+{
+ add_child();
+}
+
+void MainWindow::slot_open()
+{
+ QString filename = QFileDialog::getOpenFileName(this);
+
+ if (!filename.isEmpty()) {
+ add_child();
+ }
+}
+
+
+}