# HG changeset patch # User Torsten # Date 1398939128 -7200 # Node ID 584b20e9112c3ebf08f69bef402622413bc5650c # Parent d6b962aa2e7611def16b5e273fe1d6a379931192 use shortcut manager for the main help menu * main_window.cc (add_action): new parameter for the signal receiver; (construct_help_menu): use add_action for the actions of the menu; (construct_documentation_menu): use add_action for the actions of the menu; (set_global_shortcuts): set/unset shortcuts * main-window.h: actions are class variables, add_action with new parameter * shortcut-manager.cc (do_init_data): initialize the shortcuts in the help menu diff -r d6b962aa2e76 -r 584b20e9112c libgui/src/main-window.cc --- a/libgui/src/main-window.cc Wed Apr 30 19:58:47 2014 +0200 +++ b/libgui/src/main-window.cc Thu May 01 12:12:08 2014 +0200 @@ -1429,9 +1429,15 @@ QAction* main_window::add_action (QMenu *menu, const QIcon &icon, const QString &text, - const char *member) + const char *member, const QWidget *receiver) { - QAction *a = menu->addAction (icon, text, this, member); + QAction *a; + + if (receiver) + a = menu->addAction (icon, text, receiver, member); + else + a = menu->addAction (icon, text, this, member); + addAction (a); // important for shortcut context a->setShortcutContext (Qt::ApplicationShortcut); return a; @@ -1718,61 +1724,37 @@ help_menu->addSeparator (); - QAction *report_bug_action - = help_menu->addAction (tr ("Report Bug")); - - QAction *octave_packages_action - = help_menu->addAction (tr ("Octave Packages")); - - QAction *agora_action - = help_menu->addAction (tr ("Share Code")); - - QAction *contribute_action - = help_menu->addAction (tr ("Contribute to Octave")); - - QAction *developer_action - = help_menu->addAction (tr ("Octave Developer Resources")); + _report_bug_action = add_action (help_menu, QIcon (), + tr ("Report Bug"), SLOT (open_bug_tracker_page ())); + + _octave_packages_action = add_action (help_menu, QIcon (), + tr ("Octave Packages"), SLOT (open_octave_packages_page ())); + + _agora_action = add_action (help_menu, QIcon (), + tr ("Share Code"), SLOT (open_agora_page ())); + + _contribute_action = add_action (help_menu, QIcon (), + tr ("Contribute to Octave"), SLOT (open_contribute_page ())); + + _developer_action = add_action (help_menu, QIcon (), + tr ("Octave Developer Resources"), SLOT (open_developer_page ())); help_menu->addSeparator (); - QAction *about_octave_action - = help_menu->addAction (tr ("About Octave")); - - connect (report_bug_action, SIGNAL (triggered ()), - this, SLOT (open_bug_tracker_page ())); - - connect (octave_packages_action, SIGNAL (triggered ()), - this, SLOT (open_octave_packages_page ())); - - connect (agora_action, SIGNAL (triggered ()), - this, SLOT (open_agora_page ())); - - connect (contribute_action, SIGNAL (triggered ()), - this, SLOT (open_contribute_page ())); - - connect (developer_action, SIGNAL (triggered ()), - this, SLOT (open_developer_page ())); - - connect (about_octave_action, SIGNAL (triggered ()), - this, SLOT (show_about_octave ())); + _about_octave_action = add_action (help_menu, QIcon (), + tr ("About Octave"), SLOT (show_about_octave ())); } void main_window::construct_documentation_menu (QMenu *p) { - QMenu *documentation_menu = p->addMenu (tr ("Documentation")); - - QAction *ondisk_documentation_action - = documentation_menu->addAction (tr ("On Disk")); - - QAction *online_documentation_action - = documentation_menu->addAction (tr ("Online")); - - connect (ondisk_documentation_action, SIGNAL (triggered ()), - doc_browser_window, SLOT (focus ())); - - connect (online_documentation_action, SIGNAL (triggered ()), - this, SLOT (open_online_documentation_page ())); + QMenu *doc_menu = p->addMenu (tr ("Documentation")); + + _ondisk_doc_action = add_action (doc_menu, QIcon (), + tr ("On Disk"), SLOT (focus ()), doc_browser_window); + + _online_doc_action = add_action (doc_menu, QIcon (), + tr ("Online"), SLOT (open_online_documentation_page ())); } void @@ -2280,6 +2262,17 @@ shortcut_manager::set_shortcut (_editor_action, "main_window:editor"); shortcut_manager::set_shortcut (_documentation_action, "main_window:doc"); shortcut_manager::set_shortcut (_reset_windows_action, "main_window:reset"); + + // help menu + shortcut_manager::set_shortcut (_ondisk_doc_action, "main_help:ondisk_doc"); + shortcut_manager::set_shortcut (_online_doc_action, "main_help:online_doc"); + shortcut_manager::set_shortcut (_report_bug_action, "main_help:report_bug"); + shortcut_manager::set_shortcut (_octave_packages_action, "main_help:packages"); + shortcut_manager::set_shortcut (_agora_action, "main_help:agora"); + shortcut_manager::set_shortcut (_contribute_action, "main_help:contribute"); + shortcut_manager::set_shortcut (_developer_action, "main_help:developer"); + shortcut_manager::set_shortcut (_about_octave_action, "main_help:about"); + } else { @@ -2306,6 +2299,16 @@ // window menu _reset_windows_action->setShortcut (no_key); + + // help menu + _ondisk_doc_action->setShortcut (no_key); + _online_doc_action->setShortcut (no_key); + _report_bug_action->setShortcut (no_key); + _octave_packages_action->setShortcut (no_key); + _agora_action->setShortcut (no_key); + _contribute_action->setShortcut (no_key); + _developer_action->setShortcut (no_key); + _about_octave_action->setShortcut (no_key); } } diff -r d6b962aa2e76 -r 584b20e9112c libgui/src/main-window.h --- a/libgui/src/main-window.h Wed Apr 30 19:58:47 2014 +0200 +++ b/libgui/src/main-window.h Thu May 01 12:12:08 2014 +0200 @@ -214,7 +214,7 @@ void construct_octave_qt_link (void); QAction *add_action (QMenu *menu, const QIcon &icon, const QString &text, - const char *member); + const char *member, const QWidget *receiver = 0); void construct_menu_bar (void); void construct_file_menu (QMenuBar *p); @@ -346,6 +346,15 @@ QAction *_documentation_action; QAction *_reset_windows_action; + QAction *_ondisk_doc_action; + QAction *_online_doc_action; + QAction *_report_bug_action; + QAction *_octave_packages_action; + QAction *_agora_action; + QAction *_contribute_action; + QAction *_developer_action; + QAction *_about_octave_action; + // Toolbars. QComboBox *_current_directory_combo_box; static const int current_directory_width = 300; diff -r d6b962aa2e76 -r 584b20e9112c libgui/src/shortcut-manager.cc --- a/libgui/src/shortcut-manager.cc Wed Apr 30 19:58:47 2014 +0200 +++ b/libgui/src/shortcut-manager.cc Thu May 01 12:12:08 2014 +0200 @@ -126,6 +126,16 @@ init (tr ("Documentation"), "main_window:doc", ctrl + Qt::Key_5); init (tr ("Reset Window Layout"), "main_window:reset", QKeySequence ()); + // help + init (tr ("Show Ondisk Documentation"), "main_help:ondisk_doc", QKeySequence ()); + init (tr ("Show Online Documentation"), "main_help:online_doc", QKeySequence ()); + init (tr ("Report a Bug"), "main_help:report_bug", QKeySequence ()); + init (tr ("Octave Packages"), "main_help:packages", QKeySequence ()); + init (tr ("Share Code"), "main_help:agora", QKeySequence ()); + init (tr ("Contribute to Octave"), "main_help:contribute", QKeySequence ()); + init (tr ("Octave Developer Resources"), "main_help:developer", QKeySequence ()); + init (tr ("About Octave"), "main_help:about", QKeySequence ()); + // actions of the editor // file