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.cc66
1 files changed, 52 insertions, 14 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 260a630..6985506 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -25,16 +25,18 @@ MainWindow::MainWindow()
mainwindow_mdiarea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
mainwindow_mdiarea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setCentralWidget(mainwindow_mdiarea);
+
+ connect(mainwindow_mdiarea, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updateMenus()));
// initialize actions
- init_actions();
+ initActions();
// initialize menu bar
- init_menu();
+ initMenus();
}
-void MainWindow::init_actions()
+void MainWindow::initActions()
{
// File -> New
action_new = new QAction( tr("&New..."), this);
@@ -63,9 +65,18 @@ void MainWindow::init_actions()
action_quit->setShortcuts(QKeySequence::Quit);
action_quit->setStatusTip(tr("Exit the application"));
connect(action_quit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
+
+ // Edit -> Add
+ action_add = new QAction(tr("&Add"), this);
+ connect(action_add, SIGNAL(triggered()), this, SLOT(slot_add()));
+ action_delete = new QAction(tr("&Delete"), this);
+ connect(action_delete, SIGNAL(triggered()), this, SLOT(slot_delete()));
+ action_duplicate = new QAction(tr("D&uplicate"), this);
+ connect(action_duplicate, SIGNAL(triggered()), this, SLOT(slot_duplicate()));
+
}
-void MainWindow::init_menu()
+void MainWindow::initMenus()
{
mainwindow_filemenu = menuBar()->addMenu(tr("&File"));
mainwindow_filemenu->addAction(action_new);
@@ -76,8 +87,22 @@ void MainWindow::init_menu()
mainwindow_filemenu->addAction(action_quit);
mainwindow_editmenu = menuBar()->addMenu(tr("&Edit"));
+ mainwindow_editmenu->addAction(action_add);
+ mainwindow_editmenu->addAction(action_delete);
+ mainwindow_editmenu->addAction(action_duplicate);
}
+void MainWindow::updateMenus()
+{
+ bool active =(mainwindow_mdiarea->activeSubWindow() != 0);
+
+ action_save_as->setEnabled(active);
+ action_save->setEnabled(active);
+
+ action_add->setEnabled(active);
+ action_delete->setEnabled(active);
+ action_duplicate->setEnabled(active);
+}
EditorWindow *MainWindow::active_child()
{
@@ -109,7 +134,7 @@ EditorWindow *MainWindow::add_child()
// add the widget to the MDI area,
// this will wrap an QMdiSubWindow around it
QMdiSubWindow *subwindow = mainwindow_mdiarea->addSubWindow(child_widget);
- subwindow->resize(768, 512);
+ //subwindow->resize(768, 512);
child_widget->show();
// FIXME check if maximized
@@ -131,6 +156,8 @@ void MainWindow::slot_open()
QMdiSubWindow *subwindow = find_child(filename);
if (subwindow) {
+ subwindow->raise();
+ subwindow->activateWindow();
mainwindow_mdiarea->setActiveSubWindow(subwindow);
} else {
EditorWindow *editorwindow = add_child();
@@ -138,13 +165,11 @@ void MainWindow::slot_open()
if (!editorwindow->loadFile(filename)) {
subwindow = find_child(filename);
subwindow->close();
- return;
- }
-
- subwindow = find_child(filename);
- if (subwindow) {
- subwindow->setWindowTitle(filename);
- mainwindow_mdiarea->setActiveSubWindow(subwindow);
+ } else {
+ subwindow = find_child(filename);
+ if (subwindow) {
+ subwindow->setWindowTitle(filename);
+ }
}
}
}
@@ -170,7 +195,6 @@ void MainWindow::slot_save_as()
void MainWindow::slot_save()
{
- /*
if (active_child()) {
if (active_child()->filename().isEmpty()) {
slot_save_as();
@@ -179,7 +203,21 @@ void MainWindow::slot_save()
active_child()->saveFile(active_child()->filename());
}
}
- */
+}
+
+void MainWindow::slot_add()
+{
+ qDebug() << "slot_add";
+}
+
+void MainWindow::slot_delete()
+{
+ qDebug() << "slot_delete";
+}
+
+void MainWindow::slot_duplicate()
+{
+ qDebug() << "slot_duplicate";
}
}