Mercurial > octave
annotate libgui/src/workspace-view.h @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | aa46787ed8b7 |
children | ad014fc78bd6 c6d54dd31a7e |
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:
29774
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 //////////////////////////////////////////////////////////////////////// |
13501 | 25 |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20641
diff
changeset
|
26 #if ! defined (octave_workspace_view_h) |
17822
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17790
diff
changeset
|
27 #define octave_workspace_view_h 1 |
13501 | 28 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
29 #include <QCheckBox> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
30 #include <QComboBox> |
16502
45ae1038ee89
allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents:
16478
diff
changeset
|
31 #include <QItemDelegate> |
13501 | 32 #include <QSemaphore> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
33 #include <QSignalMapper> |
19538
e4b25475ef3d
provide a filter for the workspace view (bug #41222)
Torsten <ttl@justmail.de>
parents:
19433
diff
changeset
|
34 #include <QSortFilterProxyModel> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
35 #include <QTableView> |
24645
f61502510d08
restore ability to select variables for editing from workspace widget
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
36 |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
37 #include "octave-dock-widget.h" |
14726
e94a54ee0f46
Added debug events, debug mode detection and fixed compiling error.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14720
diff
changeset
|
38 #include "workspace-model.h" |
13501 | 39 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
40 namespace octave |
13501 | 41 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
42 class base_qobject; |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
43 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
44 class workspace_view : public octave_dock_widget |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
45 { |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
46 Q_OBJECT |
16459
cbc39a3d0c42
improve encapsulation of workspace window object
John W. Eaton <jwe@octave.org>
parents:
16445
diff
changeset
|
47 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
48 public: |
16459
cbc39a3d0c42
improve encapsulation of workspace window object
John W. Eaton <jwe@octave.org>
parents:
16445
diff
changeset
|
49 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
50 workspace_view (QWidget *parent, base_qobject& oct_qobj); |
16459
cbc39a3d0c42
improve encapsulation of workspace window object
John W. Eaton <jwe@octave.org>
parents:
16445
diff
changeset
|
51 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
52 ~workspace_view (void) = default; |
16445
3f8d3fc907af
store workspace model in main_window, not in workspace view
John W. Eaton <jwe@octave.org>
parents:
15552
diff
changeset
|
53 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
54 signals: |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
55 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
56 //! Signal that user had requested a command on a variable. |
24109
1d6c940a1b37
doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
24014
diff
changeset
|
57 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
58 void command_requested (const QString& cmd); |
13683
25dc40d24a44
Renamed VariablesDockWidget to WorkspaceView and optimized memory footprint for 30%.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13678
diff
changeset
|
59 |
29774
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
60 //! Signal that user wnats to copy a variable value to the |
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
61 //! clipboard. |
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
62 |
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
63 void copy_variable_value_to_clipboard (const QString&); |
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
64 |
27220
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
65 //! Signal that user wants to rename a variable. |
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
66 |
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
67 void rename_variable_signal (const QString&, const QString&); |
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
68 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
69 //! Signal that user wants to edit a variable. |
24109
1d6c940a1b37
doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
24014
diff
changeset
|
70 |
29774
aa46787ed8b7
eliminate direct dependence on octave intepreter from workspace_view
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
71 void edit_variable_signal (const QString&); |
23927
e3a36f84d01d
provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents:
23457
diff
changeset
|
72 |
27590
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
73 public slots: |
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
74 |
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
75 void setModel (workspace_model *model); |
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
76 |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27610
diff
changeset
|
77 void notice_settings (const gui_settings *); |
27590
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
78 |
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
79 void save_settings (void); |
f6b729077ebd
use consistent order for signal/slot/other decls in libgui/src files
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
80 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
81 protected slots: |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
82 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
83 void filter_update (const QString& expression); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
84 void filter_activate (bool enable); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
85 void update_filter_history (void); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23927
diff
changeset
|
86 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
87 void header_contextmenu_requested (const QPoint& mpos); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23927
diff
changeset
|
88 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
89 void toggle_header (int column); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23927
diff
changeset
|
90 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
91 void contextmenu_requested (const QPoint& pos); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
92 |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
93 void handle_contextmenu_copy (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
94 void handle_contextmenu_copy_value (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
95 void handle_contextmenu_rename (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
96 void handle_contextmenu_edit (void); |
24775
3da6c628873a
clear variable via context menu of workspace view (bug #53149)
Torsten <mttl@mailbox.org>
parents:
24766
diff
changeset
|
97 void handle_contextmenu_clear (void); |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
98 void handle_contextmenu_disp (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
99 void handle_contextmenu_plot (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
100 void handle_contextmenu_stem (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
101 void handle_contextmenu_filter (void); |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
102 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
103 public slots: |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
104 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
105 void handle_model_changed (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
106 |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
107 void copyClipboard (void); |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
108 void selectAll (void); |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
109 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
110 private: |
16572
17941fedd4ce
Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16521
diff
changeset
|
111 |
24775
3da6c628873a
clear variable via context menu of workspace view (bug #53149)
Torsten <mttl@mailbox.org>
parents:
24766
diff
changeset
|
112 void relay_contextmenu_command (const QString& cmdname, bool str = false); |
29340
0e97c97044ee
improve handling focus of filter widgets in history and workspace view
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27923
diff
changeset
|
113 void set_filter_focus (bool focus); |
19538
e4b25475ef3d
provide a filter for the workspace view (bug #41222)
Torsten <ttl@justmail.de>
parents:
19433
diff
changeset
|
114 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
115 QString get_var_name (const QModelIndex& index); |
14761
8c4d5029d933
Collapsing/Expanding items now works with a workaround.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14726
diff
changeset
|
116 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
117 QTableView *m_view; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
118 int m_view_previous_row_count; |
24648
1f1ac73910ab
respect sorting in variable editor (bug #51843)
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
119 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
120 // We are using a sort model proxy so m_model won't provide the |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
121 // correct ordering. It is still OK to use this pointer to access |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
122 // other info attached to the model, for example the scope or colors. |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
123 workspace_model *m_model; |
19538
e4b25475ef3d
provide a filter for the workspace view (bug #41222)
Torsten <ttl@justmail.de>
parents:
19433
diff
changeset
|
124 |
24766
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
125 QSortFilterProxyModel m_filter_model; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
126 QCheckBox *m_filter_checkbox; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
127 QComboBox *m_filter; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
128 QWidget *m_filter_widget; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
129 bool m_filter_shown; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
130 }; |
08c92c9d48e3
move workspace view and model classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24648
diff
changeset
|
131 } |
13501 | 132 |
16463
8e2a853cdd7d
derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents:
16462
diff
changeset
|
133 #endif |