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.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 4c79fd7..260a630 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -105,16 +105,16 @@ EditorWindow *MainWindow::add_child()
{
// create a child widget
EditorWindow *child_widget = new EditorWindow();
-
+
// 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);
child_widget->show();
// FIXME check if maximized
- subwindow->resize(768, 512);
- mainwindow_mdiarea->setActiveSubWindow(subwindow);
+
return child_widget;
}
@@ -134,11 +134,17 @@ void MainWindow::slot_open()
mainwindow_mdiarea->setActiveSubWindow(subwindow);
} else {
EditorWindow *editorwindow = add_child();
- editorwindow->loadFile(filename);
-
+
+ if (!editorwindow->loadFile(filename)) {
+ subwindow = find_child(filename);
+ subwindow->close();
+ return;
+ }
+
subwindow = find_child(filename);
if (subwindow) {
- subwindow->setWindowTitle(editorwindow->filename());
+ subwindow->setWindowTitle(filename);
+ mainwindow_mdiarea->setActiveSubWindow(subwindow);
}
}
}
@@ -151,11 +157,12 @@ void MainWindow::slot_save_as()
QString filename = QFileDialog::getSaveFileName(this, tr("Save as..."));
if (!filename.isEmpty()) {
- editorwindow->saveFile(filename);
+ if (!editorwindow->saveFile(filename))
+ return;
QMdiSubWindow *subwindow = find_child(filename);
if (subwindow) {
- subwindow->setWindowTitle(editorwindow->filename());
+ subwindow->setWindowTitle(filename);
}
}
}
@@ -165,7 +172,7 @@ void MainWindow::slot_save()
{
/*
if (active_child()) {
- if (!active_child()->filename().size()) {
+ if (active_child()->filename().isEmpty()) {
slot_save_as();
return;
} else {