comparison libgui/src/octave-dock-widget.h @ 20018:643de08e524c

save and restore previously active widget in a tabbed stack (bug #42980) * main-window.cc (focus_changed): store previous widget as predecessor if new widget is tabbed togehter with the previous one; * octave-dock-widget.cc (octave_dock_widget): initialize predecessor to 0; (set_predecessor_widget): new oublic method for setting the predecessor; (set_focus_predecessor): if predecessor is defined which means that this wigdet was tabbed with predecessor, set focus to predecessor; (make_window): call set_focus_predecessor; (closeEvent): moved here from header file, call set_focus_predecessor * octave-dock-widget.h: new public function set_predecessor_widget, closeEvent moved to octave_dock_widget.cc, new private function set_focus_predecessor (), new variable _predecessor_widget holding the previously active widget in the tabbed stack
author Torsten <ttl@justmail.de>
date Wed, 25 Mar 2015 16:50:12 +0100
parents f7a805f02723
children ac3746f39fab
comparison
equal deleted inserted replaced
20017:9a8be23d2c05 20018:643de08e524c
41 41
42 virtual void connect_visibility_changed (void); 42 virtual void connect_visibility_changed (void);
43 void make_window (void); 43 void make_window (void);
44 void make_widget (bool dock=true); 44 void make_widget (bool dock=true);
45 void set_title (const QString&); 45 void set_title (const QString&);
46 46 void set_predecessor_widget (octave_dock_widget *prev_widget);
47 signals: 47 signals:
48 48
49 /** Custom signal that tells whether a user has clicked away 49 /** Custom signal that tells whether a user has clicked away
50 * that dock widget, i.e the active dock widget has 50 * that dock widget, i.e the active dock widget has
51 * changed. */ 51 * changed. */
52 void active_changed (bool active); 52 void active_changed (bool active);
53 53
54 protected: 54 protected:
55 55
56 virtual void closeEvent (QCloseEvent *e) 56 virtual void closeEvent (QCloseEvent *e);
57 {
58 emit active_changed (false);
59 QDockWidget::closeEvent (e);
60 }
61 57
62 QWidget * focusWidget (); 58 QWidget * focusWidget ();
63 59
64 public slots: 60 public slots:
65 61
112 void change_visibility (bool); 108 void change_visibility (bool);
113 109
114 private: 110 private:
115 111
116 void set_style (bool active); 112 void set_style (bool active);
113 void set_focus_predecessor ();
117 114
118 QMainWindow *_parent; // store the parent since we are reparenting to 0 115 QMainWindow *_parent; // store the parent since we are reparenting to 0
119 bool _floating; 116 bool _floating;
120 bool _custom_style; 117 bool _custom_style;
121 int _title_3d; 118 int _title_3d;
124 QColor _bg_color_active; 121 QColor _bg_color_active;
125 QColor _fg_color; 122 QColor _fg_color;
126 QColor _fg_color_active; 123 QColor _fg_color_active;
127 QString _icon_color; 124 QString _icon_color;
128 QString _icon_color_active; 125 QString _icon_color_active;
126 octave_dock_widget *_predecessor_widget;
129 127
130 #if defined (Q_OS_WIN32) 128 #if defined (Q_OS_WIN32)
131 QWidget *_title_widget; 129 QWidget *_title_widget;
132 QToolButton *_dock_button; 130 QToolButton *_dock_button;
133 QToolButton *_close_button; 131 QToolButton *_close_button;