Mercurial > hg > octave-nkf
diff libgui/src/m-editor/file-editor.cc @ 16615:cb09eecbd84e
add close actions to the file menu of the editor
* file-editor.cc(consruct): new actions for close, close all and clos other
* file-editor.cc/.h
(request_close_file.request_close_all_files,request_close_other_files):
new slots for the new actions
author | Torsten <ttl@justmail.de> |
---|---|
date | Sun, 05 May 2013 16:34:11 +0200 |
parents | 49653ed9561b |
children | 25e418d23a4b |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc +++ b/libgui/src/m-editor/file-editor.cc @@ -624,6 +624,36 @@ } void +file_editor::request_close_file (bool) +{ + emit fetab_close_request (_tab_widget->currentWidget ()); +} + +void +file_editor::request_close_all_files (bool) +{ + int index; + while ((index = _tab_widget->currentIndex ()) > -1) + emit fetab_close_request (_tab_widget->widget (index)); +} + +void +file_editor::request_close_other_files (bool) +{ + int index = 0; + QWidget *tabID = _tab_widget->currentWidget (); + + while (_tab_widget->count () > 1) + { + if (tabID != _tab_widget->widget (index)) + emit fetab_close_request (_tab_widget->widget (index)); + else + index++; + } +} + + +void file_editor::handle_tab_close_request (int index) { // Signal to the tabs a request to close whomever matches the identifying @@ -847,22 +877,40 @@ // menu bar QMenu *fileMenu = new QMenu (tr ("&File"), _menu_bar); - fileMenu->addAction (new_action); - fileMenu->addAction (open_action); - fileMenu->addAction (save_action); - fileMenu->addAction (save_as_action); - fileMenu->addSeparator (); + _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]); + fileMenu->addAction (new_action); + fileMenu->addAction (open_action); fileMenu->addMenu (_mru_file_menu); - _menu_bar->addMenu (fileMenu); + + fileMenu->addSeparator (); + fileMenu->addAction (save_action); + fileMenu->addAction (save_as_action); + + fileMenu->addSeparator (); + fileMenu->addAction (QIcon::fromTheme("window-close", + QIcon (":/actions/icons/fileclose.png")), + tr ("&Close"), + this, SLOT (request_close_file (bool)), + QKeySequence::Close); + fileMenu->addAction (QIcon::fromTheme("window-close", + QIcon (":/actions/icons/fileclose.png")), + tr ("Close All"), + this, SLOT (request_close_all_files (bool))); + fileMenu->addAction (QIcon::fromTheme("window-close", + QIcon (":/actions/icons/fileclose.png")), + tr ("Close Other Files"), + this, SLOT (request_close_other_files (bool))); fileMenu->addSeparator (); fileMenu->addAction (print_action); + _menu_bar->addMenu (fileMenu); + + QMenu *editMenu = new QMenu (tr ("&Edit"), _menu_bar); editMenu->addAction (undo_action); editMenu->addAction (redo_action);