comparison 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
comparison
equal deleted inserted replaced
15992:c4c46e1a086b 15993:41471c02d51c
60 // Have all file editor tabs signal what their file names are. 60 // Have all file editor tabs signal what their file names are.
61 emit fetab_file_name_query (0); 61 emit fetab_file_name_query (0);
62 } 62 }
63 settings->setValue ("editor/savedSessionTabs", fetFileNames); 63 settings->setValue ("editor/savedSessionTabs", fetFileNames);
64 settings->sync (); 64 settings->sync ();
65
66 if (_mru_file_menu)
67 delete _mru_file_menu;
65 } 68 }
66 69
67 // set focus to editor and its current tab 70 // set focus to editor and its current tab
68 void 71 void
69 file_editor::set_focus () 72 file_editor::set_focus ()
70 { 73 {
74 if (!isVisible ())
75 setVisible (true);
71 setFocus (); 76 setFocus ();
72 activateWindow (); 77 activateWindow ();
73 raise (); 78 raise ();
74 QWidget *fileEditorTab = _tab_widget->currentWidget (); 79 QWidget *fileEditorTab = _tab_widget->currentWidget ();
75 if (fileEditorTab) 80 if (fileEditorTab)
110 file_editor_tab *fileEditorTab = new file_editor_tab (ced); 115 file_editor_tab *fileEditorTab = new file_editor_tab (ced);
111 if (fileEditorTab) 116 if (fileEditorTab)
112 { 117 {
113 add_file_editor_tab (fileEditorTab, ""); // new tab with empty title 118 add_file_editor_tab (fileEditorTab, ""); // new tab with empty title
114 fileEditorTab->new_file (); // title is updated here 119 fileEditorTab->new_file (); // title is updated here
120 set_focus (); // focus editor and new tab
115 } 121 }
116 } 122 }
117 123
118 void 124 void
119 file_editor::request_open_file () 125 file_editor::request_open_file ()
200 msgBox->setWindowModality (Qt::NonModal); 206 msgBox->setWindowModality (Qt::NonModal);
201 msgBox->setAttribute (Qt::WA_DeleteOnClose); 207 msgBox->setAttribute (Qt::WA_DeleteOnClose);
202 msgBox->show (); 208 msgBox->show ();
203 } 209 }
204 } 210 }
211 set_focus (); // really show editor and the current editor tab
205 } 212 }
206 } 213 }
207 214
208 // open a file from the mru list 215 // open a file from the mru list
209 void 216 void
642 fileMenu->addAction (new_action); 649 fileMenu->addAction (new_action);
643 fileMenu->addAction (open_action); 650 fileMenu->addAction (open_action);
644 fileMenu->addAction (save_action); 651 fileMenu->addAction (save_action);
645 fileMenu->addAction (save_as_action); 652 fileMenu->addAction (save_as_action);
646 fileMenu->addSeparator (); 653 fileMenu->addSeparator ();
647 QMenu *mru_file_menu = new QMenu (tr ("Open &Recent"), fileMenu); 654 _mru_file_menu = new QMenu (tr ("&Recent Editor Files"), fileMenu);
648 for (int i = 0; i < MaxMRUFiles; ++i) 655 for (int i = 0; i < MaxMRUFiles; ++i)
649 { 656 {
650 mru_file_menu->addAction (_mru_file_actions[i]); 657 _mru_file_menu->addAction (_mru_file_actions[i]);
651 } 658 }
652 fileMenu->addMenu (mru_file_menu); 659 fileMenu->addMenu (_mru_file_menu);
653 _menu_bar->addMenu (fileMenu); 660 _menu_bar->addMenu (fileMenu);
654 661
655 QMenu *editMenu = new QMenu (tr ("&Edit"), _menu_bar); 662 QMenu *editMenu = new QMenu (tr ("&Edit"), _menu_bar);
656 editMenu->addAction (undo_action); 663 editMenu->addAction (undo_action);
657 editMenu->addAction (redo_action); 664 editMenu->addAction (redo_action);