diff libgui/src/m-editor/file-editor.cc @ 16638:3c2e457eeb72

ask for saving modified editor files if octave is closed (bug #38689) * files-editor-tab.cc(constrctor): init new flag indicating if app is closing, (check_file_modified): message box is modal if app is closing, no cancel, parent of box is the editor's tab widget for a correct palcement of the box, (conditional_close): new second arg: flag for closing app (default false), it is stored in the tab's class wide flag * file-editor-tab.h: second arg for conditional_close and new class wide flag * file-editor.cc(destructor): sending close requests to all editor tabs with flag indicating the application is closing (add_file_editor_tab): new arg for fetab_close_request and conditional_close * file-editor.h: new 2nd arg for fetab_close_request (closing app, def. false) * main-window.cc(destructor): delete editor window first for showing the message boxes for modified editor files in front of a complete gui
author Torsten <ttl@justmail.de>
date Sat, 11 May 2013 18:20:31 +0200
parents b3f4bdd7e5f4
children c6c4847aaf67
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc	Sat May 11 14:01:15 2013 +0200
+++ b/libgui/src/m-editor/file-editor.cc	Sat May 11 18:20:31 2013 +0200
@@ -72,6 +72,9 @@
   settings->setValue ("editor/savedSessionTabs", fetFileNames);
   settings->sync ();
 
+  for (int index = _tab_widget->count ()-1; index >= 0; index--)
+    emit fetab_close_request (_tab_widget->widget (index),true); // true: app closing
+
   if (_mru_file_menu)
     delete _mru_file_menu;
 }
@@ -1083,8 +1086,8 @@
   connect (this, SIGNAL (fetab_settings_changed (const QSettings *)),
            f, SLOT (notice_settings (const QSettings *)));
 
-  connect (this, SIGNAL (fetab_close_request (const QWidget*)),
-           f, SLOT (conditional_close (const QWidget*)));
+  connect (this, SIGNAL (fetab_close_request (const QWidget*,bool)),
+           f, SLOT (conditional_close (const QWidget*,bool)));
 
   connect (this, SIGNAL (fetab_change_request (const QWidget*)),
            f, SLOT (change_editor_state (const QWidget*)));