Mercurial > octave-nkf
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); |