changeset 18710:584b20e9112c gui-release

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
author Torsten <ttl@justmail.de>
date Thu, 01 May 2014 12:12:08 +0200
parents d6b962aa2e76
children 9ef65c422f53
files libgui/src/main-window.cc libgui/src/main-window.h libgui/src/shortcut-manager.cc
diffstat 3 files changed, 72 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- 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);
     }
 
 }
--- 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;
--- 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