changeset 20221:ac3746f39fab stable

make action shortcuts available in floating widgets (bug #45078) * main-window.cc (construct): emit a list of actions which should also be available in dock widgets * main-window.h: new signal for the list of actions * octave-dock-widget.cc (octave_dock_widget): connect new signal with action list to the related new slot; (add_actions): new slot for adding main windows actions * octave-dock-widget.h: new slot
author Torsten <ttl@justmail.de>
date Wed, 13 May 2015 22:00:56 +0200
parents 7e01182ee36c
children 998881b6cdef
files libgui/src/main-window.cc libgui/src/main-window.h libgui/src/octave-dock-widget.cc libgui/src/octave-dock-widget.h
diffstat 4 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Wed May 13 20:51:41 2015 +0200
+++ b/libgui/src/main-window.cc	Wed May 13 22:00:56 2015 +0200
@@ -1430,6 +1430,15 @@
       octave_link::post_event (this, &main_window::resize_command_window_callback);
 
       configure_shortcuts ();
+
+      // actions that should be available in floating dock widgets, too
+      QList<QAction *> action_list;
+      action_list.append (_copy_action);
+      action_list.append (_paste_action);
+      action_list.append (_select_all_action);
+      action_list.append (_undo_action);
+      emit add_actions_signal (action_list);  // signal for adding these actions
+
     }
 }
 
--- a/libgui/src/main-window.h	Wed May 13 20:51:41 2015 +0200
+++ b/libgui/src/main-window.h	Wed May 13 22:00:56 2015 +0200
@@ -105,6 +105,8 @@
   void selectAll_signal (void);
   void undo_signal (void);
 
+  void add_actions_signal (QList <QAction *> action_list);
+
 public slots:
 
   void focus_changed (QWidget *w_old, QWidget *w_new);
--- a/libgui/src/octave-dock-widget.cc	Wed May 13 20:51:41 2015 +0200
+++ b/libgui/src/octave-dock-widget.cc	Wed May 13 22:00:56 2015 +0200
@@ -109,6 +109,9 @@
 
 #endif
 
+  // adding actions of the main window
+  connect (p, SIGNAL (add_actions_signal (QList<QAction *>)),
+           this, SLOT (add_actions (QList<QAction *>)));
   // copy & paste handling
   connect (p, SIGNAL (copyClipboard_signal ()),
            this, SLOT (copyClipboard ()));
@@ -477,6 +480,13 @@
     }
 }
 
+// slot for adding actions from the main window
+void
+octave_dock_widget::add_actions (QList<QAction *> action_list)
+{
+  if (objectName () != "FileEditor")
+    addActions (action_list);
+}
 
 // close event
 void
--- a/libgui/src/octave-dock-widget.h	Wed May 13 20:51:41 2015 +0200
+++ b/libgui/src/octave-dock-widget.h	Wed May 13 22:00:56 2015 +0200
@@ -102,6 +102,8 @@
   // event filter for double clicks into the window decoration elements
   bool eventFilter(QObject *obj, QEvent *e);
 
+  virtual void add_actions (QList<QAction *> action_list);
+
 private slots:
 
   void change_floating (bool);