Mercurial > octave
annotate libgui/src/octave-dock-widget.cc @ 20794:e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
* octave-dock-widget.cc (set_style): change alignment in style sheet for OSX
author | Torsten <ttl@justmail.de> |
---|---|
date | Fri, 04 Dec 2015 06:43:45 +0100 |
parents | 802dc52d4d46 |
children | 00835323fb44 |
rev | line source |
---|---|
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
1 /* |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
2 |
19697
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19627
diff
changeset
|
3 Copyright (C) 2012-2015 Richard Crozier |
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19627
diff
changeset
|
4 Copyright (C) 2013-2015 Torsten <ttl@justmail.de> |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
5 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
6 This file is part of Octave. |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
7 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
8 Octave is free software; you can redistribute it and/or modify it |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
9 under the terms of the GNU General Public License as published by the |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
10 Free Software Foundation; either version 3 of the License, or (at your |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
11 option) any later version. |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
12 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
13 Octave is distributed in the hope that it will be useful, but WITHOUT |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
16 for more details. |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
17 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
18 You should have received a copy of the GNU General Public License |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
19 along with Octave; see the file COPYING. If not, see |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
20 <http://www.gnu.org/licenses/>. |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
21 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
22 */ |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
23 |
17923
b602014eeb54
* octave-dock-widget.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
17899
diff
changeset
|
24 #ifdef HAVE_CONFIG_H |
b602014eeb54
* octave-dock-widget.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
17899
diff
changeset
|
25 #include <config.h> |
b602014eeb54
* octave-dock-widget.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
17899
diff
changeset
|
26 #endif |
b602014eeb54
* octave-dock-widget.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
17899
diff
changeset
|
27 |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
28 #include <QApplication> |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
29 #include <QToolBar> |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
30 #include <QAction> |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
31 #include <QHBoxLayout> |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
32 #include <QLabel> |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
33 #include <QSettings> |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
34 #include <QStyle> |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
35 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
36 #include "resource-manager.h" |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
37 #include "octave-dock-widget.h" |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
38 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
39 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
40 octave_dock_widget::octave_dock_widget (QWidget *p) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
41 : QDockWidget (p) |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
42 { |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
43 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
44 _parent = static_cast<QMainWindow *> (p); // store main window |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
45 _floating = false; |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
46 _predecessor_widget = 0; |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
47 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
48 connect (this, SIGNAL (visibilityChanged (bool)), |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
49 this, SLOT (handle_visibility_changed (bool))); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
50 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
51 connect (p, SIGNAL (settings_changed (const QSettings*)), |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
52 this, SLOT (handle_settings (const QSettings*))); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
53 |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
54 connect (p, SIGNAL (active_dock_changed (octave_dock_widget*, octave_dock_widget*)), |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
55 this, SLOT (handle_active_dock_changed (octave_dock_widget*, octave_dock_widget*))); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
56 |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
57 QStyle *st = style (); |
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
58 _icon_size = 0.75*st->pixelMetric (QStyle::PM_SmallIconSize); |
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
59 |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
60 #if defined (Q_OS_WIN32) |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
61 // windows: add an extra title bar that persists when floating |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
62 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
63 setFeatures (QDockWidget::DockWidgetMovable); // not floatable or closeable |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
64 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
65 // the custom (extra) title bar of the widget |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
66 _dock_action = new QAction |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
67 (QIcon (":/actions/icons/widget-undock.png"), "", this); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
68 _dock_action-> setToolTip (tr ("Undock widget")); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
69 connect (_dock_action, SIGNAL (triggered (bool)), |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
70 this, SLOT (change_floating (bool))); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
71 _dock_button = new QToolButton (this); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
72 _dock_button->setDefaultAction (_dock_action); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
73 _dock_button->setFocusPolicy (Qt::NoFocus); |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
74 _dock_button->setIconSize (QSize (_icon_size,_icon_size)); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
75 |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
76 _close_action = new QAction |
18678
6113e0c6920b
maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents:
18555
diff
changeset
|
77 (QIcon (":/actions/icons/widget-close.png"), "", this); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
78 _close_action-> setToolTip (tr ("Hide widget")); |
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
79 connect (_close_action, SIGNAL (triggered (bool)), |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
80 this, SLOT (change_visibility (bool))); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
81 _close_button = new QToolButton (this); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
82 _close_button->setDefaultAction (_close_action); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
83 _close_button->setFocusPolicy (Qt::NoFocus); |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
84 _close_button->setIconSize (QSize (_icon_size,_icon_size)); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
85 |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
86 _icon_color = ""; |
19913
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
87 _title_3d = 50; |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
88 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
89 QHBoxLayout *h_layout = new QHBoxLayout (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
90 h_layout->addStretch (100); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
91 h_layout->addWidget (_dock_button); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
92 h_layout->addWidget (_close_button); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
93 h_layout->setSpacing (0); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
94 h_layout->setContentsMargins (5,2,2,2); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
95 |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
96 _title_widget = new QWidget (); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
97 _title_widget->setLayout (h_layout); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
98 setTitleBarWidget (_title_widget); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
99 |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
100 #else |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
101 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
102 // non windows: qt takes control of floating widgets |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
103 setFeatures (QDockWidget::DockWidgetMovable | |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
104 QDockWidget::DockWidgetClosable | |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
105 QDockWidget::DockWidgetFloatable); // floatable and closeable |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
106 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
107 connect (this, SIGNAL (topLevelChanged (bool)), |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
108 this, SLOT (change_floating (bool))); |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
109 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
110 #endif |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
111 |
20186
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
112 // adding actions of the main window |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
113 connect (p, SIGNAL (add_actions_signal (QList<QAction *>)), |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
114 this, SLOT (add_actions (QList<QAction *>))); |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
115 // copy & paste handling |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
116 connect (p, SIGNAL (copyClipboard_signal ()), |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
117 this, SLOT (copyClipboard ())); |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
118 connect (p, SIGNAL (pasteClipboard_signal ()), |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
119 this, SLOT (pasteClipboard ())); |
18555
2d5d0d86432e
gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents:
18218
diff
changeset
|
120 connect (p, SIGNAL (selectAll_signal ()), |
2d5d0d86432e
gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents:
18218
diff
changeset
|
121 this, SLOT (selectAll ())); |
19945
f7a805f02723
link undo in main window to editor if the latter has focus (bug #44402)
Torsten <ttl@justmail.de>
parents:
19918
diff
changeset
|
122 // undo handling |
f7a805f02723
link undo in main window to editor if the latter has focus (bug #44402)
Torsten <ttl@justmail.de>
parents:
19918
diff
changeset
|
123 connect (p, SIGNAL (undo_signal ()), this, SLOT (do_undo ())); |
19360
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
124 |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
125 installEventFilter (this); |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
126 |
20630
802dc52d4d46
improve focus detection of gui (bug #45306)
Torsten <ttl@justmail.de>
parents:
20186
diff
changeset
|
127 setFocusPolicy (Qt::StrongFocus); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
128 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
129 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
130 octave_dock_widget::~octave_dock_widget () |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
131 { |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
132 // save state of this dock-widget |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
133 QString name = objectName (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
134 QSettings *settings = resource_manager::get_settings (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
135 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
136 settings->beginGroup ("DockWidgets"); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
137 |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
138 #if defined (Q_OS_WIN32) |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
139 if (_floating) // widget is floating (windows), save actual floating geometry |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
140 settings->setValue (name+"_floating_geometry", geometry ()); |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
141 else // not floating save docked (normal) geometry |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
142 #endif |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
143 settings->setValue (name, saveGeometry ()); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
144 |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
145 settings->setValue (name+"Visible", isVisible ()); // store visibility |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
146 settings->setValue (name+"Floating", _floating); // store visibility |
17929
97bde75d4119
save and restore minimized state of floating dock-widgets (bug #40485)
Torsten <ttl@justmail.de>
parents:
17923
diff
changeset
|
147 settings->setValue (name+"_minimized", isMinimized ()); // store minimized |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
148 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
149 settings->endGroup (); |
16819
94c19dfb4ab1
* octave-dock-widget.cc: add missing sync () after writing to settings
Torsten <ttl@justmail.de>
parents:
16818
diff
changeset
|
150 settings->sync (); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
151 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
152 |
16809
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
153 // connect signal visibility changed to related slot (called from main-window) |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
154 void |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
155 octave_dock_widget::connect_visibility_changed (void) |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
156 { |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
157 connect (this, SIGNAL (visibilityChanged (bool)), |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
158 this, SLOT (handle_visibility (bool))); |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
159 emit active_changed (isVisible ()); // emit once for init of window menu |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
160 } |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
161 |
84505f200e05
fix checked state of window menu entries at startup (bug #39322)
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
162 |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
163 // set the widget which previously had focus when tabified |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
164 void |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
165 octave_dock_widget::set_predecessor_widget (octave_dock_widget *prev_widget) |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
166 { |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
167 _predecessor_widget = prev_widget; |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
168 } |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
169 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
170 // set the title in the dockwidgets title bar |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
171 void |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
172 octave_dock_widget::set_title (const QString& title) |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
173 { |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
174 #if defined (Q_OS_WIN32) |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
175 QHBoxLayout* h_layout = |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
176 static_cast<QHBoxLayout *> (titleBarWidget ()->layout ()); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
177 QLabel *label = new QLabel (title); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
178 label->setStyleSheet ("background: transparent;"); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
179 h_layout->insertWidget (0,label); |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
180 #endif |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
181 setWindowTitle (title); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
182 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
183 |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
184 // set focus to previously active widget in tabbed widget stack |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
185 void |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
186 octave_dock_widget::set_focus_predecessor () |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
187 { |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
188 if (_predecessor_widget) // only != 0 if widget was tabbed |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
189 _predecessor_widget->focus (); |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
190 |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
191 _predecessor_widget = 0; |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
192 } |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
193 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
194 // make the widget floating |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
195 void |
16818
caf3d2a45da0
clean up some code for undocking and docking widgets
Torsten <ttl@justmail.de>
parents:
16809
diff
changeset
|
196 octave_dock_widget::make_window () |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
197 { |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
198 #if defined (Q_OS_WIN32) |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
199 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
200 // windows: the widget has to be reparented (parent = 0) |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
201 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
202 QSettings *settings = resource_manager::get_settings (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
203 |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
204 // save the docking area and geometry for later redocking |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
205 // FIXME: dockWidgetArea always returns 2 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
206 settings->setValue ("DockWidgets/" + objectName () + "_dock_area", |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
207 _parent->dockWidgetArea (this)); |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
208 settings->setValue ("DockWidgets/" + objectName (), saveGeometry ()); |
16819
94c19dfb4ab1
* octave-dock-widget.cc: add missing sync () after writing to settings
Torsten <ttl@justmail.de>
parents:
16818
diff
changeset
|
209 settings->sync (); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
210 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
211 // remove parent and adjust the (un)dock icon |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
212 setParent (0, Qt::Window); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
213 _dock_action->setIcon (QIcon (":/actions/icons/widget-dock"+_icon_color+".png")); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
214 _dock_action->setToolTip (tr ("Dock widget")); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
215 |
18678
6113e0c6920b
maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents:
18555
diff
changeset
|
216 // restore the last geometry when floating |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
217 setGeometry (settings->value ("DockWidgets/" + objectName () |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
218 + "_floating_geometry",QRect(50,100,480,480)).toRect ()); |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
219 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
220 #else |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
221 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
222 // non windows: Just set the appripriate window flag |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
223 setWindowFlags (Qt::Window); |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
224 |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
225 QString css = styleSheet (); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
226 css.replace ("widget-undock","widget-dock"); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
227 setStyleSheet (css); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
228 |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
229 #endif |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
230 |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
231 _floating = true; |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
232 |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
233 set_focus_predecessor (); // set focus previously active widget if tabbed |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
234 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
235 |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
236 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
237 // dock the widget |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
238 void |
19431
bd27cd403d00
fix errors when building octave for windows (regression from d93293218966)
Torsten <ttl@justmail.de>
parents:
19423
diff
changeset
|
239 octave_dock_widget::make_widget (bool dock) |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
240 { |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
241 #if defined (Q_OS_WIN32) |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
242 |
18680 | 243 // windows: Since floating widget has no parent, we have to read it |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
244 |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
245 QSettings *settings = resource_manager::get_settings (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
246 |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
247 // save last floating geometry if widget really was floating |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
248 if (_floating) |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
249 settings->setValue ("DockWidgets/" + objectName () + "_floating_geometry", |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
250 geometry ()); |
16819
94c19dfb4ab1
* octave-dock-widget.cc: add missing sync () after writing to settings
Torsten <ttl@justmail.de>
parents:
16818
diff
changeset
|
251 settings->sync (); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
252 |
17090
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
253 if (dock) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
254 { |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
255 // add widget to last saved docking area (dock=true is default) |
17090
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
256 int area = settings->value ("DockWidgets/" + objectName () + "_dock_area", |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
257 Qt::TopDockWidgetArea).toInt (); |
17090
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
258 _parent->addDockWidget (static_cast<Qt::DockWidgetArea> (area), this); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
259 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
260 // FIXME: restoreGeometry is ignored for docked widgets |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
261 // and its child widget |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
262 restoreGeometry (settings->value |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
263 ("DockWidgets/" + objectName ()).toByteArray ()); |
17090
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
264 } |
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
265 else // only reparent, no docking |
1d544ac39369
show correct undock-button of widgets when window layout is resetted
Torsten <ttl@justmail.de>
parents:
16953
diff
changeset
|
266 setParent (_parent); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
267 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
268 // adjust the (un)dock icon |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
269 _dock_action->setIcon (QIcon (":/actions/icons/widget-undock"+_icon_color+".png")); |
16865
a86327a7d9fb
fix of typos in text strings of the gui
Torsten <ttl@justmail.de>
parents:
16819
diff
changeset
|
270 _dock_action->setToolTip (tr ("Undock widget")); |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
271 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
272 #else |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
273 |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
274 // non windows: just say we are a docked widget again |
19614
4c3ea57905fd
eliminate unused variable warnings in libgui
John W. Eaton <jwe@octave.org>
parents:
19431
diff
changeset
|
275 |
4c3ea57905fd
eliminate unused variable warnings in libgui
John W. Eaton <jwe@octave.org>
parents:
19431
diff
changeset
|
276 Q_UNUSED (dock); |
4c3ea57905fd
eliminate unused variable warnings in libgui
John W. Eaton <jwe@octave.org>
parents:
19431
diff
changeset
|
277 |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
278 setWindowFlags (Qt::Widget); |
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
279 |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
280 QString css = styleSheet (); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
281 css.replace ("widget-dock","widget-undock"); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
282 setStyleSheet (css); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
283 |
17686
65544374c1cf
restore (un)docking of widgets without reparenting on non-windows systems
Torsten <ttl@justmail.de>
parents:
17090
diff
changeset
|
284 #endif |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
285 |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
286 _floating = false; |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
287 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
288 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
289 // slot for (un)dock action |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
290 void |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
291 octave_dock_widget::change_floating (bool) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
292 { |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
293 if (_floating) |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
294 make_widget (); |
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17790
diff
changeset
|
295 else |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
296 { |
16818
caf3d2a45da0
clean up some code for undocking and docking widgets
Torsten <ttl@justmail.de>
parents:
16809
diff
changeset
|
297 make_window (); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
298 focus (); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
299 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
300 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
301 |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
302 // slot for hiding the widget |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
303 void |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
304 octave_dock_widget::change_visibility (bool) |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
305 { |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
306 setVisible (false); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
307 emit active_changed (false); |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
308 } |
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
309 |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
310 // get focus widget |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
311 QWidget * |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
312 octave_dock_widget::focusWidget () |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
313 { |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
314 QWidget * w = QApplication::focusWidget (); |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
315 if (w && w->focusProxy ()) w = w->focusProxy (); |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17686
diff
changeset
|
316 return w; |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
317 } |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
318 |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
319 void |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
320 octave_dock_widget::set_style (bool active) |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
321 { |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
322 QString css; |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
323 QString css_button; |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
324 QString dock_icon; |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
325 |
19431
bd27cd403d00
fix errors when building octave for windows (regression from d93293218966)
Torsten <ttl@justmail.de>
parents:
19423
diff
changeset
|
326 QString icon_col = _icon_color; |
bd27cd403d00
fix errors when building octave for windows (regression from d93293218966)
Torsten <ttl@justmail.de>
parents:
19423
diff
changeset
|
327 |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
328 if (_floating) |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
329 dock_icon = "widget-dock"; |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
330 else |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
331 dock_icon = "widget-undock"; |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
332 |
20794
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
333 #if defined (Q_OS_MAC) |
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
334 QString alignment = "center"; |
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
335 #else |
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
336 QString alignment = "center left"; |
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
337 #endif |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
338 if (_custom_style) |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
339 { |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
340 |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
341 QColor bg_col, fg_col; |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
342 |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
343 if (active) |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
344 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
345 bg_col = _bg_color_active; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
346 fg_col = _fg_color_active; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
347 icon_col = _icon_color_active; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
348 } |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
349 else |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
350 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
351 bg_col = _bg_color; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
352 fg_col = _fg_color; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
353 icon_col = _icon_color; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
354 } |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
355 |
19913
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
356 QColor bg_col_top, bg_col_bottom; |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
357 if (_title_3d > 0) |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
358 { |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
359 bg_col_top = bg_col.lighter (100 + _title_3d); |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
360 bg_col_bottom = bg_col.darker (100 + _title_3d); |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
361 } |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
362 else |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
363 { |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
364 bg_col_top = bg_col.darker (100 - _title_3d); |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
365 bg_col_bottom = bg_col.lighter (100 - _title_3d); |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
366 } |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
367 |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
368 QString background = |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
369 QString ("background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," |
19913
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
370 " stop: 0 %1, stop: 0.60 %2, stop: 0.95 %2 stop: 1.0 %3);"). |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
371 arg (bg_col_top.name ()). |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
372 arg (bg_col.name ()). |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
373 arg (bg_col_bottom.name ()); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
374 |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
375 #if defined (Q_OS_WIN32) |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
376 css = background + QString (" color: %1 ;").arg (fg_col.name ()); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
377 #else |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
378 css = QString ("QDockWidget::title { " + background + |
20794
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
379 " text-align: " + alignment + ";" |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
380 " padding: 0px 0px 0px 4px;}\n" |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
381 "QDockWidget { color: %1 ; " |
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
382 " titlebar-close-icon: url(:/actions/icons/widget-close%2.png);" |
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
383 " titlebar-normal-icon: url(:/actions/icons/"+dock_icon+"%2); }" |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
384 "QDockWidget::close-button," |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
385 "QDockWidget::float-button { border: 0px; icon-size: %3px; width: %3px}" |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
386 ). |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
387 arg (fg_col.name ()).arg (icon_col).arg (_icon_size); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
388 #endif |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
389 } |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
390 else |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
391 { |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
392 #if defined (Q_OS_WIN32) |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
393 css = QString (""); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
394 #else |
20794
e870a68742a6
change alignment of dock widget titles for OSX (bug #46592)
Torsten <ttl@justmail.de>
parents:
20630
diff
changeset
|
395 css = QString ("QDockWidget::title { text-align: " + alignment + ";" |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
396 " padding: 0px 0px 0px 4px;}" |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
397 "QDockWidget {" |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
398 " titlebar-close-icon: url(:/actions/icons/widget-close.png);" |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
399 " titlebar-normal-icon: url(:/actions/icons/"+dock_icon+"); }" |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
400 "QDockWidget::close-button," |
19918
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
401 "QDockWidget::float-button { border: 0px; icon-size: %1px; width: %1px}" |
66928b4546ab
dock-/undock- and close-icons with variable size (bug #41938)
Torsten <ttl@justmail.de>
parents:
19913
diff
changeset
|
402 ).arg (_icon_size); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
403 #endif |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
404 } |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
405 |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
406 #if defined (Q_OS_WIN32) |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
407 _title_widget->setStyleSheet (css); |
18218
7952fb0435db
improve title bar of dock widgets
Torsten <ttl@justmail.de>
parents:
18180
diff
changeset
|
408 css_button = QString ("background: transparent; border: 0px;"); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
409 _dock_button->setStyleSheet (css_button); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
410 _close_button->setStyleSheet (css_button); |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
411 _dock_action->setIcon (QIcon (":/actions/icons/" + dock_icon + icon_col + |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
412 ".png")); |
19911
2b5cbea8f442
fix missing close icon of dock widgets in windows (bug #44441)
Torsten <ttl@justmail.de>
parents:
19861
diff
changeset
|
413 _close_action->setIcon (QIcon (":/actions/icons/widget-close" + icon_col + |
2b5cbea8f442
fix missing close icon of dock widgets in windows (bug #44441)
Torsten <ttl@justmail.de>
parents:
19861
diff
changeset
|
414 ".png")); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
415 #else |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
416 setStyleSheet (css); |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
417 #endif |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
418 } |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
419 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
420 void |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
421 octave_dock_widget::handle_settings (const QSettings *settings) |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
422 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
423 _custom_style = |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
424 settings->value ("DockWidgets/widget_title_custom_style",false).toBool (); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
425 |
19913
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
426 _title_3d = |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
427 settings->value ("DockWidgets/widget_title_3d",50).toInt (); |
2a992bd19169
make color gradient of custom title bar adjustable (bug #44435)
Torsten <ttl@justmail.de>
parents:
19911
diff
changeset
|
428 |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
429 QColor default_var = QColor (0,0,0); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
430 _fg_color = settings->value ("Dockwidgets/title_fg_color", |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
431 default_var).value<QColor> (); |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
432 default_var = QColor (0,0,0); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
433 _fg_color_active = settings->value ("Dockwidgets/title_fg_color_active", |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
434 default_var).value<QColor> (); |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
435 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
436 default_var = QColor (255,255,255); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
437 _bg_color = settings->value ("Dockwidgets/title_bg_color", |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
438 default_var).value<QColor> (); |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
439 default_var = QColor (192,192,192); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
440 _bg_color_active = settings->value ("Dockwidgets/title_bg_color_active", |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
441 default_var).value<QColor> (); |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
442 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
443 int r, g, b; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
444 _bg_color.getRgb (&r, &g, &b); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
445 if (r+g+b < 400) |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
446 _icon_color = "-light"; |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
447 else |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
448 _icon_color = ""; |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
449 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
450 _bg_color_active.getRgb (&r, &g, &b); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
451 if (r+g+b < 400) |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
452 _icon_color_active = "-light"; |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
453 else |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
454 _icon_color_active = ""; |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
455 |
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
456 notice_settings (settings); // call individual handler |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
457 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
458 set_style (false); |
18180
b3838cedfe04
redesign of dock widgets title bar with configurable colors
Torsten <ttl@justmail.de>
parents:
17929
diff
changeset
|
459 } |
19360
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
460 |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
461 bool octave_dock_widget::eventFilter(QObject *obj, QEvent *e) |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
462 { |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
463 if (e->type () == QEvent::NonClientAreaMouseButtonDblClick) |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
464 { |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
465 e->ignore (); // ignore double clicks into window decoration elements |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
466 return true; |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
467 } |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
468 |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
469 return QDockWidget::eventFilter (obj,e); |
2f9d9663b6b0
fix double clicks into the borders of floating dock widgets (bug #43662)
Torsten <ttl@justmail.de>
parents:
18555
diff
changeset
|
470 } |
19423
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
471 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
472 void |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
473 octave_dock_widget::handle_active_dock_changed (octave_dock_widget *w_old, |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
474 octave_dock_widget *w_new) |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
475 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
476 if (_custom_style && this == w_old) |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
477 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
478 set_style (false); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
479 update (); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
480 } |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
481 |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
482 if (_custom_style && this == w_new) |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
483 { |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
484 set_style (true); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
485 update (); |
d93293218966
custom style of dock widget title bars depending on focus (bug #43837)
Torsten <ttl@justmail.de>
parents:
19360
diff
changeset
|
486 } |
19614
4c3ea57905fd
eliminate unused variable warnings in libgui
John W. Eaton <jwe@octave.org>
parents:
19431
diff
changeset
|
487 } |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
488 |
20186
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
489 // slot for adding actions from the main window |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
490 void |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
491 octave_dock_widget::add_actions (QList<QAction *> action_list) |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
492 { |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
493 if (objectName () != "FileEditor") |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
494 addActions (action_list); |
ac3746f39fab
make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents:
19983
diff
changeset
|
495 } |
19983
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
496 |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
497 // close event |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
498 void |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
499 octave_dock_widget::closeEvent (QCloseEvent *e) |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
500 { |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
501 emit active_changed (false); |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
502 set_focus_predecessor (); |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
503 QDockWidget::closeEvent (e); |
643de08e524c
save and restore previously active widget in a tabbed stack (bug #42980)
Torsten <ttl@justmail.de>
parents:
19945
diff
changeset
|
504 } |