From 2413b21baf332133a3aeb0a45bc934d9feafb85d Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 23 Feb 2012 21:47:29 +0000 Subject: Prevent the map from freezing by not drawing or updating if it becomes smaller than 16x16 pixels. --- src/mainwindow.cc | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/mainwindow.cc') 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 { -- cgit v1.2.3