Mercurial > octave
annotate libgui/graphics/Figure.cc @ 31647:431f80aba37a
maint: Merge stable to default.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 06 Dec 2022 15:37:43 -0500 |
parents | ca7d58406f82 c6d54dd31a7e |
children | deb553ac2c54 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30398
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
27 # include "config.h" |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 #endif |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 #include <QAction> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 #include <QActionEvent> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
32 #include <QApplication> |
20079
27c0285828f8
make copying images to the clipboard work with Qt graphics
John W. Eaton <jwe@octave.org>
parents:
20078
diff
changeset
|
33 #include <QClipboard> |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 #include <QEvent> |
19685
7335cc071ab0
make save and saveas menu items work in Qt figure window
John W. Eaton <jwe@octave.org>
parents:
19681
diff
changeset
|
35 #include <QFileDialog> |
7335cc071ab0
make save and saveas menu items work in Qt figure window
John W. Eaton <jwe@octave.org>
parents:
19681
diff
changeset
|
36 #include <QFileInfo> |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 #include <QFrame> |
20079
27c0285828f8
make copying images to the clipboard work with Qt graphics
John W. Eaton <jwe@octave.org>
parents:
20078
diff
changeset
|
38 #include <QImage> |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 #include <QMainWindow> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 #include <QMenu> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 #include <QMenuBar> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 #include <QMessageBox> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 #include <QtDebug> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 #include <QTimer> |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 #include <QToolBar> |
25886
d3f5d021255d
Allow building with Qt4 again (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25884
diff
changeset
|
46 #if defined (HAVE_QSCREEN_DEVICEPIXELRATIO) |
d3f5d021255d
Allow building with Qt4 again (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25884
diff
changeset
|
47 # include <QWindow> |
d3f5d021255d
Allow building with Qt4 again (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25884
diff
changeset
|
48 # include <QScreen> |
d3f5d021255d
Allow building with Qt4 again (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25884
diff
changeset
|
49 #endif |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 #include "Canvas.h" |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 #include "Container.h" |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 #include "Figure.h" |
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 #include "FigureWindow.h" |
18505
fb96b7f55242
rename file to avoid clash on case-insenstive filesystems (bug #41658)
John W. Eaton <jwe@octave.org>
parents:
18501
diff
changeset
|
55 #include "QtHandlesUtils.h" |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27478
diff
changeset
|
57 #include "gui-preferences-global.h" |
27417
f844b1f03dcc
update some header file lists in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27376
diff
changeset
|
58 #include "qt-interpreter-events.h" |
f844b1f03dcc
update some header file lists in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27376
diff
changeset
|
59 |
20079
27c0285828f8
make copying images to the clipboard work with Qt graphics
John W. Eaton <jwe@octave.org>
parents:
20078
diff
changeset
|
60 #include "file-ops.h" |
27c0285828f8
make copying images to the clipboard work with Qt graphics
John W. Eaton <jwe@octave.org>
parents:
20078
diff
changeset
|
61 #include "unwind-prot.h" |
20085
c58cf3a65519
improve copy to clipboard code for Qt plotting
John W. Eaton <jwe@octave.org>
parents:
20079
diff
changeset
|
62 #include "utils.h" |
21916
3a0c90b59584
Make qt figure window "Help" menu correspond to main window (bug #48223)
Mike Miller <mtmiller@octave.org>
parents:
21824
diff
changeset
|
63 #include "version.h" |
20079
27c0285828f8
make copying images to the clipboard work with Qt graphics
John W. Eaton <jwe@octave.org>
parents:
20078
diff
changeset
|
64 |
27417
f844b1f03dcc
update some header file lists in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27376
diff
changeset
|
65 #include "builtin-defun-decls.h" |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
66 #include "interpreter.h" |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
67 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
68 OCTAVE_BEGIN_NAMESPACE(octave) |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
69 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
70 DECLARE_GENERICEVENTNOTIFY_SENDER(MenuBar, QMenuBar); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
71 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
72 static QRect |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
73 boundingBoxToRect (const Matrix& bb) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
74 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
75 QRect r; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
76 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
77 if (bb.numel () == 4) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
78 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
79 r = QRect (octave::math::round (bb(0)), octave::math::round (bb(1)), |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
80 octave::math::round (bb(2)), octave::math::round (bb(3))); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
81 if (! r.isValid ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
82 r = QRect (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
83 } |
19954
b6061813a693
always obtain gh_manager lock before accessing graphics objects
John W. Eaton <jwe@octave.org>
parents:
19870
diff
changeset
|
84 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
85 return r; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
86 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
87 |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
88 static QImage |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
89 pointer_to_qimage (const Matrix& cdata) |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
90 { |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
91 QImage retval (cdata.rows (), cdata.columns (), QImage::Format_ARGB32); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
92 QColor tmp ("White"); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
93 QColor black ("Black"); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
94 QColor white ("White"); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
95 for (octave_idx_type ii = 0; ii < cdata.rows (); ii++) |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
96 for (octave_idx_type jj = 0; jj < cdata.columns (); jj++) |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
97 { |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
98 if (cdata(ii, jj) == 1.0) |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
99 tmp = black; |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
100 else if (cdata(ii, jj) == 2.0) |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
101 tmp = white; |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
102 else |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
103 tmp.setAlpha (0); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
104 |
27107
6bc32e6a1b4f
Restore hability to compile with Qt < 5.6 (bug #56376)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27099
diff
changeset
|
105 retval.setPixel (jj, ii, tmp.rgba ()); |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
106 } |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
107 |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
108 return retval; |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
109 } |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
110 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
111 Figure * |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
112 Figure::create (octave::interpreter& interp, |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
113 const graphics_object& go) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
114 { |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
115 return new Figure (interp, go, new FigureWindow ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
116 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
117 |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
118 Figure::Figure (octave::interpreter& interp, |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
119 const graphics_object& go, FigureWindow *win) |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
120 : Object (interp, go, win), m_blockUpdates (false), |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
121 m_figureToolBar (nullptr), m_menuBar (nullptr), m_innerRect (), |
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
122 m_outerRect (), m_previousHeight (0), m_resizable (true) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
123 { |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
124 m_container = new Container (win, interp); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
125 win->setCentralWidget (m_container); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
126 |
29896
0dd2742601e4
fix wring connection of interpreter events in QtHandles
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29542
diff
changeset
|
127 connect (m_container, QOverload<const octave::fcn_callback&>::of (&Container::interpreter_event), |
0dd2742601e4
fix wring connection of interpreter events in QtHandles
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29542
diff
changeset
|
128 this, QOverload<const octave::fcn_callback&>::of (&Figure::interpreter_event)); |
27303
07b330708e3c
use Qt signals for interpreter callbacks in Qt graphics toolkit
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
129 |
29896
0dd2742601e4
fix wring connection of interpreter events in QtHandles
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29542
diff
changeset
|
130 connect (m_container, QOverload<const octave::meth_callback&>::of (&Container::interpreter_event), |
0dd2742601e4
fix wring connection of interpreter events in QtHandles
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29542
diff
changeset
|
131 this, QOverload<const octave::meth_callback&>::of (&Figure::interpreter_event)); |
27303
07b330708e3c
use Qt signals for interpreter callbacks in Qt graphics toolkit
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
132 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
133 figure::properties& fp = properties<figure> (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
134 |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
135 // Adjust figure position |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
136 m_innerRect = boundingBoxToRect (fp.get_boundingbox (true)); |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
137 m_outerRect = boundingBoxToRect (fp.get_boundingbox (false)); |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
138 |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
139 set_geometry (m_innerRect); |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
140 |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
141 // Menubar |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
142 m_menuBar = new MenuBar (win); |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
143 win->setMenuBar (m_menuBar); |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
144 m_menuBar->addReceiver (this); |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27478
diff
changeset
|
145 m_menuBar->setStyleSheet (m_menuBar->styleSheet () + global_menubar_style); |
27478
9e526393d80a
reduced vertical space in gui with responsive toolbar buttons (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27417
diff
changeset
|
146 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
147 // Status bar |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
148 m_statusBar = win->statusBar (); |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
149 m_statusBar->setVisible (false); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
150 |
25951 | 151 if (fp.toolbar_is ("figure") |
26338
358bed84511b
Display figure toolbar correctly (bug #55350).
Rik <rik@octave.org>
parents:
26130
diff
changeset
|
152 || (fp.toolbar_is ("auto") && fp.menubar_is ("figure"))) |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
153 showFigureStatusBar (true); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
154 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
155 // Enable mouse tracking unconditionally |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
156 enableMouseTracking (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
157 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
158 // When this constructor gets called all properties are already |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
159 // set, even non default. We force "update" here to get things right. |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
160 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
161 // Figure title |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
162 update (figure::properties::ID_NUMBERTITLE); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
163 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
164 // Decide what keyboard events we listen to |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
165 m_container->canvas (m_handle)->setEventMask (0); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
166 update (figure::properties::ID_KEYPRESSFCN); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
167 update (figure::properties::ID_KEYRELEASEFCN); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
168 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
169 // modal style |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
170 update (figure::properties::ID_WINDOWSTYLE); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
171 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
172 // Handle resizing constraints |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
173 update (figure::properties::ID_RESIZE); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
174 |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
175 // Custom pointer data |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
176 update (figure::properties::ID_POINTERSHAPECDATA); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
177 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
178 // Visibility |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
179 update (figure::properties::ID_VISIBLE); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
180 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
181 connect (this, &Figure::asyncUpdate, this, &Figure::updateContainer); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
182 |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
183 // Register for the signal that indicates when a window has moved |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
184 // to a different screen |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
185 connect (win, &FigureWindow::figureWindowShown, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
186 this, &Figure::figureWindowShown); |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
187 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
188 win->addReceiver (this); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
189 m_container->addReceiver (this); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
190 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
191 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
192 Figure::~Figure (void) |
22417
48c00363dc74
maint: Use '{ }' for empty function bodies in C++.
Rik <rik@octave.org>
parents:
22413
diff
changeset
|
193 { } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
194 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
195 QString |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
196 Figure::fileName (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
197 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
198 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
199 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
200 octave::autolock guard (gh_mgr.graphics_lock ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
201 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
202 const figure::properties& fp = properties<figure> (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
203 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
204 std::string name = fp.get_filename (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
205 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
206 return QString::fromStdString (name); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
207 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
208 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
209 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
210 Figure::setFileName (const QString& name) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
211 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
212 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
213 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
214 octave::autolock guard (gh_mgr.graphics_lock ()); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
215 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
216 figure::properties& fp = properties<figure> (); |
20537
d0f886a030b7
Use "update" method to initialize Qt Figures (cleanup + bug #46086)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20531
diff
changeset
|
217 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
218 fp.set_filename (name.toStdString ()); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
219 } |
20594
46edfbd31ad7
Fix execution of "windowbuttonmotionfcn" with uipanels (bug #46151)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20537
diff
changeset
|
220 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
221 MouseMode |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
222 Figure::mouseMode (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
223 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
224 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
225 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
226 octave::autolock guard (gh_mgr.graphics_lock ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
227 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
228 const figure::properties& fp = properties<figure> (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
229 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
230 std::string mode = fp.get___mouse_mode__ (); |
20537
d0f886a030b7
Use "update" method to initialize Qt Figures (cleanup + bug #46086)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20531
diff
changeset
|
231 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
232 if (mode == "zoom") |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
233 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
234 octave_scalar_map zm = fp.get___zoom_mode__ ().scalar_map_value (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
235 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
236 std::string direction = zm.getfield ("Direction").string_value (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
237 |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23800
diff
changeset
|
238 mode += ' ' + direction; |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
239 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
240 |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
241 if (mode == "rotate") |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
242 return RotateMode; |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
243 else if (mode == "zoom in") |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
244 return ZoomInMode; |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
245 else if (mode == "zoom out") |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
246 return ZoomOutMode; |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
247 else if (mode == "pan") |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
248 return PanMode; |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
249 else if (mode == "text") |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
250 return TextMode; |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
251 |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
252 return NoMode; |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
253 } |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
254 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
255 void |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
256 Figure::set_geometry (QRect r) |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
257 { |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
258 QMainWindow *win = qWidget<QMainWindow> (); |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
259 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
260 if (! m_resizable) |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
261 { |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
262 win->setSizePolicy (QSizePolicy::Preferred, QSizePolicy::Preferred); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
263 win->setFixedSize (QSize( QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
264 } |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
265 |
26821
f9b10a8a7c93
Allow changing the position of a maximized/fullscreen Qt figure.
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26820
diff
changeset
|
266 // Unlock window if it is maximized or full-screen |
f9b10a8a7c93
Allow changing the position of a maximized/fullscreen Qt figure.
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26820
diff
changeset
|
267 int state = win->windowState (); |
f9b10a8a7c93
Allow changing the position of a maximized/fullscreen Qt figure.
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26820
diff
changeset
|
268 if (state == Qt::WindowFullScreen || state == Qt::WindowMaximized) |
f9b10a8a7c93
Allow changing the position of a maximized/fullscreen Qt figure.
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26820
diff
changeset
|
269 win->setWindowState (Qt::WindowNoState); |
f9b10a8a7c93
Allow changing the position of a maximized/fullscreen Qt figure.
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26820
diff
changeset
|
270 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
271 win->setGeometry (r); |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
272 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
273 if (! m_resizable) |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
274 { |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
275 win->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
276 win->setFixedSize(win->size ()); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
277 } |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
278 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
279 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
280 Container * |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
281 Figure::innerContainer (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
282 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
283 return m_container; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
284 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
285 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
286 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
287 Figure::redraw (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
288 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
289 Canvas *canvas = m_container->canvas (m_handle); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
290 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
291 if (canvas) |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
292 canvas->redraw (); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
293 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
294 for (auto *qobj : qWidget<QWidget> ()->findChildren<QObject *> ()) |
23223
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
295 { |
26816
92ecc4a97b5c
Properly redraw uixx objects after Qt figure is (un)maximized (bug #53709)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26520
diff
changeset
|
296 if (qobj->objectName () == "UIPanel" |
92ecc4a97b5c
Properly redraw uixx objects after Qt figure is (un)maximized (bug #53709)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26520
diff
changeset
|
297 || qobj->objectName () == "UIButtonGroup" |
26820
0a383bddfb40
Also update uitbale position when figure is (un)maximized (bug #53709)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26816
diff
changeset
|
298 || qobj->objectName () == "UIControl" |
0a383bddfb40
Also update uitbale position when figure is (un)maximized (bug #53709)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26816
diff
changeset
|
299 || qobj->objectName () == "UITable") |
23223
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
300 { |
26816
92ecc4a97b5c
Properly redraw uixx objects after Qt figure is (un)maximized (bug #53709)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26520
diff
changeset
|
301 Object *obj = Object::fromQObject (qobj); |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
302 |
23223
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
303 if (obj) |
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
304 obj->slotRedraw (); |
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
305 } |
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
306 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
307 } |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
308 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
309 void |
25799
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
310 Figure::show (void) |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
311 { |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
312 QWidget *win = qWidget<QWidget> (); |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
313 |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
314 win->activateWindow (); |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
315 win->raise (); |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
316 } |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
317 |
d04b74f5d02e
make shg and figure (N) activate and raise figure windows (bug #45943)
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
318 void |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
319 Figure::print (const QString& file_cmd, const QString& term) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
320 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
321 Canvas *canvas = m_container->canvas (m_handle); |
19685
7335cc071ab0
make save and saveas menu items work in Qt figure window
John W. Eaton <jwe@octave.org>
parents:
19681
diff
changeset
|
322 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
323 if (canvas) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
324 canvas->print (file_cmd, term); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
325 } |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
326 |
23535
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
327 uint8NDArray |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
328 Figure::slotGetPixels (void) |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
329 { |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
330 uint8NDArray retval; |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
331 Canvas *canvas = m_container->canvas (m_handle); |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
332 |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
333 if (canvas) |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
334 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
335 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
336 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
337 gh_mgr.process_events (); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
338 octave::autolock guard (gh_mgr.graphics_lock ()); |
23535
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
339 retval = canvas->getPixels (); |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
340 } |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
341 |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
342 return retval; |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
343 } |
2aab625b502c
Add getframe function for opengl based toolkits (bug #48195)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23449
diff
changeset
|
344 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
345 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
346 Figure::beingDeleted (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
347 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
348 Canvas *canvas = m_container->canvas (m_handle.value (), false); |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
349 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
350 if (canvas) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
351 canvas->blockRedraw (true); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
352 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
353 m_container->removeReceiver (this); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
354 qWidget<FigureWindow> ()->removeReceiver (this); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
355 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
356 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
357 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
358 Figure::update (int pId) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
359 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
360 if (m_blockUpdates) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
361 return; |
19681
35bca657d74d
printing for Qt plot widget (bug #42537)
John W. Eaton <jwe@octave.org>
parents:
19663
diff
changeset
|
362 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
363 figure::properties& fp = properties<figure> (); |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
364 |
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
365 if (fp.is___printing__ ()) |
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
366 return; |
24691
b658e0fa0cb3
maint: Remove trailing whitespace from files.
Rik <rik@octave.org>
parents:
24687
diff
changeset
|
367 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
368 QMainWindow *win = qWidget<QMainWindow> (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
369 |
25044
b6aea95a7bf9
store graphics object in Qt backend to avoid crash (bug #53487, #53500)
John W. Eaton <jwe@octave.org>
parents:
24691
diff
changeset
|
370 // If the window doesn't exist, there's nothing we can do. |
b6aea95a7bf9
store graphics object in Qt backend to avoid crash (bug #53487, #53500)
John W. Eaton <jwe@octave.org>
parents:
24691
diff
changeset
|
371 if (! win) |
b6aea95a7bf9
store graphics object in Qt backend to avoid crash (bug #53487, #53500)
John W. Eaton <jwe@octave.org>
parents:
24691
diff
changeset
|
372 return; |
b6aea95a7bf9
store graphics object in Qt backend to avoid crash (bug #53487, #53500)
John W. Eaton <jwe@octave.org>
parents:
24691
diff
changeset
|
373 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
374 m_blockUpdates = true; |
24691
b658e0fa0cb3
maint: Remove trailing whitespace from files.
Rik <rik@octave.org>
parents:
24687
diff
changeset
|
375 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
376 switch (pId) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
377 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
378 case figure::properties::ID_POSITION: |
19621
af0399a5aae0
untabify QtHandles source files
John W. Eaton <jwe@octave.org>
parents:
19616
diff
changeset
|
379 { |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
380 m_innerRect = boundingBoxToRect (fp.get_boundingbox (true)); |
20270
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
381 int toffset = 0; |
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
382 int boffset = 0; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
383 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
384 for (auto *tb : win->findChildren<QToolBar *> ()) |
22744
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
385 if (! tb->isHidden ()) |
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
386 toffset += tb->sizeHint ().height (); |
20270
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
387 |
19621
af0399a5aae0
untabify QtHandles source files
John W. Eaton <jwe@octave.org>
parents:
19616
diff
changeset
|
388 if (! m_menuBar->isHidden ()) |
22370
0a2961d5893c
Fix calculation of window height in Qt, FLTK (bug #48833, bug #48522).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22323
diff
changeset
|
389 toffset += m_menuBar->sizeHint ().height (); |
20531
dcfbf4c1c3c8
eliminate trailing whitespace and tabs from sources
John W. Eaton <jwe@octave.org>
parents:
20524
diff
changeset
|
390 |
20270
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
391 if (! m_statusBar->isHidden ()) |
22370
0a2961d5893c
Fix calculation of window height in Qt, FLTK (bug #48833, bug #48522).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22323
diff
changeset
|
392 boffset += m_statusBar->sizeHint ().height (); |
20270
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
393 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
394 set_geometry (m_innerRect.adjusted (0, -toffset, 0, boffset)); |
19621
af0399a5aae0
untabify QtHandles source files
John W. Eaton <jwe@octave.org>
parents:
19616
diff
changeset
|
395 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
396 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
397 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
398 case figure::properties::ID_NAME: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
399 case figure::properties::ID_NUMBERTITLE: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
400 win->setWindowTitle (Utils::fromStdString (fp.get_title ())); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
401 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
402 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
403 case figure::properties::ID_VISIBLE: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
404 if (fp.is_visible ()) |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
405 { |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
406 QTimer::singleShot (0, win, &QMainWindow::show); |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
407 if (! fp.is___gl_window__ ()) |
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
408 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
409 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
410 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
411 octave::autolock guard (gh_mgr.graphics_lock ()); |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
412 fp.set ("__gl_window__", "on"); |
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24534
diff
changeset
|
413 } |
24691
b658e0fa0cb3
maint: Remove trailing whitespace from files.
Rik <rik@octave.org>
parents:
24687
diff
changeset
|
414 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
415 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
416 win->hide (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
417 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
418 |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
419 case figure::properties::ID_RESIZE: |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
420 if (fp.is_resize ()) |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
421 { |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
422 win->setSizePolicy (QSizePolicy::Preferred, QSizePolicy::Preferred); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
423 win->setFixedSize (QSize( QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
424 m_resizable = true; |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
425 } |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
426 else |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
427 { |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
428 win->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
429 win->setFixedSize(win->size ()); |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
430 m_resizable = false; |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
431 } |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
432 break; |
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
433 |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
434 case figure::properties::ID_MENUBAR: |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
435 case figure::properties::ID_TOOLBAR: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
436 if (fp.toolbar_is ("none")) |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
437 showFigureStatusBar (false); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
438 else if (fp.toolbar_is ("figure")) |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
439 showFigureStatusBar (true); |
26338
358bed84511b
Display figure toolbar correctly (bug #55350).
Rik <rik@octave.org>
parents:
26130
diff
changeset
|
440 else // "auto" |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
441 showFigureStatusBar (fp.menubar_is ("figure")); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
442 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
443 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
444 case figure::properties::ID_KEYPRESSFCN: |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23535
diff
changeset
|
445 if (fp.get_keypressfcn ().isempty ()) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
446 m_container->canvas (m_handle)->clearEventMask (Canvas::KeyPress); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
447 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
448 m_container->canvas (m_handle)->addEventMask (Canvas::KeyPress); |
27224
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
449 // Signal the change to uipanels as well |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
450 for (auto *qobj : qWidget<QWidget> ()->findChildren<QObject *> ()) |
27224
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
451 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
452 if (qobj->objectName () == "UIPanel") |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
453 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
454 Object *obj = Object::fromQObject (qobj); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
455 |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
456 if (obj) |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
457 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
458 if (fp.get_keypressfcn ().isempty ()) |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
459 obj->innerContainer ()->canvas (m_handle)-> |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
460 clearEventMask (Canvas::KeyPress); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
461 else |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
462 obj->innerContainer ()->canvas (m_handle)-> |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
463 addEventMask (Canvas::KeyPress); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
464 } |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
465 } |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
466 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
467 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
468 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
469 case figure::properties::ID_KEYRELEASEFCN: |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23535
diff
changeset
|
470 if (fp.get_keyreleasefcn ().isempty ()) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
471 m_container->canvas (m_handle)->clearEventMask (Canvas::KeyRelease); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
472 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
473 m_container->canvas (m_handle)->addEventMask (Canvas::KeyRelease); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
474 break; |
27224
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
475 // Signal the change to uipanels as well |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
476 for (auto *qobj : qWidget<QWidget> ()->findChildren<QObject *> ()) |
27224
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
477 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
478 if (qobj->objectName () == "UIPanel") |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
479 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
480 Object *obj = Object::fromQObject (qobj); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
481 |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
482 if (obj) |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
483 { |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
484 if (fp.get_keypressfcn ().isempty ()) |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
485 obj->innerContainer ()->canvas (m_handle)-> |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
486 clearEventMask (Canvas::KeyRelease); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
487 else |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
488 obj->innerContainer ()->canvas (m_handle)-> |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
489 addEventMask (Canvas::KeyRelease); |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
490 } |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
491 } |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
492 } |
9b8903d3e626
Allow figure "keypressfcn" to work with uipanel on the way (bug #56598)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27107
diff
changeset
|
493 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
494 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
495 case figure::properties::ID_WINDOWSTYLE: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
496 if (fp.windowstyle_is ("modal")) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
497 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
498 bool is_visible = win->isVisible (); |
21996
d6370831d37f
Set Qt Figure window modal/normal state based on WindowStyle (Bug #48160)
John Donoghue <john.donoghue@ieee.org>
parents:
21916
diff
changeset
|
499 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
500 // if window is already visible, need to hide and reshow it in order to |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
501 // make it use the modal settings |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
502 if (is_visible) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
503 win->setVisible (false); |
21996
d6370831d37f
Set Qt Figure window modal/normal state based on WindowStyle (Bug #48160)
John Donoghue <john.donoghue@ieee.org>
parents:
21916
diff
changeset
|
504 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
505 win->setWindowModality (Qt::ApplicationModal); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
506 win->setVisible (is_visible); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
507 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
508 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
509 win->setWindowModality (Qt::NonModal); |
21996
d6370831d37f
Set Qt Figure window modal/normal state based on WindowStyle (Bug #48160)
John Donoghue <john.donoghue@ieee.org>
parents:
21916
diff
changeset
|
510 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
511 break; |
21996
d6370831d37f
Set Qt Figure window modal/normal state based on WindowStyle (Bug #48160)
John Donoghue <john.donoghue@ieee.org>
parents:
21916
diff
changeset
|
512 |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
513 case figure::properties::ID_POINTERSHAPECDATA: |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
514 m_pointer_cdata = |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
515 pointer_to_qimage (fp.get_pointershapecdata ().matrix_value ()); |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
516 if (fp.get_pointer () != "custom") |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
517 break; |
27107
6bc32e6a1b4f
Restore hability to compile with Qt < 5.6 (bug #56376)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27099
diff
changeset
|
518 OCTAVE_FALLTHROUGH; |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
519 |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
520 case figure::properties::ID_POINTER: |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
521 case figure::properties::ID_POINTERSHAPEHOTSPOT: |
25852
f6537847b043
ginput.m: temporarily disable mouse tools in Qt toolkit (bug #51452)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25799
diff
changeset
|
522 case figure::properties::ID___MOUSE_MODE__: |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
523 case figure::properties::ID___ZOOM_MODE__: |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
524 m_container->canvas (m_handle)->setCursor (mouseMode (), |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
525 fp.get_pointer (), |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
526 m_pointer_cdata, |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
527 fp.get_pointershapehotspot () |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26902
diff
changeset
|
528 .matrix_value()); |
25852
f6537847b043
ginput.m: temporarily disable mouse tools in Qt toolkit (bug #51452)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25799
diff
changeset
|
529 break; |
21996
d6370831d37f
Set Qt Figure window modal/normal state based on WindowStyle (Bug #48160)
John Donoghue <john.donoghue@ieee.org>
parents:
21916
diff
changeset
|
530 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
531 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
532 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
533 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
534 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
535 m_blockUpdates = false; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
536 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
537 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
538 void |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
539 Figure::showFigureStatusBar (bool visible) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
540 { |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
541 if (m_statusBar |
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
542 && (! m_statusBar->isHidden ()) != visible) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
543 { |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
544 int dy = m_statusBar->sizeHint ().height (); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
545 QRect r = qWidget<QWidget> ()->geometry (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
546 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
547 if (! visible) |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
548 r.adjust (0, 0, 0, -dy); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
549 else |
26902
cb5c1ea2062c
Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26884
diff
changeset
|
550 r.adjust (0, 0, 0, dy); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
551 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
552 m_blockUpdates = true; |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
553 set_geometry (r); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
554 m_statusBar->setVisible (visible); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
555 m_blockUpdates = false; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
556 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
557 updateBoundingBox (false); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
558 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
559 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
560 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
561 void |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
562 Figure::updateFigureHeight (int dh) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
563 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
564 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
565 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
566 octave::autolock guard (gh_mgr.graphics_lock ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
567 graphics_object go = object (); |
20270
062422f2e399
Show axes coordinates in Qt figures (bug #44959)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20242
diff
changeset
|
568 |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
569 if (go.valid_object () && dh != 0) |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
570 { |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
571 QRect r = qWidget<QWidget> ()->geometry (); |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
572 |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
573 r.adjust (0, dh, 0, 0); |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
574 |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
575 m_blockUpdates = true; |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
576 set_geometry (r); |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
577 m_blockUpdates = false; |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
578 |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
579 updateBoundingBox (false); |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
580 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
581 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
582 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
583 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
584 Figure::updateStatusBar (ColumnVector pt) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
585 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
586 if (! m_statusBar->isHidden ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
587 m_statusBar->showMessage (QString ("(%1, %2)") |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
588 .arg (pt(0), 0, 'g', 5) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
589 .arg (pt(1), 0, 'g', 5)); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
590 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
591 |
27376
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
592 void |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
593 Figure::do_connections (const QObject *receiver, const QObject * /* emitter */) |
27376
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
594 { |
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
595 Object::do_connections (receiver); |
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
596 Object::do_connections (receiver, m_container->canvas (m_handle)); |
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
597 } |
1952e110d346
Allow Qt graphics callbacks to work again (bug #56857)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27335
diff
changeset
|
598 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
599 QWidget * |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
600 Figure::menu (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
601 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
602 return qWidget<QMainWindow> ()->menuBar (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
603 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
604 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
605 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
606 Figure::updateBoundingBox (bool internal, int flags) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
607 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
608 QWidget *win = qWidget<QWidget> (); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
609 Matrix bb (1, 4); |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
610 std::string prop; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
611 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
612 if (internal) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
613 { |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
614 prop = "position"; |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
615 QRect r = m_innerRect; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
616 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
617 if (flags & UpdateBoundingBoxPosition) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
618 r.moveTopLeft (win->mapToGlobal (m_container->pos ())); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
619 if (flags & UpdateBoundingBoxSize) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
620 r.setSize (m_container->size ()); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
621 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
622 if (r.isValid () && r != m_innerRect) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
623 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
624 m_innerRect = r; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
625 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
626 bb(0) = r.x (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
627 bb(1) = r.y (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
628 bb(2) = r.width (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
629 bb(3) = r.height (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
630 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
631 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
632 return; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
633 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
634 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
635 { |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
636 prop = "outerposition"; |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
637 QRect r = m_outerRect; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
638 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
639 if (flags & UpdateBoundingBoxPosition) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
640 r.moveTopLeft (win->pos ()); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
641 if (flags & UpdateBoundingBoxSize) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
642 r.setSize (win->frameGeometry ().size ()); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
643 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
644 if (r.isValid () && r != m_outerRect) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
645 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
646 m_outerRect = r; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
647 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
648 bb(0) = r.x (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
649 bb(1) = r.y (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
650 bb(2) = r.width (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
651 bb(3) = r.height (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
652 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
653 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
654 return; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
655 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
656 |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
657 figure::properties& fp = properties<figure> (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
658 |
27319
6b2d20317b26
use Qt signals to manage calls to gh_manager functions in Qt graphics toolkit
John W. Eaton <jwe@octave.org>
parents:
27303
diff
changeset
|
659 emit gh_set_event (m_handle, prop, fp.bbox2position (bb), false, |
6b2d20317b26
use Qt signals to manage calls to gh_manager functions in Qt graphics toolkit
John W. Eaton <jwe@octave.org>
parents:
27303
diff
changeset
|
660 prop == "position"); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
661 } |
20594
46edfbd31ad7
Fix execution of "windowbuttonmotionfcn" with uipanels (bug #46151)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20537
diff
changeset
|
662 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
663 bool |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
664 Figure::eventNotifyBefore (QObject *obj, QEvent *xevent) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
665 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
666 if (! m_blockUpdates) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
667 { |
24465
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
668 // Clicking the toolbar or the menubar makes this figure current |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
669 if (xevent->type () == QEvent::MouseButtonPress) |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
670 { |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
671 figure::properties& fp = properties<figure> (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
672 |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
673 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
674 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
675 graphics_object root = gh_mgr.get_object (0); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
676 |
24465
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
677 if (fp.get_handlevisibility () == "on") |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
678 root.set ("currentfigure", |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
679 fp.get___myhandle__ ().as_octave_value ()); |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
680 } |
1b4c4d6ead56
Make mouse clicks update currentfigure (bug #52698).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24446
diff
changeset
|
681 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
682 if (obj == m_container) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
683 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
684 // Do nothing... |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
685 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
686 else if (obj == m_menuBar) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
687 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
688 switch (xevent->type ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
689 { |
25878
bb4af245dff7
Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25852
diff
changeset
|
690 case QEvent::ActionAdded: |
22744
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
691 case QEvent::ActionChanged: |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
692 case QEvent::ActionRemoved: |
25878
bb4af245dff7
Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25852
diff
changeset
|
693 m_previousHeight = m_menuBar->sizeHint ().height (); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
694 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
695 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
696 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
697 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
698 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
699 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
700 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
701 switch (xevent->type ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
702 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
703 case QEvent::Close: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
704 xevent->ignore (); |
27319
6b2d20317b26
use Qt signals to manage calls to gh_manager functions in Qt graphics toolkit
John W. Eaton <jwe@octave.org>
parents:
27303
diff
changeset
|
705 emit gh_callback_event (m_handle, "closerequestfcn"); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
706 return true; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
707 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
708 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
709 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
710 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
711 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
712 } |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
713 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
714 return false; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
715 } |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
716 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
717 void |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
718 Figure::eventNotifyAfter (QObject *watched, QEvent *xevent) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
719 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
720 if (! m_blockUpdates) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
721 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
722 if (watched == m_container) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
723 { |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
724 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
725 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
726 switch (xevent->type ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
727 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
728 case QEvent::Resize: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
729 updateBoundingBox (true, UpdateBoundingBoxSize); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
730 break; |
19967
3cc0734283dc
style fixes in Qt graphics code
John W. Eaton <jwe@octave.org>
parents:
19955
diff
changeset
|
731 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
732 case QEvent::ChildAdded: |
23447
db1fdf4384dd
maint: Use convention "static_cast<void *>" for casting of pointers.
Rik <rik@octave.org>
parents:
23224
diff
changeset
|
733 if (dynamic_cast<QChildEvent *> (xevent)->child |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
734 ()->isWidgetType()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
735 { |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
736 octave::autolock guard (gh_mgr.graphics_lock ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
737 update (figure::properties::ID_TOOLBAR); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
738 |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
739 enableMouseTracking (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
740 } |
23800
2fdc65c031b5
Add break or continue statements to prevent implicit fall-through in case statements.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
741 break; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
742 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
743 case QEvent::ChildRemoved: |
23447
db1fdf4384dd
maint: Use convention "static_cast<void *>" for casting of pointers.
Rik <rik@octave.org>
parents:
23224
diff
changeset
|
744 if (dynamic_cast<QChildEvent *> (xevent)->child |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
745 ()->isWidgetType()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
746 { |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
747 octave::autolock guard (gh_mgr.graphics_lock ()); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
748 update (figure::properties::ID_TOOLBAR); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
749 } |
23800
2fdc65c031b5
Add break or continue statements to prevent implicit fall-through in case statements.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
750 break; |
21916
3a0c90b59584
Make qt figure window "Help" menu correspond to main window (bug #48223)
Mike Miller <mtmiller@octave.org>
parents:
21824
diff
changeset
|
751 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
752 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
753 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
754 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
755 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
756 else if (watched == m_menuBar) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
757 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
758 switch (xevent->type ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
759 { |
25878
bb4af245dff7
Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25852
diff
changeset
|
760 case QEvent::ActionAdded: |
22744
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
761 case QEvent::ActionChanged: |
25878
bb4af245dff7
Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25852
diff
changeset
|
762 case QEvent::ActionRemoved: |
23224
73f7ef7169ac
Make uimenu "Position" property Matlab-compatible (bug #50369).
Rik <rik@octave.org>
parents:
23223
diff
changeset
|
763 // The menubar may have been resized if no action is visible |
22744
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
764 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
765 QAction *a = dynamic_cast<QActionEvent *> (xevent)->action (); |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
766 int currentHeight = m_menuBar->sizeHint ().height (); |
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
767 if (currentHeight != m_previousHeight |
22744
2df51376f587
Correctly handle visibility of custom menu items (bug #49529)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22721
diff
changeset
|
768 && ! a->isSeparator ()) |
25888
6109f302cf43
Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25886
diff
changeset
|
769 updateFigureHeight (m_previousHeight - currentHeight); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
770 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
771 break; |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
772 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
773 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
774 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
775 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
776 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
777 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
778 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
779 switch (xevent->type ()) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
780 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
781 case QEvent::Move: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
782 updateBoundingBox (false, UpdateBoundingBoxPosition); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
783 updateBoundingBox (true, UpdateBoundingBoxPosition); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
784 break; |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19625
diff
changeset
|
785 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
786 case QEvent::Resize: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
787 updateBoundingBox (false, UpdateBoundingBoxSize); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
788 break; |
19685
7335cc071ab0
make save and saveas menu items work in Qt figure window
John W. Eaton <jwe@octave.org>
parents:
19681
diff
changeset
|
789 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
790 default: |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
791 break; |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
792 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
793 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
794 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
795 } |
19685
7335cc071ab0
make save and saveas menu items work in Qt figure window
John W. Eaton <jwe@octave.org>
parents:
19681
diff
changeset
|
796 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
797 void |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
798 Figure::addCustomToolBar (QToolBar *bar, bool visible, bool isdefault) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
799 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
800 QMainWindow *win = qWidget<QMainWindow> (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
801 |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
802 if (isdefault) |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
803 m_figureToolBar = bar; |
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26821
diff
changeset
|
804 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
805 if (! visible) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
806 win->addToolBar (bar); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
807 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
808 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
809 QSize sz = bar->sizeHint (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
810 QRect r = win->geometry (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
811 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
812 r.adjust (0, -sz.height (), 0, 0); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
813 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
814 m_blockUpdates = true; |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
815 set_geometry (r); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
816 win->addToolBarBreak (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
817 win->addToolBar (bar); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
818 m_blockUpdates = false; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
819 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
820 updateBoundingBox (false); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
821 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
822 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
823 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
824 void |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
825 Figure::showCustomToolBar (QToolBar *bar, bool visible) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
826 { |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
827 QMainWindow *win = qWidget<QMainWindow> (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
828 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
829 if ((! bar->isHidden ()) != visible) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
830 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
831 QSize sz = bar->sizeHint (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
832 QRect r = win->geometry (); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
833 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
834 if (visible) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
835 r.adjust (0, -sz.height (), 0, 0); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
836 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
837 r.adjust (0, sz.height (), 0, 0); |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
838 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
839 m_blockUpdates = true; |
25929
ea5182364e5f
Implement "resize" property for Qt figures (bug #54774)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25889
diff
changeset
|
840 set_geometry (r); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
841 bar->setVisible (visible); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
842 m_blockUpdates = false; |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
843 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
844 updateBoundingBox (false); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
845 } |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
846 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
847 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
848 void |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
849 Figure::updateContainer (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
850 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
851 redraw (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
852 } |
18498
2e7cad6f180c
Initial integration of QtHandles.
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
853 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
854 void |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
855 Figure::figureWindowShown () |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
856 { |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
857 #if defined (HAVE_QSCREEN_DEVICEPIXELRATIO) |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
858 QWindow *window = qWidget<QMainWindow> ()->windowHandle (); |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
859 QScreen *screen = window->screen (); |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
860 |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
861 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
862 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
863 octave::autolock guard (gh_mgr.graphics_lock ()); |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
864 |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
865 figure::properties& fp = properties<figure> (); |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
866 fp.set___device_pixel_ratio__ (screen->devicePixelRatio ()); |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
867 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
868 connect (window, &QWindow::screenChanged, this, &Figure::screenChanged); |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
869 #endif |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
870 } |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
871 |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
872 void |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
873 Figure::screenChanged (QScreen *screen) |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
874 { |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
875 #if defined (HAVE_QSCREEN_DEVICEPIXELRATIO) |
27647
2a506bc4a7af
eliminate global access to Octave interpreter in qt graphics classes
John W. Eaton <jwe@octave.org>
parents:
27645
diff
changeset
|
876 gh_manager& gh_mgr = m_interpreter.get_gh_manager (); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
877 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27319
diff
changeset
|
878 octave::autolock guard (gh_mgr.graphics_lock ()); |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
879 |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
880 figure::properties& fp = properties<figure> (); |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
881 double old_dpr = fp.get___device_pixel_ratio__ (); |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
882 double new_dpr = screen->devicePixelRatio (); |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
883 if (old_dpr != new_dpr) |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
884 { |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
885 fp.set___device_pixel_ratio__ (new_dpr); |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
886 |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
887 // For some obscure reason, changing the __device_pixel_ratio__ property |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
888 // from the GUI thread does not necessarily trigger a redraw. Force it. |
25889
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
889 redraw (); |
2da65009cc7f
Fix graphics object selection on high resolution screens (bug #49053)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25888
diff
changeset
|
890 } |
26882
7a6366dbe77e
avoid unused parameter warning
John W. Eaton <jwe@octave.org>
parents:
26520
diff
changeset
|
891 #else |
7a6366dbe77e
avoid unused parameter warning
John W. Eaton <jwe@octave.org>
parents:
26520
diff
changeset
|
892 octave_unused_parameter (screen); |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
893 #endif |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
894 } |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
895 |
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25878
diff
changeset
|
896 void |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
897 Figure::enableMouseTracking (void) |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
898 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
899 // Enable mouse tracking on every widgets |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
900 m_container->setMouseTracking (true); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
901 m_container->canvas (m_handle)->qWidget ()->setMouseTracking (true); |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29992
diff
changeset
|
902 for (auto *w : m_container->findChildren<QWidget *> ()) |
23223
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
903 w->setMouseTracking (true); |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22370
diff
changeset
|
904 } |
20594
46edfbd31ad7
Fix execution of "windowbuttonmotionfcn" with uipanels (bug #46151)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20537
diff
changeset
|
905 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
906 OCTAVE_END_NAMESPACE(octave) |