diff libgui/src/m-editor/file-editor.cc @ 15993:41471c02d51c

gui: show menu with recently used editor files also in file menu of main window * file-editor-interface.h: new function get_mru_menu () * file-editor.h: new function get_mru_menu (), _mru_file_menu global * file-editor.cc (destructor): delete _mru_file_menu * file-editor.cc (set_focus): make editor visible before setting focus here * main-window.cc (focus_editor): and not here * file-editor.cc (request_new_file,request_open_file): set editor focus here * main-window.cc (new_file,open_file): and not here * main-window.cc (construct): add the editor's mru menu to the file menu
author Torsten <ttl@justmail.de>
date Sat, 02 Feb 2013 13:21:44 +0100
parents 1eb3c67139f6
children c3057d80cf91
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc	Sat Feb 02 09:17:26 2013 +0100
+++ b/libgui/src/m-editor/file-editor.cc	Sat Feb 02 13:21:44 2013 +0100
@@ -62,12 +62,17 @@
     }
   settings->setValue ("editor/savedSessionTabs", fetFileNames);
   settings->sync ();
+
+  if (_mru_file_menu)
+    delete _mru_file_menu;
 }
 
 // set focus to editor and its current tab
 void
 file_editor::set_focus ()
 {
+  if (!isVisible ())
+    setVisible (true);
   setFocus ();
   activateWindow ();
   raise ();
@@ -112,6 +117,7 @@
     {
       add_file_editor_tab (fileEditorTab, "");  // new tab with empty title
       fileEditorTab->new_file ();               // title is updated here
+      set_focus ();                             // focus editor and new tab
     }
 }
 
@@ -202,6 +208,7 @@
               msgBox->show ();
             }
         }
+      set_focus ();  // really show editor and the current editor tab
     }
 }
 
@@ -644,12 +651,12 @@
   fileMenu->addAction (save_action);
   fileMenu->addAction (save_as_action);
   fileMenu->addSeparator ();
-  QMenu *mru_file_menu = new QMenu (tr ("Open &Recent"), fileMenu);
+  _mru_file_menu = new QMenu (tr ("&Recent Editor Files"), fileMenu);
   for (int i = 0; i < MaxMRUFiles; ++i)
     {
-      mru_file_menu->addAction (_mru_file_actions[i]);
+      _mru_file_menu->addAction (_mru_file_actions[i]);
     }
-  fileMenu->addMenu (mru_file_menu);
+  fileMenu->addMenu (_mru_file_menu);
   _menu_bar->addMenu (fileMenu);
 
   QMenu *editMenu = new QMenu (tr ("&Edit"), _menu_bar);