Mercurial > octave
annotate libgui/src/main-window.cc @ 29834:87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
* main-window.h, main-window.cc (main_window::get_screen_geometry):
Pass height and width by reference. Change all uses.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 26 Jun 2021 07:05:12 -0400 |
parents | fc8571a37d21 |
children | a946d742fb97 |
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 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29147
diff
changeset
|
3 // Copyright (C) 2011-2021 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 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
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" |
15286
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15274
diff
changeset
|
28 #endif |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15274
diff
changeset
|
29 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
30 #include <utility> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
31 |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
32 #include <QAction> |
15257
7ee62f559a73
Fix compilation under Windows with GUI and LLVM enabled.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15204
diff
changeset
|
33 #include <QApplication> |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27631
diff
changeset
|
34 #include <QClipboard> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
35 #include <QDateTime> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
36 #include <QDebug> |
13501 | 37 #include <QDesktopServices> |
16391
a695ee2dc17e
* main-window.cc: Include <QDesktopWidget>
John W. Eaton <jwe@octave.org>
parents:
16386
diff
changeset
|
38 #include <QDesktopWidget> |
13501 | 39 #include <QFileDialog> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
40 #include <QIcon> |
23385
41639665aa34
improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents:
23380
diff
changeset
|
41 #include <QInputDialog> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
42 #include <QKeySequence> |
15257
7ee62f559a73
Fix compilation under Windows with GUI and LLVM enabled.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15204
diff
changeset
|
43 #include <QLabel> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
44 #include <QMenu> |
13501 | 45 #include <QMenuBar> |
13626
cc90c62ada21
Removed terminal, instead now using QPlainTextEdit, which looks much nicer and is not that error-prone...
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13620
diff
changeset
|
46 #include <QMessageBox> |
14670
7fbea449737d
Restructured menus, added toolbar and current directory line edit.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14669
diff
changeset
|
47 #include <QStyle> |
25956
2201f82db233
Add missing QStyleFactory header (Bug #54881)
John Donoghue
parents:
25944
diff
changeset
|
48 #include <QStyleFactory> |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
49 #include <QTextBrowser> |
17764
811b5a562680
Format release notes as preformatted text in the GUI (bug #40367)
Mike Miller <mtmiller@ieee.org>
parents:
17744
diff
changeset
|
50 #include <QTextStream> |
17939
16cf38c39915
display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents:
17936
diff
changeset
|
51 #include <QThread> |
21439
912b8828193b
* main-window.cc: include QTimer header file
Mike Miller <mtmiller@octave.org>
parents:
21428
diff
changeset
|
52 #include <QTimer> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
53 #include <QToolBar> |
16502
45ae1038ee89
allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents:
16499
diff
changeset
|
54 |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
55 // QTerminal includes |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
56 #include "QTerminal.h" |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
57 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
58 #if defined (HAVE_QSCINTILLA) |
21203
710e700cdd7f
maint: Clean up naming and indentation of #ifdef blocks in libgui
Rik <rik@octave.org>
parents:
21158
diff
changeset
|
59 # include "file-editor.h" |
16290
d07aeecb2d22
build: Add more #ifdefs to build GUI when Qscintilla is not present.
Rik <rik@octave.org>
parents:
16176
diff
changeset
|
60 #endif |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29782
diff
changeset
|
61 #include "command-widget.h" |
27664
bd7decacf32e
avoid unnecessary includes of gui-preference header files
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27653
diff
changeset
|
62 #include "gui-preferences-cs.h" |
27665
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
63 #include "gui-preferences-dw.h" |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27556
diff
changeset
|
64 #include "gui-preferences-ed.h" |
27671
61883a1a80a1
don't include gui-preferences-global.h in gui-preferences.h
John W. Eaton <jwe@octave.org>
parents:
27669
diff
changeset
|
65 #include "gui-preferences-global.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
66 #include "gui-preferences-mw.h" |
27613
deb8877f2c34
use symbolic constants for preferences key and default values in news reader
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27611
diff
changeset
|
67 #include "gui-preferences-nr.h" |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
68 #include "gui-preferences-sc.h" |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
69 #include "gui-settings.h" |
27196
d993642352d0
rename octave_interpreter object in GUI
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
70 #include "interpreter-qobject.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
71 #include "main-window.h" |
27193
01e73e1664ff
move news reader widget to separate file
John W. Eaton <jwe@octave.org>
parents:
27118
diff
changeset
|
72 #include "news-reader.h" |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27196
diff
changeset
|
73 #include "octave-qobject.h" |
29560
5b7e721844df
provide QOverload template if it is not in <QtGlobal> (bug #60416)
John W. Eaton <jwe@octave.org>
parents:
29550
diff
changeset
|
74 #include "octave-qtutils.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
75 #include "settings-dialog.h" |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
18575
diff
changeset
|
76 #include "shortcut-manager.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
77 #include "welcome-wizard.h" |
13501 | 78 |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16460
diff
changeset
|
79 #include "cmd-edit.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
80 #include "oct-env.h" |
17939
16cf38c39915
display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents:
17936
diff
changeset
|
81 #include "url-transfer.h" |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16460
diff
changeset
|
82 |
19893
67cb2f421255
restore include statement removed in changeset c7c50030e76c
John W. Eaton <jwe@octave.org>
parents:
19882
diff
changeset
|
83 #include "builtin-defun-decls.h" |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
84 #include "defaults.h" |
23773
5ff24576b783
defer installing qt graphics toolkit until interpreter is ready
John W. Eaton <jwe@octave.org>
parents:
23721
diff
changeset
|
85 #include "interpreter.h" |
27396
930c0fbc003b
move qt_interpreter_events::file_in_path to load_path::contains_file_in_dir
John W. Eaton <jwe@octave.org>
parents:
27393
diff
changeset
|
86 #include "load-path.h" |
29820
fc8571a37d21
main-window.cc: eliminate unneeded header files
John W. Eaton <jwe@octave.org>
parents:
29796
diff
changeset
|
87 #include "utils.h" |
26117
a6df420457ac
use symbol_info_list instead of symbol_scope to pass workspace info to gui
John W. Eaton <jwe@octave.org>
parents:
26115
diff
changeset
|
88 #include "syminfo.h" |
15404
f52a62a6db3a
eliminate copy and paste copyright info in GUI about info box
John W. Eaton <jwe@octave.org>
parents:
15402
diff
changeset
|
89 #include "version.h" |
23380
c319e6d737f2
Backed out changeset 7332287221a9
Torsten <mttl@mailbox.org>
parents:
23379
diff
changeset
|
90 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
91 namespace octave |
23119
3107d3717cc2
refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents:
23092
diff
changeset
|
92 { |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
93 main_window::main_window (base_qobject& oct_qobj) |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27613
diff
changeset
|
94 : QMainWindow (), m_octave_qobj (oct_qobj), |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
95 m_status_bar (nullptr), |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
96 m_command_window (nullptr), |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
97 m_history_window (nullptr), |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
98 m_file_browser_window (nullptr), |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
99 m_editor_window (nullptr), |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
100 m_workspace_window (nullptr), |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
101 m_external_editor (new external_editor_interface (this, m_octave_qobj)), |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
102 m_active_editor (m_external_editor), m_settings_dlg (nullptr), |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
103 m_find_files_dlg (nullptr), m_set_path_dlg (nullptr), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
104 m_release_notes_window (nullptr), m_community_news_window (nullptr), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
105 m_clipboard (QApplication::clipboard ()), |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
106 m_prevent_readline_conflicts (true), |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
107 m_prevent_readline_conflicts_menu (false), |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
108 m_suppress_dbg_location (true), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
109 m_closing (false), m_file_encoding (QString ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
110 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
111 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
112 |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
113 if (rmgr.is_first_run ()) |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
114 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
115 // Before wizard. |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
116 m_octave_qobj.config_translators (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
117 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
118 welcome_wizard welcomeWizard (m_octave_qobj); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
119 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
120 if (welcomeWizard.exec () == QDialog::Rejected) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
121 exit (1); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
122 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
123 // Install settings file. |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
124 rmgr.reload_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
125 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
126 else |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
127 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
128 // Get settings file. |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
129 rmgr.reload_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
130 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
131 // After settings. |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
132 m_octave_qobj.config_translators (); |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
133 } |
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
134 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
135 rmgr.update_network_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
136 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
137 // We provide specific terminal capabilities, so ensure that |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
138 // TERM is always set appropriately. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
139 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
140 #if defined (OCTAVE_USE_WINDOWS_API) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
141 sys::env::putenv ("TERM", "cygwin"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
142 #else |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
143 sys::env::putenv ("TERM", "xterm"); |
25046
a4c687fec320
gui: set Qt Application and Desktop metadata for desktop integration (bug #53102)
Mike Miller <mtmiller@octave.org>
parents:
25042
diff
changeset
|
144 #endif |
a4c687fec320
gui: set Qt Application and Desktop metadata for desktop integration (bug #53102)
Mike Miller <mtmiller@octave.org>
parents:
25042
diff
changeset
|
145 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
146 // FIXME: can we do this job when creating the shortcut manager? |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
147 // A quick look shows that it may require some coordination with the |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
148 // resource manager. Startup is complicated, but maybe we can make |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
149 // it simpler? |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
150 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager (); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
151 scmgr.init_data (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
152 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
153 construct_central_widget (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
154 |
29133
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
155 m_status_bar = new QStatusBar (this); |
29061
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
156 m_profiler_status_indicator = new led_indicator (); |
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
157 QLabel *text = new QLabel (tr ("Profiler")); |
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
158 m_status_bar->addPermanentWidget (text); |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
159 m_status_bar->addPermanentWidget (m_profiler_status_indicator); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
160 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
161 adopt_dock_widgets (); |
29612
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
162 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
163 #if defined (HAVE_QGUIAPPLICATION_SETDESKTOPFILENAME) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
164 QGuiApplication::setDesktopFileName ("org.octave.Octave.desktop"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
165 #endif |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
166 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
167 QApplication *qapp = m_octave_qobj.qapplication (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
168 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
169 m_default_style = qapp->style ()->objectName (); |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
170 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
171 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
172 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
173 bool connect_to_web = true; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
174 QDateTime last_checked; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
175 int serial = 0; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
176 m_active_dock = nullptr; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
177 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
178 if (settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
179 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
180 connect_to_web |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
181 = settings->value (nr_allow_connection).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
182 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
183 last_checked |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
184 = settings->value (nr_last_time).toDateTime (); |
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
185 |
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
186 serial = settings->value (nr_last_news).toInt (); |
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
187 m_default_encoding = settings->value (ed_default_enc).toString (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
188 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
189 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
190 QDateTime current = QDateTime::currentDateTime (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
191 QDateTime one_day_ago = current.addDays (-1); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
192 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
193 if (connect_to_web |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
194 && (! last_checked.isValid () || one_day_ago > last_checked)) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
195 load_and_display_community_news (serial); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
196 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
197 construct_octave_qt_link (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
198 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
199 // We have to set up all our windows, before we finally launch |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
200 // octave. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
201 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
202 construct (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
203 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
204 read_settings (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
205 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
206 init_terminal_size (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
207 |
29199
0b18887bc997
simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29148
diff
changeset
|
208 emit init_window_menu (); |
0b18887bc997
simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29148
diff
changeset
|
209 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
210 focus_command_window (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
211 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
212 |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
213 main_window::~main_window (void) |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
214 { |
29749
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
215 // These must be explicitly deleted because they are not |
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
216 // intentionally not children of main_window. See the comments in |
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
217 // the functions where they are constructed. |
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
218 |
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
219 delete m_release_notes_window; |
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
220 delete m_community_news_window; |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
221 } |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
222 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
223 void main_window::adopt_dock_widgets (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
224 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
225 adopt_terminal_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
226 adopt_documentation_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
227 adopt_file_browser_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
228 adopt_history_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
229 adopt_workspace_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
230 adopt_editor_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
231 adopt_variable_editor_widget (); |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
232 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
233 m_previous_dock = m_command_window; |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
234 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
235 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
236 void main_window::adopt_terminal_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
237 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
238 m_command_window = m_octave_qobj.terminal_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
239 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
240 make_dock_widget_connections (m_command_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
241 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
242 connect (this, &main_window::settings_changed, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
243 m_command_window, &terminal_dock_widget::notice_settings); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
244 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
245 if (! m_octave_qobj.experimental_terminal_widget ()) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
246 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
247 QTerminal *cmd_widget = m_command_window->get_qterminal (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
248 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
249 // The following connections were previously made in |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
250 // QTerminal::construct, QWinTerminalImpl::QWinTerminalImpl, and |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
251 // QUnixTerminalImpl::QUnixTerminalImpl. Similar actions should |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
252 // probably be possible for the new command widget. |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
253 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
254 connect (cmd_widget, &QTerminal::report_status_message, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
255 this, &main_window::report_status_message); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
256 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
257 connect (cmd_widget, &QTerminal::edit_mfile_request, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
258 this, &main_window::edit_mfile); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
259 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
260 connect (cmd_widget, &QTerminal::execute_command_in_terminal_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
261 this, &main_window::execute_command_in_terminal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
262 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
263 connect (this, &main_window::init_terminal_size_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
264 cmd_widget, &QTerminal::init_terminal_size); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
265 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
266 connect (this, &main_window::copyClipboard_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
267 cmd_widget, &QTerminal::copyClipboard); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
268 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
269 connect (this, &main_window::pasteClipboard_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
270 cmd_widget, &QTerminal::pasteClipboard); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
271 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
272 connect (this, &main_window::selectAll_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
273 cmd_widget, &QTerminal::selectAll); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
274 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
275 connect (cmd_widget, &QTerminal::request_edit_mfile_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
276 this, &main_window::edit_mfile); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
277 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
278 connect (cmd_widget, &QTerminal::request_open_file_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
279 this, QOverload<const QString&, const QString&, int>::of (&main_window::open_file_signal)); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
280 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
281 connect (cmd_widget, &QTerminal::set_screen_size_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
282 this, &main_window::set_screen_size); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
283 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
284 connect (cmd_widget, &QTerminal::clear_command_window_request, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
285 this, &main_window::handle_clear_command_window_request); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
286 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
287 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
288 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
289 void main_window::adopt_documentation_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
290 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
291 m_doc_browser_window = m_octave_qobj.documentation_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
292 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
293 make_dock_widget_connections (m_doc_browser_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
294 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
295 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
296 void main_window::adopt_file_browser_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
297 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
298 m_file_browser_window = m_octave_qobj.file_browser_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
299 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
300 make_dock_widget_connections (m_file_browser_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
301 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
302 connect (m_file_browser_window, &files_dock_widget::open_file, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
303 this, QOverload<const QString&>::of (&main_window::open_file_signal)); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
304 connect (m_file_browser_window, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
305 &files_dock_widget::displayed_directory_changed, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
306 this, &main_window::set_current_working_directory); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
307 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
308 connect (m_file_browser_window, &files_dock_widget::modify_path_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
309 this, &main_window::modify_path); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
310 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
311 connect (m_file_browser_window, &files_dock_widget::run_file_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
312 this, &main_window::run_file_in_terminal); |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
313 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
314 connect (m_file_browser_window, &files_dock_widget::load_file_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
315 this, &main_window::handle_load_workspace_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
316 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
317 connect (m_file_browser_window, &files_dock_widget::open_any_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
318 this, &main_window::handle_open_any_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
319 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
320 connect (m_file_browser_window, &files_dock_widget::find_files_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
321 this, &main_window::find_files); |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
322 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
323 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
324 void main_window::adopt_history_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
325 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
326 m_history_window = m_octave_qobj.history_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
327 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
328 make_dock_widget_connections (m_history_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
329 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
330 connect (m_history_window, &history_dock_widget::command_create_script, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
331 this, &main_window::new_file_signal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
332 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
333 connect (m_history_window, &history_dock_widget::command_double_clicked, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
334 this, &main_window::execute_command_in_terminal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
335 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
336 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
337 void main_window::adopt_workspace_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
338 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
339 m_workspace_window = m_octave_qobj.workspace_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
340 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
341 make_dock_widget_connections (m_workspace_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
342 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
343 connect (m_workspace_window, &workspace_view::command_requested, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
344 this, &main_window::execute_command_in_terminal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
345 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
346 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
347 void main_window::adopt_editor_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
348 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
349 #if defined (HAVE_QSCINTILLA) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
350 file_editor *editor = new file_editor (this, m_octave_qobj); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
351 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
352 make_dock_widget_connections (editor); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
353 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
354 // The editor is currently different from other dock widgets. Until |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
355 // those differences are resolved, make interpreter_event |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
356 // connections here instead of in base_qobject::editor_widget. |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
357 m_octave_qobj.connect_interpreter_events (editor); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
358 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
359 connect (editor, &file_editor::request_settings_dialog, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
360 this, QOverload<const QString&>::of (&main_window::process_settings_dialog_request)); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
361 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
362 connect (editor, &file_editor::request_dbcont_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
363 this, &main_window::debug_continue); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
364 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
365 connect (this, &main_window::update_gui_lexer_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
366 editor, &file_editor::update_gui_lexer_signal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
367 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
368 connect (editor, &file_editor::execute_command_in_terminal_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
369 this, &main_window::execute_command_in_terminal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
370 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
371 connect (editor, &file_editor::focus_console_after_command_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
372 this, &main_window::focus_console_after_command); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
373 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
374 connect (editor, &file_editor::run_file_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
375 this, &main_window::run_file_in_terminal); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
376 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
377 connect (editor, &file_editor::edit_mfile_request, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
378 this, &main_window::handle_edit_mfile_request); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
379 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
380 connect (editor, &file_editor::debug_quit_signal, |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
381 this, &main_window::debug_quit); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
382 |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
383 connect (this, &main_window::editor_focus_changed, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
384 editor, &file_editor::enable_menu_shortcuts); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
385 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
386 connect (this, &main_window::step_into_file_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
387 editor, &file_editor::request_step_into_file); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
388 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
389 connect (editor, &file_editor::editor_tabs_changed_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
390 this, &main_window::editor_tabs_changed); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
391 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
392 connect (editor, &file_editor::request_open_file_external, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
393 m_external_editor, &external_editor_interface::call_custom_editor); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
394 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
395 connect (m_external_editor, &external_editor_interface::request_settings_dialog, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
396 this, &main_window::process_settings_dialog_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
397 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
398 connect (this, &main_window::insert_debugger_pointer_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
399 editor, &file_editor::handle_insert_debugger_pointer_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
400 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
401 connect (this, &main_window::delete_debugger_pointer_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
402 editor, &file_editor::handle_delete_debugger_pointer_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
403 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
404 connect (this, &main_window::update_breakpoint_marker_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
405 editor, &file_editor::handle_update_breakpoint_marker_request); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
406 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
407 // Signals for removing/renaming files/dirs in the file browser |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
408 connect (m_file_browser_window, &files_dock_widget::file_remove_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
409 editor, &file_editor::handle_file_remove); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
410 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
411 connect (m_file_browser_window, &files_dock_widget::file_renamed_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
412 editor, &file_editor::handle_file_renamed); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
413 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
414 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
415 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
416 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
417 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
418 // Signals for removing/renaming files/dirs in the terminal window |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
419 connect (qt_link, &qt_interpreter_events::file_renamed_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
420 editor, &file_editor::handle_file_renamed); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
421 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
422 // Signals for entering/exiting debug mode |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
423 connect (qt_link, &qt_interpreter_events::enter_debugger_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
424 editor, &file_editor::handle_enter_debug_mode); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
425 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
426 connect (qt_link, &qt_interpreter_events::exit_debugger_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
427 editor, &file_editor::handle_exit_debug_mode); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
428 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
429 connect (qt_link, &qt_interpreter_events::directory_changed_signal, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
430 editor, &file_editor::update_octave_directory); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
431 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
432 m_editor_window = editor; |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
433 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
434 m_editor_menubar = m_editor_window->menubar (); |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
435 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
436 m_active_editor = m_editor_window; |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
437 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
438 m_editor_window->enable_menu_shortcuts (false); |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
439 #else |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
440 m_editor_window = nullptr; |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
441 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
442 m_editor_menubar = nullptr; |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
443 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
444 m_active_editor = m_external_editor; |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
445 #endif |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
446 |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
447 connect (qt_link, SIGNAL (edit_file_signal (const QString&)), |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
448 m_active_editor, SLOT (handle_edit_file_request (const QString&))); |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
449 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
450 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
451 void main_window::adopt_variable_editor_widget (void) |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
452 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
453 m_variable_editor_window = m_octave_qobj.variable_editor_widget (this); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
454 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
455 make_dock_widget_connections (m_variable_editor_window); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
456 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
457 |
29612
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
458 void main_window::make_dock_widget_connections (octave_dock_widget *dw) |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
459 { |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
460 connect (this, &main_window::init_window_menu, |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
461 dw, &octave_dock_widget::init_window_menu_entry); |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
462 |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
463 connect (this, &main_window::settings_changed, |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
464 dw, &octave_dock_widget::handle_settings); |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
465 |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
466 connect (this, &main_window::active_dock_changed, |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
467 dw, &octave_dock_widget::handle_active_dock_changed); |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
468 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
469 // FIXME: shouldn't this action should be associated with closing |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
470 // the main window, not with exiting the application? At one time, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
471 // those two actions happened together, but now it is possible to |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
472 // close the main window without exiting the application. |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
473 connect (qApp, &QApplication::aboutToQuit, |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
474 dw, &octave_dock_widget::save_settings); |
29612
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
475 } |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
476 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
477 bool main_window::command_window_has_focus (void) const |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
478 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
479 return m_command_window->has_focus (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
480 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
481 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
482 void main_window::focus_command_window (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
483 { |
27281
0915fec3d3a9
prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27277
diff
changeset
|
484 m_command_window->activate (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
485 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
486 |
27669
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
487 void main_window::focus_window (const QString& win_name) |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
488 { |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
489 if (win_name == "command") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
490 m_command_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
491 else if (win_name == "history") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
492 m_history_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
493 else if (win_name == "workspace") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
494 m_workspace_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
495 else if (win_name == "filebrowser") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
496 m_file_browser_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
497 } |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
498 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
499 bool main_window::confirm_shutdown (void) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
500 { |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
501 bool closenow = true; |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
502 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
503 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
504 gui_settings *settings = rmgr.get_settings (); |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
505 |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
506 if (settings->value (global_prompt_to_exit.key, |
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
507 global_prompt_to_exit.def).toBool ()) |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
508 { |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
509 int ans = QMessageBox::question (this, tr ("Octave"), |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
510 tr ("Are you sure you want to exit Octave?"), |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
511 (QMessageBox::Ok |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
512 | QMessageBox::Cancel), |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
513 QMessageBox::Ok); |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
514 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
515 if (ans != QMessageBox::Ok) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
516 closenow = false; |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
517 } |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
518 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
519 #if defined (HAVE_QSCINTILLA) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
520 if (closenow) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
521 closenow = m_editor_window->check_closing (); |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
522 #endif |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
523 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
524 return closenow; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
525 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
526 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
527 // catch focus changes and determine the active dock widget |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
528 void main_window::focus_changed (QWidget *, QWidget *new_widget) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
529 { |
29085
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
530 // If there is no new widget or the new widget is a menu bar |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
531 // (when pressing <alt>), we can return immediately and reset the |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
532 // focus to the previous widget |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
533 if (! new_widget |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
534 || (new_widget == menuBar ()) |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
535 || (new_widget == m_editor_menubar)) |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
536 { |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
537 if (m_active_dock) |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
538 m_active_dock->setFocus (); |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
539 |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
540 return; |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
541 } |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
542 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
543 octave_dock_widget *dock = nullptr; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
544 QWidget *w_new = new_widget; // get a copy of new focus widget |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
545 QWidget *start = w_new; // Save it as start of our search |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
546 int count = 0; // fallback to prevent endless loop |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
547 |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
548 QList<octave_dock_widget *> w_list = dock_widget_list (); |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
549 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
550 while (w_new && w_new != m_main_tool_bar && count < 100) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
551 { |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
552 // Go through all dock widgets and check whether the current widget |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
553 // with focus is a child of one of them. |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
554 for (auto w : w_list) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
555 { |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
556 if (w->isAncestorOf (w_new)) |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
557 dock = w; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
558 } |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
559 |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
560 if (dock) |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
561 break; |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
562 |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27041
diff
changeset
|
563 // If not yet found (in case w_new is not a child of its dock widget), |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
564 // test next widget in the focus chain |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
565 w_new = qobject_cast<QWidget *> (w_new->previousInFocusChain ()); |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
566 |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
567 // Measures preventing an endless loop |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
568 if (w_new == start) |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
569 break; // We have arrived where we began ==> exit loop |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
570 count++; // Limited number of trials |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
571 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
572 |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
573 // editor and terminal needs extra handling |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
574 octave_dock_widget *edit_dock_widget |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
575 = static_cast<octave_dock_widget *> (m_editor_window); |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
576 octave_dock_widget *cmd_dock_widget |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
577 = static_cast<octave_dock_widget *> (m_command_window); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
578 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
579 // if new dock has focus, emit signal and store active focus |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
580 // except editor changes to a dialog (dock=0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
581 if ((dock || m_active_dock != edit_dock_widget) && (dock != m_active_dock)) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
582 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
583 // signal to all dock widgets for updating the style |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
584 emit active_dock_changed (m_active_dock, dock); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
585 |
26555
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
586 if (dock) |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
587 { |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
588 QList<QDockWidget *> tabbed = tabifiedDockWidgets (dock); |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
589 if (tabbed.contains (m_active_dock)) |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
590 dock->set_predecessor_widget (m_active_dock); |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
591 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
592 |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
593 // Check whether editor loses or gains focus |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
594 int editor = 0; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
595 if (edit_dock_widget == dock) |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
596 { |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
597 emit editor_focus_changed (true); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
598 editor = 1; |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
599 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
600 else if (edit_dock_widget == m_active_dock) |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
601 { |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
602 emit editor_focus_changed (false); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
603 editor = -1; |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
604 } |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
605 |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
606 // Check whether terminal loses or gains focus |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
607 int cmd_involved = 0; |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
608 if (cmd_dock_widget == dock) |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
609 cmd_involved = 1; |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
610 else if (cmd_dock_widget == m_active_dock) |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
611 cmd_involved = -1; |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
612 |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
613 // If we have to take care of Alt+? accelerators of the main |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
614 // window, take result of test for terminal widget above |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
615 int command = 0; |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
616 if (m_prevent_readline_conflicts_menu) |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
617 command = cmd_involved; |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
618 |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
619 // If editor or command gets/looses focus, disable/enable |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
620 // main menu accelerators (Alt + ?) |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
621 if (editor || command) |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
622 { |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
623 int sum = editor + command; |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
624 if (sum > 0) |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
625 disable_menu_shortcuts (true); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
626 else if (sum < 0) |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
627 disable_menu_shortcuts (false); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
628 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
629 |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
630 if (m_active_dock) |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
631 m_previous_dock = m_active_dock; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
632 m_active_dock = dock; |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
633 |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
634 // En-/disable global shortcuts (preventing conflicts with |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
635 // readline. Do it here because it relies on m_active_dock |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
636 if (cmd_involved) |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
637 configure_shortcuts (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
638 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
639 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
640 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
641 void main_window::request_reload_settings (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
642 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
643 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
644 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
645 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
646 if (settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
647 emit settings_changed (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
648 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
649 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
650 void main_window::report_status_message (const QString& statusMessage) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
651 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
652 m_status_bar->showMessage (statusMessage, 1000); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
653 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
654 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
655 void main_window::handle_save_workspace_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
656 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
657 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
658 int opts = 0; // No options by default. |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
659 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
660 gui_settings *settings = rmgr.get_settings (); |
28497
2813ac10ca1e
force non-native file dialogs on Mac ignoring current user pref (bug #52840)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28351
diff
changeset
|
661 if (! settings->value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
662 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
663 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
664 QString file |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
665 = QFileDialog::getSaveFileName (this, tr ("Save Workspace As"), ".", |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
666 nullptr, nullptr, QFileDialog::Option (opts)); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
667 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
668 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
669 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
670 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
671 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
672 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
673 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
674 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
675 Fsave (interp, ovl (file.toStdString ())); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
676 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
677 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
678 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
679 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
680 void main_window::handle_load_workspace_request (const QString& file_arg) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
681 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
682 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
683 int opts = 0; // No options by default. |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
684 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
685 gui_settings *settings = rmgr.get_settings (); |
28497
2813ac10ca1e
force non-native file dialogs on Mac ignoring current user pref (bug #52840)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28351
diff
changeset
|
686 if (! settings->value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
687 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
688 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
689 QString file = file_arg; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
690 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
691 if (file.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
692 file = QFileDialog::getOpenFileName (this, tr ("Load Workspace"), ".", |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
693 nullptr, nullptr, QFileDialog::Option (opts)); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
694 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
695 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
696 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
697 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
698 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
699 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
700 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
701 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
702 Fload (interp, ovl (file.toStdString ())); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
703 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
704 tree_evaluator& tw = interp.get_evaluator (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
705 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
706 event_manager& xevmgr = interp.get_event_manager (); |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
707 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
708 xevmgr.set_workspace (true, tw.get_symbol_info ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
709 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
710 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
711 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
712 |
25408
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25407
diff
changeset
|
713 void main_window::handle_open_any_request (const QString& file_arg) |
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25407
diff
changeset
|
714 { |
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25407
diff
changeset
|
715 if (! file_arg.isEmpty ()) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
716 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
717 std::string file = file_arg.toStdString (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
718 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
719 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
720 ([=] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
721 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
722 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
723 |
27405
646efbb5f407
avoid including builtin-defun-decls.h unless needed
John W. Eaton <jwe@octave.org>
parents:
27396
diff
changeset
|
724 interp.feval ("open", ovl (file)); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
725 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
726 // Update the workspace since open.m may have loaded new |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
727 // variables. |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
728 tree_evaluator& tw = interp.get_evaluator (); |
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
729 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
730 event_manager& xevmgr = interp.get_event_manager (); |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
731 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
732 xevmgr.set_workspace (true, tw.get_symbol_info ()); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
733 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
734 } |
25408
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25407
diff
changeset
|
735 } |
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25407
diff
changeset
|
736 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
737 void main_window::handle_clear_workspace_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
738 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
739 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
740 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
741 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
742 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
743 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
744 Fclear (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
745 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
746 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
747 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
748 void main_window::handle_clear_command_window_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
749 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
750 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
751 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
752 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
753 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
754 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
755 command_editor::kill_full_line (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
756 command_editor::clear_screen (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
757 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
758 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
759 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
760 void main_window::handle_clear_history_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
761 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
762 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
763 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
764 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
765 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
766 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
767 history_system& history_sys = interp.get_history_system (); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
768 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
769 history_sys.do_history (ovl ("-c")); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
770 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
771 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
772 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
773 void main_window::handle_undo_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
774 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
775 if (command_window_has_focus ()) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
776 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
777 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
778 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
779 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
780 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
781 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
782 command_editor::undo (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
783 command_editor::redisplay (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
784 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
785 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
786 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
787 emit undo_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
788 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
789 |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
790 void main_window::modify_path (const QStringList& dir_list, |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
791 bool rm, bool subdirs) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
792 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
793 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
794 ([=] (interpreter& interp) |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
795 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
796 // INTERPRETER THREAD |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
797 |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
798 octave_value_list paths; |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
799 |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
800 // Loop over all directories in order to get all subdirs |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
801 for (octave_idx_type i = 0; i < dir_list.length (); i++) |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
802 { |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
803 std::string dir = dir_list.at(i).toStdString (); |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
804 |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
805 if (subdirs) |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
806 paths.append (Fgenpath (ovl (dir))); |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
807 else |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
808 paths.append (dir); |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
809 } |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
810 |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
811 if (rm) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
812 Frmpath (interp, paths); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
813 else |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
814 Faddpath (interp, paths); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
815 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
816 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
817 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
818 void main_window::edit_mfile (const QString& name, int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
819 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
820 handle_edit_mfile_request (name, QString (), QString (), line); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
821 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
822 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
823 void main_window::file_remove_proxy (const QString& o, const QString& n) |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
824 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
825 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
826 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
827 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
828 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
829 // Wait for worker to suspend |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
830 qt_link->lock (); |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
831 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
832 // Close the file if opened |
27039
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
833 #if defined (HAVE_QSCINTILLA) |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
834 m_editor_window->handle_file_remove (o, n); |
27041
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
835 #else |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
836 octave_unused_parameter (o); |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
837 octave_unused_parameter (n); |
27039
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
838 #endif |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
839 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
840 // We are done: Unlock and wake the worker thread |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
841 qt_link->unlock (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
842 qt_link->wake_all (); |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
843 } |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
844 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
845 void main_window::open_online_documentation_page (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
846 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
847 QDesktopServices::openUrl |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
848 (QUrl ("https://octave.org/doc/interpreter/index.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
849 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
850 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
851 void main_window::display_release_notes (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
852 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
853 if (! m_release_notes_window) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
854 { |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
855 std::string news_file = config::oct_etc_dir () + "/NEWS"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
856 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
857 QString news; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
858 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
859 QFile *file = new QFile (QString::fromStdString (news_file)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
860 if (file->open (QFile::ReadOnly)) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
861 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
862 QTextStream *stream = new QTextStream (file); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
863 news = stream->readAll (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
864 if (! news.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
865 { |
25251
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
866 // Convert '<', '>' which would be interpreted as HTML |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
867 news.replace ("<", "<"); |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
868 news.replace (">", ">"); |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
869 // Add HTML tags for pre-formatted text |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
870 news.prepend ("<pre>"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
871 news.append ("</pre>"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
872 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
873 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
874 news = (tr ("The release notes file '%1' is empty.") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
875 . arg (QString::fromStdString (news_file))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
876 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
877 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
878 news = (tr ("The release notes file '%1' cannot be read.") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
879 . arg (QString::fromStdString (news_file))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
880 |
29133
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
881 // We want the window manager to give the release notes window |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
882 // a title bar, so don't its parent to main_window. Do remember |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
883 // to delete in the main_window destructor. |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
884 |
29749
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
885 m_release_notes_window = new QWidget (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
886 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
887 QTextBrowser *browser = new QTextBrowser (m_release_notes_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
888 browser->setText (news); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
889 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
890 QVBoxLayout *vlayout = new QVBoxLayout; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
891 vlayout->addWidget (browser); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
892 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
893 m_release_notes_window->setLayout (vlayout); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
894 m_release_notes_window->setWindowTitle (tr ("Octave Release Notes")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
895 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
896 browser->document ()->adjustSize (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
897 |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
898 int win_x, win_y; |
29834
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
899 get_screen_geometry (win_x, win_y); |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
900 |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
901 m_release_notes_window->resize (win_x*2/5, win_y*2/3); |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
902 m_release_notes_window->move (20, 20); // move to the top left corner |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
903 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
904 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
905 if (! m_release_notes_window->isVisible ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
906 m_release_notes_window->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
907 else if (m_release_notes_window->isMinimized ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
908 m_release_notes_window->showNormal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
909 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
910 m_release_notes_window->setWindowIcon (QIcon (m_release_notes_icon)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
911 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
912 m_release_notes_window->raise (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
913 m_release_notes_window->activateWindow (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
914 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
915 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
916 void main_window::load_and_display_community_news (int serial) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
917 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
918 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
919 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
920 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
921 bool connect_to_web |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
922 = (settings |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
923 ? settings->value (nr_allow_connection).toBool () |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
924 : true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
925 |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
926 QString base_url = "https://octave.org"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
927 QString page = "community-news.html"; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
928 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
929 QThread *worker_thread = new QThread; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
930 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
931 news_reader *reader = new news_reader (m_octave_qobj, base_url, page, |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
932 serial, connect_to_web); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
933 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
934 reader->moveToThread (worker_thread); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
935 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
936 connect (reader, &news_reader::display_news_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
937 this, &main_window::display_community_news); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
938 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
939 connect (worker_thread, &QThread::started, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
940 reader, &news_reader::process); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
941 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
942 connect (reader, &news_reader::finished, worker_thread, &QThread::quit); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
943 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
944 connect (reader, &news_reader::finished, reader, &news_reader::deleteLater); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
945 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
946 connect (worker_thread, &QThread::finished, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
947 worker_thread, &QThread::deleteLater); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
948 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
949 worker_thread->start (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
950 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
951 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
952 void main_window::display_community_news (const QString& news) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
953 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
954 if (! m_community_news_window) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
955 { |
29133
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
956 // We want the window manager to give the community news window |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
957 // a title bar, so don't its parent to main_window. Do remember |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
958 // to delete in the main_window destructor. |
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
959 |
29749
710c2cb73c2d
allow WM to give title bar to release notes and news windows (bug #60752)
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
960 m_community_news_window = new QWidget (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
961 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
962 QTextBrowser *browser = new QTextBrowser (m_community_news_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
963 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
964 browser->setHtml (news); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
965 browser->setObjectName ("OctaveNews"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
966 browser->setOpenExternalLinks (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
967 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
968 QVBoxLayout *vlayout = new QVBoxLayout; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
969 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
970 vlayout->addWidget (browser); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
971 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
972 m_community_news_window->setLayout (vlayout); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
973 m_community_news_window->setWindowTitle (tr ("Octave Community News")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
974 |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
975 int win_x, win_y; |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
976 get_screen_geometry (&win_x, &win_y); |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
977 |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
978 m_community_news_window->resize (win_x/2, win_y/2); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
979 m_community_news_window->move ((win_x - m_community_news_window->width ())/2, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
980 (win_y - m_community_news_window->height ())/2); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
981 } |
25805
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
982 else |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
983 { |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
984 // Window already exists, just update the browser contents |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
985 QTextBrowser *browser |
25819
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
986 |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
987 = m_community_news_window->findChild<QTextBrowser *>("OctaveNews" |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
988 , Qt::FindDirectChildrenOnly |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
989 ); |
25805
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
990 if (browser) |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
991 browser->setHtml (news); |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
992 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
993 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
994 if (! m_community_news_window->isVisible ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
995 m_community_news_window->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
996 else if (m_community_news_window->isMinimized ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
997 m_community_news_window->showNormal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
998 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
999 // same icon as release notes |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1000 m_community_news_window->setWindowIcon (QIcon (m_release_notes_icon)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1001 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1002 m_community_news_window->raise (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1003 m_community_news_window->activateWindow (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1004 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1005 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1006 void main_window::open_bug_tracker_page (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1007 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
1008 QDesktopServices::openUrl (QUrl ("https://octave.org/bugs.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1009 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1010 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1011 void main_window::open_octave_packages_page (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1012 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
1013 QDesktopServices::openUrl (QUrl ("https://octave.org/packages.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1014 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1015 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1016 void main_window::open_contribute_page (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1017 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
1018 QDesktopServices::openUrl (QUrl ("https://octave.org/contribute.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1019 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1020 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1021 void main_window::open_donate_page (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1022 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
1023 QDesktopServices::openUrl (QUrl ("https://octave.org/donate.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1024 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1025 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1026 void main_window::process_settings_dialog_request (const QString& desired_tab) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1027 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1028 if (m_settings_dlg) // m_settings_dlg is a guarded pointer! |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1029 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1030 // here the dialog is still open and called once again |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1031 if (! desired_tab.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1032 m_settings_dlg->show_tab (desired_tab); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1033 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1034 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1035 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1036 m_settings_dlg = new settings_dialog (this, m_octave_qobj, desired_tab); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1037 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1038 connect (m_settings_dlg, &settings_dialog::apply_new_settings, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1039 this, &main_window::request_reload_settings); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1040 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1041 m_settings_dlg->setModal (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1042 m_settings_dlg->setAttribute (Qt::WA_DeleteOnClose); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1043 m_settings_dlg->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1044 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1045 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1046 void main_window::show_about_octave (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1047 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1048 std::string message |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1049 = octave_name_version_copyright_copying_warranty_and_bugs (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1050 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1051 QMessageBox::about (this, tr ("About Octave"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1052 QString::fromStdString (message)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1053 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1054 |
29000
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28837
diff
changeset
|
1055 void main_window::notice_settings (const gui_settings *settings, |
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28837
diff
changeset
|
1056 bool update_by_worker) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1057 { |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1058 if (! settings) |
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1059 return; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1060 |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1061 // Get desired style from preferences or take the default one if |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1062 // the desired one is not found |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
1063 QString preferred_style = settings->value (global_style).toString (); |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1064 |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1065 if (preferred_style == global_style.def.toString ()) |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1066 preferred_style = m_default_style; |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1067 |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1068 QStyle *new_style = QStyleFactory::create (preferred_style); |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1069 if (new_style) |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1070 { |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1071 QApplication *qapp = m_octave_qobj.qapplication (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1072 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1073 qapp->setStyle (new_style); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1074 } |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
1075 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1076 // the widget's icons (when floating) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1077 QString icon_set |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
1078 = settings->value (dw_icon_set).toString (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1079 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1080 int count = 0; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1081 int icon_set_found = 0; // default |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1082 |
27665
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1083 while (! dw_icon_set_names[count].name.isEmpty ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1084 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1085 // while not end of data |
27665
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1086 if (dw_icon_set_names[count].name == icon_set) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1087 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1088 // data of desired icon set found |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1089 icon_set_found = count; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1090 break; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1091 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1092 count++; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1093 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1094 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1095 QString icon; |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
1096 for (auto *widget : dock_widget_list ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1097 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1098 QString name = widget->objectName (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1099 if (! name.isEmpty ()) |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
1100 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1101 // if child has a name |
27665
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1102 icon = dw_icon_set_names[icon_set_found].path; // prefix | octave-logo |
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1103 if (dw_icon_set_names[icon_set_found].name != "NONE") |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1104 icon += name + ".png"; // add widget name and ext. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1105 widget->setWindowIcon (QIcon (icon)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1106 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1107 } |
27665
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1108 if (dw_icon_set_names[icon_set_found].name != "NONE") |
a1271c5b621a
replace preference literals by symbolic constants for dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27664
diff
changeset
|
1109 m_release_notes_icon = dw_icon_set_names[icon_set_found].path |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
1110 + "ReleaseWidget.png"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1111 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1112 m_release_notes_icon = ":/actions/icons/logo.png"; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1113 |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
1114 int size_idx = settings->value (global_icon_size).toInt (); |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
1115 size_idx = (size_idx > 0) - (size_idx < 0) + 1; // Make valid index from 0 to 2 |
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
1116 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1117 QStyle *st = style (); |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
1118 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1119 m_main_tool_bar->setIconSize (QSize (icon_size,icon_size)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1120 |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
1121 if (settings->value (global_status_bar).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1122 m_status_bar->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1123 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1124 m_status_bar->hide (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1125 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1126 m_prevent_readline_conflicts |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
1127 = settings->value (sc_prevent_rl_conflicts).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1128 |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1129 m_prevent_readline_conflicts_menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
1130 = settings->value (sc_prevent_rl_conflicts_menu).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1131 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1132 m_suppress_dbg_location |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1133 = ! settings->value (cs_dbg_location).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1134 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1135 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1136 rmgr.update_network_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1137 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1138 emit active_dock_changed (nullptr, m_active_dock); // update dock widget styles |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1139 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1140 configure_shortcuts (); |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1141 |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1142 bool do_disable_main_menu_shortcuts |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1143 = (m_active_dock == m_editor_window) |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1144 || (m_prevent_readline_conflicts_menu |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1145 && (m_active_dock == m_command_window)); |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1146 |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
1147 disable_menu_shortcuts (do_disable_main_menu_shortcuts); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1148 |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1149 // Check whether some octave internal preferences have to be updated |
25702
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
1150 QString new_default_encoding |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
1151 = settings->value (ed_default_enc).toString (); |
29000
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28837
diff
changeset
|
1152 // Do not update internal pref only if a) this update was not initiated |
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28837
diff
changeset
|
1153 // by the worker and b) the pref has really changes |
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28837
diff
changeset
|
1154 if (! update_by_worker && (new_default_encoding != m_default_encoding)) |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1155 update_default_encoding (new_default_encoding); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1156 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1157 // Set cursor blinking depending on the settings |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1158 // Cursor blinking: consider old terminal related setting if not yet set |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1159 // TODO: This pref. can be deprecated / removed if Qt adds support for |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1160 // getting the cursor blink preferences from all OS environments |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1161 bool cursor_blinking; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1162 |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27562
diff
changeset
|
1163 if (settings->contains (global_cursor_blinking.key)) |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
1164 cursor_blinking = settings->value (global_cursor_blinking).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1165 else |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27671
diff
changeset
|
1166 cursor_blinking = settings->value (cs_cursor_blinking).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1167 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1168 if (cursor_blinking) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1169 QApplication::setCursorFlashTime (1000); // 1000 ms flash time |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1170 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1171 QApplication::setCursorFlashTime (0); // no flashing |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1172 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1173 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1174 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1175 void main_window::prepare_to_exit (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1176 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1177 // Find files dialog is constructed dynamically, not at time of main_window |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1178 // construction. Connecting it to qApp aboutToQuit signal would have |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1179 // caused it to run after gui_settings is deleted. |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1180 if (m_find_files_dlg) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1181 m_find_files_dlg->save_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1182 |
27312
b9a436b0400e
save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27311
diff
changeset
|
1183 if (m_set_path_dlg) |
b9a436b0400e
save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27311
diff
changeset
|
1184 m_set_path_dlg->save_settings (); |
b9a436b0400e
save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27311
diff
changeset
|
1185 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1186 write_settings (); |
29085
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
1187 |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
1188 // No more active dock, otherwise, focus_changed would try to set |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
1189 // the focus to a dock widget that might not exist anymore |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
1190 m_active_dock = nullptr; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1191 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1192 |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1193 void main_window::go_to_previous_widget (void) |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1194 { |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1195 m_previous_dock->activate (); |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1196 } |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1197 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
1198 void main_window::update_octave_directory (const QString& dir) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1199 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1200 // Remove existing entry, if any, then add new directory at top and |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1201 // mark it as the current directory. Finally, update the file list |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1202 // widget. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1203 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1204 int index = m_current_directory_combo_box->findText (dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1205 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1206 if (index >= 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1207 m_current_directory_combo_box->removeItem (index); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1208 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1209 m_current_directory_combo_box->insertItem (0, dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1210 m_current_directory_combo_box->setCurrentIndex (0); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1211 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1212 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1213 void main_window::browse_for_directory (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1214 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1215 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1216 int opts = QFileDialog::ShowDirsOnly; |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1217 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1218 gui_settings *settings = rmgr.get_settings (); |
28497
2813ac10ca1e
force non-native file dialogs on Mac ignoring current user pref (bug #52840)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28351
diff
changeset
|
1219 if (! settings->value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1220 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1221 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1222 QString dir |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1223 = QFileDialog::getExistingDirectory (this, tr ("Browse directories"), nullptr, |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1224 QFileDialog::Option (opts)); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1225 |
15626
1cc10ce368ea
enable entering a new directory in the current directory combobox
Torsten <ttl@justmail.de>
parents:
15607
diff
changeset
|
1226 set_current_working_directory (dir); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1227 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1228 // FIXME: on Windows systems, the command window freezes after the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1229 // previous actions. Forcing the focus appears to unstick it. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1230 |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
1231 focus_command_window (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1232 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1233 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1234 void main_window::set_current_working_directory (const QString& dir) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1235 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1236 // Change to dir if it is an existing directory. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1237 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1238 QString xdir = (dir.isEmpty () ? "." : dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1239 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1240 QFileInfo fileInfo (xdir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1241 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1242 if (fileInfo.exists () && fileInfo.isDir ()) |
25703
7b4e99fbe9d4
include builtin functions without interpreter argument being into octave_cmd
Torsten <mttl@mailbox.org>
parents:
25702
diff
changeset
|
1243 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1244 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1245 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1246 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1247 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1248 |
27408
9b19eec60931
move change directory function to interpreter class
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
1249 interp.chdir (xdir.toStdString ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1250 }); |
25703
7b4e99fbe9d4
include builtin functions without interpreter argument being into octave_cmd
Torsten <mttl@mailbox.org>
parents:
25702
diff
changeset
|
1251 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1252 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1253 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1254 void main_window::change_directory_up (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1255 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1256 set_current_working_directory (".."); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1257 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1258 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1259 // Slot that is called if return is pressed in the line edit of the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1260 // combobox to change to a new directory or a directory that is already |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1261 // in the drop down list. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1262 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1263 void main_window::accept_directory_line_edit (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1264 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1265 // Get new directory name, and change to it if it is new. Otherwise, |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1266 // the combo box will trigger the "activated" signal to change to the |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1267 // directory. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1268 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1269 QString dir = m_current_directory_combo_box->currentText (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1270 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1271 int index = m_current_directory_combo_box->findText (dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1272 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1273 if (index < 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1274 set_current_working_directory (dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1275 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1276 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1277 void main_window::execute_command_in_terminal (const QString& command) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1278 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1279 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1280 ([=] (void) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1281 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1282 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1283 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1284 std::string pending_input = command_editor::get_current_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1285 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1286 command_editor::set_initial_input (pending_input); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1287 command_editor::replace_line (command.toStdString ()); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1288 command_editor::redisplay (); |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27335
diff
changeset
|
1289 command_editor::interrupt_event_loop (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1290 command_editor::accept_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1291 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1292 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1293 focus_console_after_command (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1294 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1295 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1296 void main_window::run_file_in_terminal (const QFileInfo& info) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1297 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1298 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1299 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1300 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1301 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1302 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1303 QString function_name = info.fileName (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1304 function_name.chop (info.suffix ().length () + 1); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1305 std::string file_path = info.absoluteFilePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1306 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1307 std::string pending_input = command_editor::get_current_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1308 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1309 if (valid_identifier (function_name.toStdString ())) |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1310 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1311 // Valid identifier: call as function with possibility to |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1312 // debug. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1313 |
27396
930c0fbc003b
move qt_interpreter_events::file_in_path to load_path::contains_file_in_dir
John W. Eaton <jwe@octave.org>
parents:
27393
diff
changeset
|
1314 load_path& lp = interp.get_load_path (); |
930c0fbc003b
move qt_interpreter_events::file_in_path to load_path::contains_file_in_dir
John W. Eaton <jwe@octave.org>
parents:
27393
diff
changeset
|
1315 |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1316 std::string path = info.absolutePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1317 |
27396
930c0fbc003b
move qt_interpreter_events::file_in_path to load_path::contains_file_in_dir
John W. Eaton <jwe@octave.org>
parents:
27393
diff
changeset
|
1318 if (lp.contains_file_in_dir (file_path, path)) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1319 command_editor::replace_line (function_name.toStdString ()); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1320 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1321 else |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1322 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1323 // No valid identifier: use equivalent of Fsource (), no |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1324 // debug possible. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1325 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1326 interp.source_file (file_path); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1327 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1328 command_editor::replace_line (""); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1329 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1330 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1331 command_editor::set_initial_input (pending_input); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1332 command_editor::redisplay (); |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27335
diff
changeset
|
1333 command_editor::interrupt_event_loop (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1334 command_editor::accept_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1335 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1336 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1337 focus_console_after_command (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1338 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1339 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1340 void main_window::handle_new_figure_request (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1341 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1342 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1343 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1344 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1345 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1346 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1347 Fbuiltin (interp, ovl ("figure")); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27312
diff
changeset
|
1348 Fdrawnow (interp); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1349 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1350 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1351 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1352 void main_window::handle_enter_debugger (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1353 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1354 setWindowTitle ("Octave (Debugging)"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1355 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1356 m_debug_continue->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1357 m_debug_step_into->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1358 m_debug_step_over->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1359 m_debug_step_out->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1360 m_debug_quit->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1361 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1362 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1363 void main_window::handle_exit_debugger (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1364 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1365 setWindowTitle ("Octave"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1366 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1367 m_debug_continue->setEnabled (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1368 m_debug_step_into->setEnabled (false); |
29439
fe06fafb4cac
fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
1369 m_debug_step_over->setEnabled (m_editor_has_tabs && m_editor_is_octave_file); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1370 m_debug_step_out->setEnabled (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1371 m_debug_quit->setEnabled (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1372 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1373 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1374 void main_window::debug_continue (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1375 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1376 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1377 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1378 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1379 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1380 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1381 F__db_next_breakpoint_quiet__ (interp, ovl (m_suppress_dbg_location)); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1382 Fdbcont (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1383 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1384 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1385 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1386 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1387 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1388 void main_window::debug_step_into (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1389 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1390 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1391 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1392 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1393 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1394 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1395 F__db_next_breakpoint_quiet__ (interp, ovl (m_suppress_dbg_location)); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1396 Fdbstep (interp, ovl ("in")); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1397 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1398 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1399 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1400 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1401 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1402 void main_window::debug_step_over (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1403 { |
26873
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1404 if (m_debug_quit->isEnabled ()) |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1405 { |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1406 // We are in debug mode, just call dbstep. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1407 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1408 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1409 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1410 { |
27393
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
diff
changeset
|
1411 // INTERPRETER THREAD |
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
diff
changeset
|
1412 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1413 F__db_next_breakpoint_quiet__ (interp, |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1414 ovl (m_suppress_dbg_location)); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1415 Fdbstep (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1416 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1417 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1418 }); |
26873
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1419 } |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1420 else |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1421 { |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1422 // Not in debug mode: "step into" the current editor file |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1423 emit step_into_file_signal (); |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1424 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1425 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1426 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1427 void main_window::debug_step_out (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1428 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1429 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1430 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1431 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1432 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1433 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1434 F__db_next_breakpoint_quiet__ (interp, ovl (m_suppress_dbg_location)); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1435 Fdbstep (interp, ovl ("out")); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1436 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1437 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1438 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1439 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1440 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1441 void main_window::debug_quit (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1442 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1443 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1444 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1445 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1446 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1447 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1448 Fdbquit (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1449 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1450 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1451 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1452 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1453 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1454 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1455 // Functions related to file editing |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1456 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1457 // These are moved from editor to here for also using them when octave |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1458 // is built without qscintilla |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1459 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1460 void main_window::request_open_file (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1461 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1462 // Open file isn't a file_editor_tab or editor function since the file |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
1463 // might be opened in an external editor. Hence, functionality is here. |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1464 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1465 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1466 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1467 bool is_internal = m_editor_window |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1468 && ! settings->value (global_use_custom_editor.key, |
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1469 global_use_custom_editor.def).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1470 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1471 // Create a NonModal message. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1472 QWidget *p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1473 if (is_internal) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1474 p = m_editor_window; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1475 QFileDialog *fileDialog = new QFileDialog (p); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1476 fileDialog->setNameFilter (tr ("Octave Files (*.m);;All Files (*)")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1477 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1478 fileDialog->setAcceptMode (QFileDialog::AcceptOpen); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1479 fileDialog->setViewMode (QFileDialog::Detail); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1480 fileDialog->setFileMode (QFileDialog::ExistingFiles); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1481 fileDialog->setDirectory (m_current_directory_combo_box->itemText (0)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1482 |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1483 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
28497
2813ac10ca1e
force non-native file dialogs on Mac ignoring current user pref (bug #52840)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28351
diff
changeset
|
1484 if (! settings->value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1485 fileDialog->setOption(QFileDialog::DontUseNativeDialog); |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1486 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1487 connect (fileDialog, &QFileDialog::filesSelected, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1488 this, &main_window::request_open_files); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1489 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1490 fileDialog->setWindowModality (Qt::NonModal); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1491 fileDialog->setAttribute (Qt::WA_DeleteOnClose); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1492 fileDialog->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1493 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1494 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1495 // Create a new script |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1496 void main_window::request_new_script (const QString& commands) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1497 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1498 emit new_file_signal (commands); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1499 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1500 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1501 // Create a new function and open it |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1502 void main_window::request_new_function (bool) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1503 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1504 bool ok; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1505 // Get the name of the new function: Parent of the input dialog is the |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
1506 // editor window or the main window. The latter is chosen, if a custom |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1507 // editor is used or qscintilla is not available |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1508 QWidget *p = m_editor_window; |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1509 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1510 gui_settings *settings = rmgr.get_settings (); |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1511 if (! p || settings->value (global_use_custom_editor.key, |
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1512 global_use_custom_editor.def).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1513 p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1514 QString new_name = QInputDialog::getText (p, tr ("New Function"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1515 tr ("New function name:\n"), QLineEdit::Normal, "", &ok); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1516 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1517 if (ok && new_name.length () > 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1518 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1519 // append suffix if it does not already exist |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1520 if (new_name.rightRef (2) != ".m") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1521 new_name.append (".m"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1522 // check whether new files are created without prompt |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1523 if (! settings->value (ed_create_new_file).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1524 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1525 // no, so enable this settings and wait for end of new file loading |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1526 settings->setValue (ed_create_new_file.key, true); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1527 connect (m_editor_window, SIGNAL (file_loaded_signal (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1528 this, SLOT (restore_create_file_setting (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1529 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1530 // start the edit command |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1531 execute_command_in_terminal ("edit " + new_name); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1532 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1533 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1534 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1535 void main_window::handle_edit_mfile_request (const QString& fname, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1536 const QString& ffile, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1537 const QString& curr_dir, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1538 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1539 { |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1540 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1541 ([=] (interpreter& interp) |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1542 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1543 // INTERPRETER THREAD |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1544 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1545 // Split possible subfunctions |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1546 QStringList fcn_list = fname.split ('>'); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1547 QString fcn_name = fcn_list.at (0) + ".m"; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1548 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1549 // FIXME: could use symbol_exist directly, but we may also want |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1550 // to fix that to be a member function in the interpreter |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1551 // class? |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1552 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1553 // Is it a regular function within the search path? (Call Fexist) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1554 octave_value_list fct = Fexist (interp, ovl (fname.toStdString ()),0); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1555 int type = fct (0).int_value (); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1556 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1557 QString message = QString (); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1558 QString filename = QString (); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1559 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1560 switch (type) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1561 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1562 case 3: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1563 case 5: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1564 case 103: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1565 message = tr ("%1 is a built-in, compiled or inline\n" |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1566 "function and can not be edited."); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1567 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1568 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1569 case 2: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1570 // FIXME: could use a load_path function directly. |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1571 octave_value_list file_path |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1572 = Ffile_in_loadpath (interp, ovl (fcn_name.toStdString ()), 0); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1573 if (file_path.length () > 0) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1574 filename = QString::fromStdString (file_path (0).string_value ()); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1575 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1576 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1577 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1578 if (filename.isEmpty () && message.isEmpty ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1579 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1580 // No error so far, but function still not known |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1581 // -> try directory of edited file |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1582 // get directory |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1583 QDir dir; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1584 if (ffile.isEmpty ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1585 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1586 if (curr_dir.isEmpty ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1587 dir = QDir (m_current_directory_combo_box->itemText (0)); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1588 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1589 dir = QDir (curr_dir); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1590 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1591 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1592 dir = QDir (QFileInfo (ffile).canonicalPath ()); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1593 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1594 QFileInfo file = QFileInfo (dir, fcn_name); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1595 if (file.exists ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1596 filename = file.canonicalFilePath (); // local file exists |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1597 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1598 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1599 // local file does not exist -> try private directory |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1600 file = QFileInfo (ffile); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1601 file = QFileInfo (QDir (file.canonicalPath () + "/private"), |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1602 fcn_name); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1603 if (file.exists ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1604 filename = file.canonicalFilePath (); // private function exists |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1605 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1606 message = tr ("Can not find function %1"); // no file found |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1607 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1608 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1609 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1610 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1611 if (! message.isEmpty ()) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1612 { |
27653
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1613 emit warning_function_not_found_signal (message.arg (fname)); |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1614 return; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1615 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1616 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1617 if (! filename.endsWith (".m")) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1618 filename.append (".m"); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1619 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1620 // default encoding |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1621 emit open_file_signal (filename, QString (), line); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1622 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1623 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1624 |
27653
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1625 void main_window::warning_function_not_found (const QString& message) |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1626 { |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1627 QMessageBox *msgBox = new QMessageBox (QMessageBox::Critical, |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1628 tr ("Octave Editor"), |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1629 message, QMessageBox::Ok, this); |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1630 msgBox->setWindowModality (Qt::NonModal); |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1631 msgBox->setAttribute (Qt::WA_DeleteOnClose); |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
1632 msgBox->show (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1633 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1634 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1635 void main_window::handle_insert_debugger_pointer_request (const QString& file, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1636 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1637 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1638 bool cmd_focus = command_window_has_focus (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1639 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1640 emit insert_debugger_pointer_signal (file, line); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1641 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1642 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1643 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1644 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1645 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1646 void main_window::handle_delete_debugger_pointer_request (const QString& file, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1647 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1648 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1649 bool cmd_focus = command_window_has_focus (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1650 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1651 emit delete_debugger_pointer_signal (file, line); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1652 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1653 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1654 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1655 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1656 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1657 void main_window::handle_update_breakpoint_marker_request (bool insert, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1658 const QString& file, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1659 int line, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1660 const QString& cond) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1661 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1662 bool cmd_focus = command_window_has_focus (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1663 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1664 emit update_breakpoint_marker_signal (insert, file, line, cond); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1665 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1666 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1667 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1668 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1669 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1670 void main_window::read_settings (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1671 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1672 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1673 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1674 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1675 if (! settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1676 { |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1677 qDebug ("Error: gui_settings pointer from resource manager is NULL."); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1678 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1679 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1680 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1681 set_window_layout (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1682 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1683 // restore the list of the last directories |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1684 QStringList curr_dirs = settings->value (mw_dir_list).toStringList (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1685 for (int i=0; i < curr_dirs.size (); i++) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1686 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1687 m_current_directory_combo_box->addItem (curr_dirs.at (i)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1688 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1689 emit settings_changed (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1690 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1691 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1692 void main_window::init_terminal_size (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1693 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1694 emit init_terminal_size_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1695 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1696 |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1697 void main_window::set_window_layout (gui_settings *settings) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1698 { |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
1699 // For resetting from some inconsistent state, first reset layout |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
1700 // without saving or showing it |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
1701 do_reset_windows (true, false); |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
1702 |
26299
c95884eed1cf
make restoring gui more robust to changes of desktop size (bug #53207)
Torsten <mttl@mailbox.org>
parents:
26277
diff
changeset
|
1703 // Restore main window state and geometry from settings file or, in case |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1704 // of an error (no pref values yet), from the default layout. |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1705 if (! restoreGeometry (settings->value (mw_geometry).toByteArray ())) |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1706 { |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1707 do_reset_windows (true); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1708 return; |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1709 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1710 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1711 if (isMaximized()) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1712 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1713 setGeometry( QApplication::desktop ()->availableGeometry (this)); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1714 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1715 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1716 if (! restoreState (settings->value (mw_state).toByteArray ())) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1717 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1718 do_reset_windows (true); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1719 return; |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1720 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1721 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1722 // Restore the geometry of all dock-widgets |
29754
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1723 |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
1724 for (auto *widget : dock_widget_list ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1725 { |
29754
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1726 // Leave any widgets that existed before main_window was created |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1727 // as they were. |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1728 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1729 if (widget->adopted ()) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1730 continue; |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1731 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1732 QString name = widget->objectName (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1733 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1734 if (! name.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1735 { |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1736 bool floating = false; |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1737 bool visible = true; |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1738 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1739 floating = settings->value |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1740 (dw_is_floating.key.arg (name), dw_is_floating.def).toBool (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1741 visible = settings->value |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1742 (dw_is_visible.key.arg (name), dw_is_visible.def).toBool (); |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17890
diff
changeset
|
1743 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1744 // If floating, make window from widget. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1745 if (floating) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1746 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1747 widget->make_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1748 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1749 if (visible) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1750 { |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1751 if (settings->value (dw_is_minimized.key.arg (name), |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1752 dw_is_minimized.def).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1753 widget->showMinimized (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1754 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1755 widget->setVisible (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1756 } |
29459
4ae7e80fb7c5
prevent floating widgets from reopening after restart (bug #60279)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29450
diff
changeset
|
1757 else |
4ae7e80fb7c5
prevent floating widgets from reopening after restart (bug #60279)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29450
diff
changeset
|
1758 widget->setVisible (false); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1759 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1760 else // not floating |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1761 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1762 if (! widget->parent ()) // should not be floating but is |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1763 widget->make_widget (false); // no docking, just reparent |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1764 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1765 widget->make_widget (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1766 widget->setVisible (visible); // not floating -> show |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1767 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1768 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1769 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1770 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1771 show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1772 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1773 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1774 void main_window::write_settings (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1775 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1776 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1777 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1778 if (! settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1779 { |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
1780 qDebug ("Error: gui_settings pointer from resource manager is NULL."); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1781 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1782 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1783 |
27562
d7876110e854
use symbolic preference keys if available
John W. Eaton <jwe@octave.org>
parents:
27560
diff
changeset
|
1784 settings->setValue (mw_geometry.key, saveGeometry ()); |
d7876110e854
use symbolic preference keys if available
John W. Eaton <jwe@octave.org>
parents:
27560
diff
changeset
|
1785 settings->setValue (mw_state.key, saveState ()); |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1786 // write the list of recently used directories |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1787 QStringList curr_dirs; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1788 for (int i=0; i<m_current_directory_combo_box->count (); i++) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1789 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1790 curr_dirs.append (m_current_directory_combo_box->itemText (i)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1791 } |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1792 settings->setValue (mw_dir_list.key, curr_dirs); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1793 settings->sync (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1794 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1795 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1796 void main_window::copyClipboard (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1797 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1798 if (m_current_directory_combo_box->hasFocus ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1799 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1800 QLineEdit *edit = m_current_directory_combo_box->lineEdit (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1801 if (edit && edit->hasSelectedText ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1802 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1803 QClipboard *clipboard = QApplication::clipboard (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1804 clipboard->setText (edit->selectedText ()); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1805 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1806 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1807 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1808 emit copyClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1809 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1810 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1811 void main_window::pasteClipboard (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1812 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1813 if (m_current_directory_combo_box->hasFocus ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1814 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1815 QLineEdit *edit = m_current_directory_combo_box->lineEdit (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1816 QClipboard *clipboard = QApplication::clipboard (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1817 QString str = clipboard->text (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1818 if (edit && str.length () > 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1819 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1820 edit->insert (str); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1821 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1822 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1823 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1824 emit pasteClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1825 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1826 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1827 void main_window::selectAll (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1828 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1829 if (m_current_directory_combo_box->hasFocus ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1830 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1831 QLineEdit *edit = m_current_directory_combo_box->lineEdit (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1832 if (edit) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1833 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1834 edit->selectAll (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1835 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1836 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1837 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1838 emit selectAll_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1839 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1840 |
29057
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1841 void main_window::handle_gui_status_update (const QString& feature, |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1842 const QString& status) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1843 { |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1844 // Put actions that are required for updating a gui features here |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1845 |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1846 // Profiler on/off |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1847 if (! feature.compare ("profiler")) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1848 { |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1849 if (! status.compare ("on", Qt::CaseInsensitive)) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1850 handle_profiler_status_update (true); |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1851 else if (! status.compare ("off", Qt::CaseInsensitive)) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1852 handle_profiler_status_update (false); |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1853 } |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1854 } |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1855 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1856 void main_window::handle_octave_ready (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1857 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1858 // actions after the startup files are executed |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1859 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1860 gui_settings *settings = rmgr.get_settings (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1861 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1862 QDir startup_dir = QDir (); // current octave dir after startup |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1863 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1864 if (settings) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1865 { |
29447
f526f28f1aa4
fix crash when gui tries to restore missing previous octave dir (bug #60255)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29358
diff
changeset
|
1866 if (settings->value (global_restore_ov_dir).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1867 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1868 // restore last dir from previous session |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1869 QStringList curr_dirs |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
1870 = settings->value (mw_dir_list).toStringList (); |
29447
f526f28f1aa4
fix crash when gui tries to restore missing previous octave dir (bug #60255)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29358
diff
changeset
|
1871 if (curr_dirs.length () > 0) |
f526f28f1aa4
fix crash when gui tries to restore missing previous octave dir (bug #60255)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29358
diff
changeset
|
1872 startup_dir = QDir (curr_dirs.at (0)); // last dir prev. session |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1873 } |
29447
f526f28f1aa4
fix crash when gui tries to restore missing previous octave dir (bug #60255)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29358
diff
changeset
|
1874 else if (! settings->value (global_ov_startup_dir).toString ().isEmpty ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1875 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1876 // do not restore but there is a startup dir configured |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1877 startup_dir |
29447
f526f28f1aa4
fix crash when gui tries to restore missing previous octave dir (bug #60255)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29358
diff
changeset
|
1878 = QDir (settings->value (global_ov_startup_dir).toString ()); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1879 } |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1880 |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
1881 update_default_encoding (settings->value (ed_default_enc).toString ()); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1882 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1883 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1884 if (! startup_dir.exists ()) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1885 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1886 // the configured startup dir does not exist, take actual one |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1887 startup_dir = QDir (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1888 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1889 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1890 set_current_working_directory (startup_dir.absolutePath ()); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1891 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1892 if (m_editor_window) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1893 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1894 #if defined (HAVE_QSCINTILLA) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1895 // Octave ready, determine whether to create an empty script. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1896 // This can not be done when the editor is created because all functions |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27041
diff
changeset
|
1897 // must be known for the lexer's auto completion information |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1898 m_editor_window->empty_script (true, false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1899 m_editor_window->restore_session (settings); |
18833
6504a1932637
auto completion offers builtins and file functions for octave (bug #41371)
Torsten <ttl@justmail.de>
parents:
18823
diff
changeset
|
1900 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1901 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1902 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1903 if (m_octave_qobj.experimental_terminal_widget ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1904 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1905 // Set initial prompt. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1906 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1907 emit interpreter_event |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1908 ([] (interpreter& interp) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1909 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1910 // INTERPRETER_THREAD |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1911 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1912 event_manager& evmgr = interp.get_event_manager (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1913 input_system& input_sys = interp.get_input_system (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1914 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1915 input_sys.PS1 (">> "); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1916 std::string prompt = input_sys.PS1 (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1917 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1918 evmgr.update_prompt (command_editor::decode_prompt_string (prompt)); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1919 }); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1920 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1921 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1922 focus_command_window (); // make sure that the command window has focus |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1923 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1924 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1925 void main_window::handle_set_path_dialog_request (void) |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1926 { |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1927 if (m_set_path_dlg) // m_set_path_dlg is a guarded pointer! |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1928 return; |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1929 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1930 m_set_path_dlg = new set_path_dialog (this, m_octave_qobj); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1931 |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1932 m_set_path_dlg->setModal (false); |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1933 m_set_path_dlg->setAttribute (Qt::WA_DeleteOnClose); |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1934 m_set_path_dlg->show (); |
27306
82ace1225a9c
update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27302
diff
changeset
|
1935 |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1936 // Any interpreter_event signal from a set_path_dialog object is |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1937 // handled the same as for the main_window object. |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1938 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1939 connect (m_set_path_dlg, QOverload<const fcn_callback&>::of (&set_path_dialog::interpreter_event), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1940 this, QOverload<const fcn_callback&>::of (&main_window::interpreter_event)); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1941 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1942 connect (m_set_path_dlg, QOverload<const meth_callback&>::of (&set_path_dialog::interpreter_event), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1943 this, QOverload<const meth_callback&>::of (&main_window::interpreter_event)); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1944 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1945 connect (m_set_path_dlg, &set_path_dialog::modify_path_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1946 this, &main_window::modify_path); |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
1947 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1948 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1949 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1950 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1951 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1952 connect (qt_link, &qt_interpreter_events::update_path_dialog_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1953 m_set_path_dlg, &set_path_dialog::update_model); |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1954 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1955 // Now that all the signal connections are in place for the dialog |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1956 // we can set the initial value of the path in the model. |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1957 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1958 m_set_path_dlg->update_model (); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1959 } |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1960 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1961 void main_window::find_files (const QString& start_dir) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1962 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1963 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1964 if (! m_find_files_dlg) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1965 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1966 m_find_files_dlg = new find_files_dialog (this, m_octave_qobj); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1967 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1968 connect (m_find_files_dlg, &find_files_dialog::finished, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1969 this, &main_window::find_files_finished); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1970 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1971 connect (m_find_files_dlg, &find_files_dialog::dir_selected, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1972 m_file_browser_window, &files_dock_widget::set_current_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1973 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1974 connect (m_find_files_dlg, &find_files_dialog::file_selected, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1975 this, QOverload<const QString&>::of (&main_window::open_file_signal)); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1976 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1977 m_find_files_dlg->setWindowModality (Qt::NonModal); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1978 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1979 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1980 if (! m_find_files_dlg->isVisible ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1981 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1982 m_find_files_dlg->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1983 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1984 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1985 m_find_files_dlg->set_search_dir (start_dir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1986 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1987 m_find_files_dlg->activateWindow (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1988 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1989 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1990 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1991 void main_window::set_screen_size (int ht, int wd) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1992 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1993 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1994 ([=] (void) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1995 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1996 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1997 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1998 command_editor::set_screen_size (ht, wd); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1999 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2000 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2001 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2002 void main_window::clipboard_has_changed (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2003 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2004 if (m_clipboard->text ().isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2005 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2006 m_paste_action->setEnabled (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2007 m_clear_clipboard_action->setEnabled (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2008 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2009 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2010 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2011 m_paste_action->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2012 m_clear_clipboard_action->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2013 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2014 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2015 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2016 void main_window::clear_clipboard (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2017 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2018 m_clipboard->clear (QClipboard::Clipboard); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2019 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2020 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2021 void main_window::disable_menu_shortcuts (bool disable) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2022 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2023 QHash<QMenu*, QStringList>::const_iterator i = m_hash_menu_text.constBegin (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2024 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2025 while (i != m_hash_menu_text.constEnd ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2026 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2027 i.key ()->setTitle (i.value ().at (disable)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2028 ++i; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2029 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2030 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2031 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2032 void main_window::restore_create_file_setting (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2033 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2034 // restore the new files creation setting |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2035 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2036 gui_settings *settings = rmgr.get_settings (); |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
2037 settings->setValue (ed_create_new_file.key, false); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2038 disconnect (m_editor_window, SIGNAL (file_loaded_signal (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2039 this, SLOT (restore_create_file_setting (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2040 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2041 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2042 void main_window::set_file_encoding (const QString& new_encoding) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2043 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2044 m_file_encoding = new_encoding; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2045 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2046 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2047 // The following slot is called after files have been selected in the |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
2048 // open file dialog, possibly with a new selected encoding stored in |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2049 // m_file_encoding |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2050 void main_window::request_open_files (const QStringList& open_file_names) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2051 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2052 for (int i = 0; i < open_file_names.count (); i++) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2053 emit open_file_signal (open_file_names.at (i), m_file_encoding, -1); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2054 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2055 |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2056 void main_window::profiler_session (void) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2057 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2058 emit interpreter_event |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2059 ([=] (interpreter& interp) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2060 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2061 // INTERPRETER THREAD |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2062 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2063 Ffeval (interp, ovl ("profile","on")); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2064 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2065 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2066 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2067 void main_window::profiler_session_resume (void) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2068 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2069 emit interpreter_event |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2070 ([=] (interpreter& interp) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2071 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2072 // INTERPRETER THREAD |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2073 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2074 Ffeval (interp, ovl ("profile","resume")); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2075 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2076 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2077 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2078 void main_window::profiler_stop (void) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2079 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2080 emit interpreter_event |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2081 ([=] (interpreter& interp) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2082 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2083 // INTERPRETER THREAD |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2084 |
29057
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
2085 Ffeval (interp, ovl ("profile","off")); |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2086 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2087 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2088 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2089 void main_window::handle_profiler_status_update (bool active) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2090 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2091 m_profiler_start->setEnabled (! active); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2092 m_profiler_resume->setEnabled (! active); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2093 m_profiler_stop->setEnabled (active); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2094 |
29061
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
2095 led_indicator::led_state state = led_indicator::LED_STATE_INACTIVE; |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2096 if (active) |
29061
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
2097 state = led_indicator::LED_STATE_ACTIVE; |
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
2098 m_profiler_status_indicator->set_state (state); |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2099 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2100 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2101 void main_window::profiler_show (void) |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2102 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2103 // Do not use a separate interpreter event as in the other |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2104 // profiler slots since the output of the command "profshow" |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2105 // would obscure the prompt and we do not need to emimt a signal |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2106 // for action that is required in the gui after rhe command |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2107 execute_command_in_terminal ("profshow"); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2108 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2109 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2110 void main_window::closeEvent (QCloseEvent *e) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2111 { |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2112 write_settings (); |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2113 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2114 if (confirm_shutdown ()) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2115 { |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2116 // FIXME: Instead of ignoring the event and posting an |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2117 // interpreter event, should we just accept the event and |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2118 // shutdown and clean up the interpreter as part of closing the |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2119 // GUI? Going that route might make it easier to close the GUI |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2120 // without having to stop the interpreter, for example, if the |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2121 // GUI is started from the interpreter command line. |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2122 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2123 e->ignore (); |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2124 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2125 if (m_octave_qobj.experimental_terminal_widget ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2126 emit close_gui_signal (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2127 else |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2128 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2129 emit interpreter_event |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2130 ([] (interpreter& interp) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2131 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2132 // INTERPRETER THREAD |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2133 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2134 interp.quit (0, false, false); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2135 }); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2136 } |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2137 } |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2138 else |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2139 e->ignore (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2140 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2141 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2142 void main_window::construct_central_widget (void) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2143 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2144 // Create and set the central widget. QMainWindow takes ownership of |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2145 // the widget (pointer) so there is no need to delete the object upon |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2146 // destroying this main_window. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2147 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2148 QWidget *dummyWidget = new QWidget (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2149 dummyWidget->setObjectName ("CentralDummyWidget"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2150 dummyWidget->resize (10, 10); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2151 dummyWidget->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2152 dummyWidget->hide (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2153 setCentralWidget (dummyWidget); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2154 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2155 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2156 // Main subroutine of the constructor |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2157 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2158 void main_window::construct (void) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2159 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2160 setWindowIcon (QIcon (":/actions/icons/logo.png")); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2161 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2162 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2163 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2164 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2165 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2166 construct_menu_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2167 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2168 construct_tool_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2169 |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
2170 // FIXME: Is this action intended to be about quitting application |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
2171 // or closing the main window? |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2172 connect (qApp, &QApplication::aboutToQuit, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2173 this, &main_window::prepare_to_exit); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2174 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2175 connect (qApp, &QApplication::focusChanged, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2176 this, &main_window::focus_changed); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2177 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2178 connect (this, &main_window::settings_changed, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2179 this, [=] (const gui_settings *settings) { notice_settings (settings); }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2180 |
27653
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
2181 // Connections for signals from the interpreter thread where the slot |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
2182 // should be executed by the gui thread |
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
2183 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2184 connect (this, &main_window::warning_function_not_found_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2185 this, &main_window::warning_function_not_found); |
27653
3564d3999960
fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27648
diff
changeset
|
2186 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2187 setWindowTitle ("Octave"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2188 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2189 setStatusBar (m_status_bar); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2190 |
27039
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2191 // Signals for removing/renaming files/dirs in the temrinal window |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2192 connect (qt_link, &qt_interpreter_events::file_remove_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2193 this, &main_window::file_remove_proxy); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2194 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2195 connect (this, QOverload<const fcn_callback&>::of (&main_window::interpreter_event), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2196 &m_octave_qobj, QOverload<const fcn_callback&>::of (&base_qobject::interpreter_event)); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2197 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2198 connect (this, QOverload<const meth_callback&>::of (&main_window::interpreter_event), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2199 &m_octave_qobj, QOverload<const meth_callback&>::of (&base_qobject::interpreter_event)); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2200 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2201 configure_shortcuts (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2202 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2203 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2204 void main_window::construct_octave_qt_link (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2205 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2206 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2207 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2208 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2209 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2210 connect (qt_link, &qt_interpreter_events::settings_changed, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2211 this, &main_window::notice_settings); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2212 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2213 connect (qt_link, &qt_interpreter_events::apply_new_settings, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2214 this, &main_window::request_reload_settings); |
27602
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
2215 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2216 connect (qt_link, &qt_interpreter_events::directory_changed_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2217 this, &main_window::update_octave_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2218 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2219 connect (qt_link, &qt_interpreter_events::execute_command_in_terminal_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2220 this, &main_window::execute_command_in_terminal); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2221 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2222 connect (qt_link, &qt_interpreter_events::enter_debugger_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2223 this, &main_window::handle_enter_debugger); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2224 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2225 connect (qt_link, &qt_interpreter_events::exit_debugger_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2226 this, &main_window::handle_exit_debugger); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2227 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2228 connect (qt_link, &qt_interpreter_events::show_preferences_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2229 this, [=] () { process_settings_dialog_request (); }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2230 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2231 connect (qt_link, &qt_interpreter_events::insert_debugger_pointer_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2232 this, &main_window::handle_insert_debugger_pointer_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2233 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2234 connect (qt_link, &qt_interpreter_events::delete_debugger_pointer_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2235 this, &main_window::handle_delete_debugger_pointer_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2236 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2237 connect (qt_link, &qt_interpreter_events::update_breakpoint_marker_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2238 this, &main_window::handle_update_breakpoint_marker_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2239 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2240 connect (qt_link, &qt_interpreter_events::gui_status_update_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2241 this, &main_window::handle_gui_status_update); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2242 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2243 connect (qt_link, &qt_interpreter_events::update_gui_lexer_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2244 this, &main_window::update_gui_lexer_signal); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2245 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2246 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2247 QAction* main_window::add_action (QMenu *menu, const QIcon& icon, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2248 const QString& text, const char *member, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2249 const QWidget *receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2250 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2251 QAction *a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2252 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2253 if (receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2254 a = menu->addAction (icon, text, receiver, member); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2255 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2256 a = menu->addAction (icon, text, this, member); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2257 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2258 addAction (a); // important for shortcut context |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2259 a->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2260 return a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2261 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2262 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2263 QMenu* main_window::m_add_menu (QMenuBar *p, QString name) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2264 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2265 QMenu *menu = p->addMenu (name); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2266 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2267 QString base_name = name; // get a copy |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2268 // replace intended '&' ("&&") by a temp. string |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2269 base_name.replace ("&&", "___octave_amp_replacement___"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2270 // remove single '&' (shortcut) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2271 base_name.remove ("&"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2272 // restore intended '&' |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2273 base_name.replace ("___octave_amp_replacement___", "&&"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2274 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2275 // remember names with and without shortcut |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2276 m_hash_menu_text[menu] = QStringList () << name << base_name; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2277 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2278 return menu; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2279 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2280 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2281 void main_window::construct_menu_bar (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2282 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2283 QMenuBar *menu_bar = menuBar (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2284 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2285 construct_file_menu (menu_bar); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2286 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2287 construct_edit_menu (menu_bar); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2288 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2289 construct_debug_menu (menu_bar); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2290 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2291 construct_tools_menu (menu_bar); |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2292 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2293 construct_window_menu (menu_bar); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2294 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2295 construct_help_menu (menu_bar); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2296 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2297 construct_news_menu (menu_bar); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
2298 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2299 #if defined (HAVE_QSCINTILLA) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2300 // call the editor to add actions which should also be available in the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2301 // editor's menu and tool bar |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2302 QList<QAction*> shared_actions; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2303 shared_actions << m_new_script_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2304 << m_new_function_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2305 << m_open_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2306 << m_find_files_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2307 << m_undo_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2308 << m_copy_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2309 << m_paste_action |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2310 << m_select_all_action; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2311 m_editor_window->insert_global_actions (shared_actions); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
2312 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2313 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2314 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2315 void main_window::construct_file_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2316 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2317 QMenu *file_menu = m_add_menu (p, tr ("&File")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2318 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2319 construct_new_menu (file_menu); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2320 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2321 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2322 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2323 m_open_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2324 file_menu, rmgr.icon ("document-open"), tr ("Open..."), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2325 SLOT (request_open_file (void)), this); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2326 m_open_action->setToolTip (tr ("Open an existing file in editor")); |
16970
78116b88dbf5
enable readline key bindings in terminal widget of gui (bug #36986)
Torsten <ttl@justmail.de>
parents:
16956
diff
changeset
|
2327 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2328 #if defined (HAVE_QSCINTILLA) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2329 file_menu->addMenu (m_editor_window->get_mru_menu ()); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2330 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2331 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2332 file_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2333 |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2334 m_load_workspace_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2335 file_menu, QIcon (), tr ("Load Workspace..."), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2336 SLOT (handle_load_workspace_request (void)), this); |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2337 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2338 m_save_workspace_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2339 file_menu, QIcon (), tr ("Save Workspace As..."), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2340 SLOT (handle_save_workspace_request (void)), this); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2341 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2342 file_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2343 |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2344 m_exit_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2345 file_menu, QIcon (), tr ("Exit"), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2346 SLOT (close (void)), this); |
27118
99adef2c6e10
Enable "Quit" menu item on Mac application menu (bug #56155)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27102
diff
changeset
|
2347 m_exit_action->setMenuRole (QAction::QuitRole); |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2348 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2349 // Connect signal related to opening or creating editor files |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2350 connect (this, SIGNAL (new_file_signal (const QString&)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2351 m_active_editor, SLOT (request_new_file (const QString&))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2352 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2353 connect (this, SIGNAL (open_file_signal (const QString&)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2354 m_active_editor, SLOT (request_open_file (const QString&))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2355 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2356 connect (this, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2357 SIGNAL (open_file_signal (const QString&, const QString&, int)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2358 m_active_editor, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2359 SLOT (request_open_file (const QString&, const QString&, int))); |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2360 } |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2361 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2362 void main_window::construct_new_menu (QMenu *p) |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2363 { |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2364 QMenu *new_menu = p->addMenu (tr ("New")); |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2365 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2366 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2367 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2368 m_new_script_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2369 new_menu, rmgr.icon ("document-new"), tr ("New Script"), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2370 SLOT (request_new_script (void)), this); |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2371 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2372 m_new_function_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2373 new_menu, QIcon (), tr ("New Function..."), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2374 SLOT (request_new_function (void)), this); |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2375 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2376 m_new_figure_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2377 new_menu, QIcon (), tr ("New Figure"), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2378 SLOT (handle_new_figure_request (void)), this); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2379 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2380 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2381 void main_window::construct_edit_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2382 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2383 QMenu *edit_menu = m_add_menu (p, tr ("&Edit")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2384 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2385 QKeySequence ctrl_shift = Qt::ControlModifier + Qt::ShiftModifier; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2386 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2387 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2388 m_undo_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2389 = edit_menu->addAction (rmgr.icon ("edit-undo"), tr ("Undo")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2390 m_undo_action->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2391 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2392 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2393 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2394 m_copy_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2395 = edit_menu->addAction (rmgr.icon ("edit-copy"), tr ("Copy"), this, |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2396 &main_window::copyClipboard); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2397 m_copy_action->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2398 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2399 m_paste_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2400 = edit_menu->addAction (rmgr.icon ("edit-paste"), tr ("Paste"), this, |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2401 &main_window::pasteClipboard); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2402 m_paste_action->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2403 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2404 m_select_all_action |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2405 = edit_menu->addAction (tr ("Select All"), this, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2406 &main_window::selectAll); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2407 m_select_all_action->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2408 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2409 m_clear_clipboard_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2410 = edit_menu->addAction (tr ("Clear Clipboard"), this, |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2411 &main_window::clear_clipboard); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2412 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2413 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2414 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2415 m_find_files_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2416 = edit_menu->addAction (rmgr.icon ("edit-find"), tr ("Find Files...")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2417 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2418 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2419 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2420 m_clear_command_window_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2421 = edit_menu->addAction (tr ("Clear Command Window")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2422 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2423 m_clear_command_history_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2424 = edit_menu->addAction (tr ("Clear Command History")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2425 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2426 m_clear_workspace_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2427 = edit_menu->addAction (tr ("Clear Workspace")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2428 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2429 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2430 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2431 m_set_path_action |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2432 = edit_menu->addAction (tr ("Set Path")); |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2433 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2434 m_preferences_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2435 = edit_menu->addAction (rmgr.icon ("preferences-system"), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2436 tr ("Preferences...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2437 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2438 connect (m_find_files_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2439 this, [=] () { find_files (); }); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2440 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2441 connect (m_clear_command_window_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2442 this, &main_window::handle_clear_command_window_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2443 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2444 connect (m_clear_command_history_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2445 this, &main_window::handle_clear_history_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2446 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2447 connect (m_clear_workspace_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2448 this, &main_window::handle_clear_workspace_request); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2449 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2450 connect (m_clipboard, &QClipboard::dataChanged, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2451 this, &main_window::clipboard_has_changed); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2452 clipboard_has_changed (); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2453 #if defined (Q_OS_WIN32) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2454 // Always enable paste action (unreliable clipboard signals in windows) |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
2455 // FIXME: This has to be removed, when the clipboard signals in windows |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2456 // are working again |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2457 m_paste_action->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2458 m_clear_clipboard_action->setEnabled (true); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2459 #endif |
20039
3538c2824dd8
GUI: Move preferences to edit menu (Bug #44725)
John Donoghue
parents:
19985
diff
changeset
|
2460 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2461 connect (m_preferences_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2462 this, [=] () { process_settings_dialog_request (); }); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2463 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2464 connect (m_set_path_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2465 this, &main_window::handle_set_path_dialog_request); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2466 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2467 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2468 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2469 QAction * main_window::construct_debug_menu_item (const char *icon, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2470 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2471 const char *member) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2472 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2473 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2474 QAction *action = add_action (m_debug_menu, rmgr.icon (QString (icon)), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2475 item, member); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2476 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2477 action->setEnabled (false); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2478 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2479 #if defined (HAVE_QSCINTILLA) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2480 m_editor_window->debug_menu ()->addAction (action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2481 m_editor_window->toolbar ()->addAction (action); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2482 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2483 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2484 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2485 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2486 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2487 void main_window::construct_debug_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2488 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2489 m_debug_menu = m_add_menu (p, tr ("De&bug")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2490 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2491 m_debug_step_over |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2492 = construct_debug_menu_item ("db-step", tr ("Step"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2493 SLOT (debug_step_over (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2494 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2495 m_debug_step_into |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2496 = construct_debug_menu_item ("db-step-in", tr ("Step In"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2497 SLOT (debug_step_into (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2498 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2499 m_debug_step_out |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2500 = construct_debug_menu_item ("db-step-out", tr ("Step Out"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2501 SLOT (debug_step_out (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2502 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2503 m_debug_continue |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2504 = construct_debug_menu_item ("db-cont", tr ("Continue"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2505 SLOT (debug_continue (void))); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2506 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2507 m_debug_menu->addSeparator (); |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2508 #if defined (HAVE_QSCINTILLA) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2509 m_editor_window->debug_menu ()->addSeparator (); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2510 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2511 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2512 m_debug_quit |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2513 = construct_debug_menu_item ("db-stop", tr ("Quit Debug Mode"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2514 SLOT (debug_quit (void))); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2515 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2516 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2517 void main_window::construct_tools_menu (QMenuBar *p) |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2518 { |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2519 QMenu *tools_menu = m_add_menu (p, tr ("&Tools")); |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2520 |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2521 m_profiler_start = add_action (tools_menu, QIcon (), |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2522 tr ("Start &Profiler Session"), SLOT (profiler_session ())); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2523 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2524 m_profiler_resume = add_action (tools_menu, QIcon (), |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2525 tr ("&Resume Profiler Session"), SLOT (profiler_session_resume ())); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2526 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2527 m_profiler_stop = add_action (tools_menu, QIcon (), |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2528 tr ("&Stop Profiler"), SLOT (profiler_stop ())); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2529 m_profiler_stop->setEnabled (false); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2530 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2531 m_profiler_show = add_action (tools_menu, QIcon (), |
29040
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2532 tr ("&Show Profile Data"), SLOT (profiler_show ())); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2533 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2534 |
29439
fe06fafb4cac
fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
2535 void main_window::editor_tabs_changed (bool have_tabs, bool is_octave) |
26873
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2536 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
2537 // Set state of actions which depend on the existence of editor tabs |
26873
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2538 m_editor_has_tabs = have_tabs; |
29439
fe06fafb4cac
fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
2539 m_editor_is_octave_file = is_octave; |
fe06fafb4cac
fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
2540 m_debug_step_over->setEnabled (have_tabs && is_octave); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2541 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2542 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2543 QAction * main_window::construct_window_menu_item (QMenu *p, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2544 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2545 bool checkable, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2546 QWidget *widget) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2547 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2548 QAction *action = p->addAction (QIcon (), item); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2549 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2550 addAction (action); // important for shortcut context |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2551 action->setCheckable (checkable); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2552 action->setShortcutContext (Qt::ApplicationShortcut); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2553 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2554 if (widget) // might be zero for m_editor_window |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2555 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2556 if (checkable) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2557 { |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27041
diff
changeset
|
2558 // action for visibility of dock widget |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2559 connect (action, SIGNAL (toggled (bool)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2560 widget, SLOT (setVisible (bool))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2561 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2562 connect (widget, SIGNAL (active_changed (bool)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2563 action, SLOT (setChecked (bool))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2564 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2565 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2566 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2567 // action for focus of dock widget |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2568 connect (action, SIGNAL (triggered (void)), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2569 widget, SLOT (activate (void))); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2570 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2571 } |
27258
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2572 else |
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2573 { |
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2574 action->setEnabled (false); |
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2575 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2576 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2577 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2578 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2579 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2580 void main_window::construct_window_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2581 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2582 QMenu *window_menu = m_add_menu (p, tr ("&Window")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2583 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2584 m_show_command_window_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2585 (window_menu, tr ("Show Command Window"), true, m_command_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2586 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2587 m_show_history_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2588 (window_menu, tr ("Show Command History"), true, m_history_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2589 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2590 m_show_file_browser_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2591 (window_menu, tr ("Show File Browser"), true, m_file_browser_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2592 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2593 m_show_workspace_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2594 (window_menu, tr ("Show Workspace"), true, m_workspace_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2595 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2596 m_show_editor_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2597 (window_menu, tr ("Show Editor"), true, m_editor_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2598 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2599 m_show_documentation_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2600 (window_menu, tr ("Show Documentation"), true, m_doc_browser_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2601 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2602 m_show_variable_editor_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2603 (window_menu, tr ("Show Variable Editor"), true, m_variable_editor_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2604 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2605 window_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2606 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2607 m_command_window_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2608 (window_menu, tr ("Command Window"), false, m_command_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2609 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2610 m_history_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2611 (window_menu, tr ("Command History"), false, m_history_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2612 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2613 m_file_browser_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2614 (window_menu, tr ("File Browser"), false, m_file_browser_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2615 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2616 m_workspace_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2617 (window_menu, tr ("Workspace"), false, m_workspace_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2618 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2619 m_editor_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2620 (window_menu, tr ("Editor"), false, m_editor_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2621 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2622 m_documentation_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2623 (window_menu, tr ("Documentation"), false, m_doc_browser_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2624 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2625 m_variable_editor_action = construct_window_menu_item |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2626 (window_menu, tr ("Variable Editor"), false, m_variable_editor_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2627 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2628 window_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2629 |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2630 m_previous_dock_action = add_action (window_menu, QIcon (), |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2631 tr ("Previous Widget"), SLOT (go_to_previous_widget (void))); |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2632 |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2633 window_menu->addSeparator (); |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2634 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2635 m_reset_windows_action = add_action (window_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2636 tr ("Reset Default Window Layout"), SLOT (reset_windows (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2637 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2638 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2639 void main_window::construct_help_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2640 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2641 QMenu *help_menu = m_add_menu (p, tr ("&Help")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2642 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2643 construct_documentation_menu (help_menu); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2644 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2645 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2646 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2647 m_report_bug_action = add_action (help_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2648 tr ("Report Bug"), SLOT (open_bug_tracker_page ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2649 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2650 m_octave_packages_action = add_action (help_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2651 tr ("Octave Packages"), SLOT (open_octave_packages_page ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2652 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2653 m_contribute_action = add_action (help_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2654 tr ("Contribute"), SLOT (open_contribute_page ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2655 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2656 m_developer_action = add_action (help_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2657 tr ("Donate to Octave"), SLOT (open_donate_page ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2658 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2659 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2660 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2661 m_about_octave_action = add_action (help_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2662 tr ("About Octave"), SLOT (show_about_octave ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2663 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2664 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2665 void main_window::construct_documentation_menu (QMenu *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2666 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2667 QMenu *doc_menu = p->addMenu (tr ("Documentation")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2668 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2669 m_ondisk_doc_action = add_action (doc_menu, QIcon (), |
27281
0915fec3d3a9
prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27277
diff
changeset
|
2670 tr ("On Disk"), SLOT (activate ()), m_doc_browser_window); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2671 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2672 m_online_doc_action = add_action (doc_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2673 tr ("Online"), SLOT (open_online_documentation_page ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2674 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2675 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2676 void main_window::construct_news_menu (QMenuBar *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2677 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2678 QMenu *news_menu = m_add_menu (p, tr ("&News")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2679 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2680 m_release_notes_action = add_action (news_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2681 tr ("Release Notes"), SLOT (display_release_notes ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2682 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2683 m_current_news_action = add_action (news_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2684 tr ("Community News"), SLOT (load_and_display_community_news ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2685 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2686 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2687 void main_window::construct_tool_bar (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2688 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2689 m_main_tool_bar = addToolBar (tr ("Toolbar")); |
27457
70d9746e9011
smaller toolbars in editor and main window (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
2690 m_main_tool_bar->setStyleSheet (m_main_tool_bar->styleSheet () |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27556
diff
changeset
|
2691 + global_toolbar_style); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2692 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2693 m_main_tool_bar->setObjectName ("MainToolBar"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2694 m_main_tool_bar->addAction (m_new_script_action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2695 m_main_tool_bar->addAction (m_open_action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2696 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2697 m_main_tool_bar->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2698 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2699 m_main_tool_bar->addAction (m_copy_action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2700 m_main_tool_bar->addAction (m_paste_action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2701 m_main_tool_bar->addAction (m_undo_action); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2702 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2703 m_main_tool_bar->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2704 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2705 m_current_directory_combo_box = new QComboBox (this); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2706 QFontMetrics fm = m_current_directory_combo_box->fontMetrics (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2707 m_current_directory_combo_box->setFixedWidth (48*fm.averageCharWidth ()); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2708 m_current_directory_combo_box->setEditable (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2709 m_current_directory_combo_box->setInsertPolicy (QComboBox::NoInsert); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2710 m_current_directory_combo_box->setToolTip (tr ("Enter directory name")); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2711 m_current_directory_combo_box->setMaxVisibleItems (current_directory_max_visible); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2712 m_current_directory_combo_box->setMaxCount (current_directory_max_count); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2713 QSizePolicy sizePol (QSizePolicy::Preferred, QSizePolicy::Preferred); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2714 m_current_directory_combo_box->setSizePolicy (sizePol); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2715 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2716 // addWidget takes ownership of the objects so there is no |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2717 // need to delete these upon destroying this main_window. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2718 m_main_tool_bar->addWidget (new QLabel (tr ("Current Directory: "))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2719 m_main_tool_bar->addWidget (m_current_directory_combo_box); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2720 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2721 QAction *current_dir_up |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2722 = m_main_tool_bar->addAction (rmgr.icon ("go-up"), |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2723 tr ("One directory up")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2724 QAction *current_dir_search |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2725 = m_main_tool_bar->addAction (rmgr.icon ("folder"), |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2726 tr ("Browse directories")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2727 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2728 connect (m_current_directory_combo_box, SIGNAL (activated (const QString&)), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2729 this, SLOT (set_current_working_directory (const QString&))); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2730 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2731 connect (m_current_directory_combo_box->lineEdit (), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2732 &QLineEdit::returnPressed, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2733 this, &main_window::accept_directory_line_edit); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2734 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2735 connect (current_dir_search, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2736 this, &main_window::browse_for_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2737 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2738 connect (current_dir_up, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2739 this, &main_window::change_directory_up); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2740 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2741 connect (m_undo_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2742 this, &main_window::handle_undo_request); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2743 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2744 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2745 void main_window::focus_console_after_command (void) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2746 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2747 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2748 gui_settings *settings = rmgr.get_settings (); |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
2749 if (settings->value (cs_focus_cmd).toBool ()) |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2750 focus_command_window (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2751 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2752 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2753 void main_window::configure_shortcuts (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2754 { |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2755 bool enable |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2756 = ! ((m_active_dock == m_command_window) && m_prevent_readline_conflicts); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2757 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
2758 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager (); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
2759 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2760 // file menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2761 scmgr.set_shortcut (m_open_action, sc_main_file_open_file, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2762 scmgr.set_shortcut (m_new_script_action, sc_main_file_new_file, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2763 scmgr.set_shortcut (m_new_function_action, sc_main_file_new_function, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2764 scmgr.set_shortcut (m_new_figure_action, sc_main_file_new_figure, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2765 scmgr.set_shortcut (m_load_workspace_action, sc_main_file_load_workspace, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2766 scmgr.set_shortcut (m_save_workspace_action, sc_main_file_save_workspace, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2767 scmgr.set_shortcut (m_exit_action, sc_main_file_exit, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2768 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2769 // edit menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2770 scmgr.set_shortcut (m_copy_action, sc_main_edit_copy, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2771 scmgr.set_shortcut (m_paste_action, sc_main_edit_paste, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2772 scmgr.set_shortcut (m_undo_action, sc_main_edit_undo, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2773 scmgr.set_shortcut (m_select_all_action, sc_main_edit_select_all, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2774 scmgr.set_shortcut (m_clear_clipboard_action, sc_main_edit_clear_clipboard, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2775 scmgr.set_shortcut (m_find_files_action, sc_main_edit_find_in_files, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2776 scmgr.set_shortcut (m_clear_command_history_action, sc_main_edit_clear_history, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2777 scmgr.set_shortcut (m_clear_command_window_action, sc_main_edit_clear_command_window, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2778 scmgr.set_shortcut (m_clear_workspace_action, sc_main_edit_clear_workspace, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2779 scmgr.set_shortcut (m_set_path_action, sc_main_edit_set_path, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2780 scmgr.set_shortcut (m_preferences_action, sc_main_edit_preferences, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2781 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2782 // debug menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2783 scmgr.set_shortcut (m_debug_step_over, sc_main_debug_step_over, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2784 scmgr.set_shortcut (m_debug_step_into, sc_main_debug_step_into, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2785 scmgr.set_shortcut (m_debug_step_out, sc_main_debug_step_out, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2786 scmgr.set_shortcut (m_debug_continue, sc_main_debug_continue, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2787 scmgr.set_shortcut (m_debug_quit, sc_main_debug_quit, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2788 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2789 // tools menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2790 scmgr.set_shortcut (m_profiler_start, sc_main_tools_start_profiler, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2791 scmgr.set_shortcut (m_profiler_resume, sc_main_tools_resume_profiler, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2792 scmgr.set_shortcut (m_profiler_stop, sc_main_tools_start_profiler, enable); // same, toggling |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2793 scmgr.set_shortcut (m_profiler_show, sc_main_tools_show_profiler, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2794 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2795 // window menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2796 scmgr.set_shortcut (m_show_command_window_action, sc_main_window_show_command, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2797 scmgr.set_shortcut (m_show_history_action, sc_main_window_show_history, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2798 scmgr.set_shortcut (m_show_workspace_action, sc_main_window_show_workspace, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2799 scmgr.set_shortcut (m_show_file_browser_action, sc_main_window_show_file_browser, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2800 scmgr.set_shortcut (m_show_editor_action, sc_main_window_show_editor, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2801 scmgr.set_shortcut (m_show_documentation_action, sc_main_window_show_doc, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2802 scmgr.set_shortcut (m_show_variable_editor_action, sc_main_window_show_variable_editor, enable); |
29474
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2803 scmgr.set_shortcut (m_reset_windows_action, sc_main_window_reset, enable); |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2804 scmgr.set_shortcut (m_command_window_action, sc_main_window_command, enable); |
29474
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2805 // Switching to the other widgets (including the previous one) is always enabled |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2806 scmgr.set_shortcut (m_history_action, sc_main_window_history, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2807 scmgr.set_shortcut (m_workspace_action, sc_main_window_workspace, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2808 scmgr.set_shortcut (m_file_browser_action, sc_main_window_file_browser, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2809 scmgr.set_shortcut (m_editor_action, sc_main_window_editor, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2810 scmgr.set_shortcut (m_documentation_action, sc_main_window_doc, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2811 scmgr.set_shortcut (m_variable_editor_action, sc_main_window_variable_editor, true); |
34922160bda9
do not disable shortcuts for activating other widgets in console widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29460
diff
changeset
|
2812 scmgr.set_shortcut (m_previous_dock_action, sc_main_window_previous_dock, true); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2813 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2814 // help menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2815 scmgr.set_shortcut (m_ondisk_doc_action, sc_main_help_ondisk_doc, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2816 scmgr.set_shortcut (m_online_doc_action, sc_main_help_online_doc, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2817 scmgr.set_shortcut (m_report_bug_action, sc_main_help_report_bug, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2818 scmgr.set_shortcut (m_octave_packages_action, sc_main_help_packages, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2819 scmgr.set_shortcut (m_contribute_action, sc_main_help_contribute, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2820 scmgr.set_shortcut (m_developer_action, sc_main_help_developer, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2821 scmgr.set_shortcut (m_about_octave_action, sc_main_help_about, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2822 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2823 // news menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2824 scmgr.set_shortcut (m_release_notes_action, sc_main_news_release_notes, enable); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2825 scmgr.set_shortcut (m_current_news_action, sc_main_news_community_news, enable); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2826 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2827 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2828 QList<octave_dock_widget *> main_window::dock_widget_list (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2829 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2830 QList<octave_dock_widget *> list = QList<octave_dock_widget *> (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2831 list.append (static_cast<octave_dock_widget *> (m_command_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2832 list.append (static_cast<octave_dock_widget *> (m_history_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2833 list.append (static_cast<octave_dock_widget *> (m_file_browser_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2834 list.append (static_cast<octave_dock_widget *> (m_doc_browser_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2835 #if defined (HAVE_QSCINTILLA) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2836 list.append (static_cast<octave_dock_widget *> (m_editor_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2837 #endif |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2838 list.append (static_cast<octave_dock_widget *> (m_workspace_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2839 list.append (static_cast<octave_dock_widget *> (m_variable_editor_window)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2840 return list; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2841 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2842 |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2843 void main_window::update_default_encoding (const QString& default_encoding) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2844 { |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2845 m_default_encoding = default_encoding; |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2846 std::string mfile_encoding = m_default_encoding.toStdString (); |
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2847 if (m_default_encoding.startsWith ("SYSTEM", Qt::CaseInsensitive)) |
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2848 mfile_encoding = "SYSTEM"; |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2849 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2850 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
2851 ([=] (interpreter& interp) |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2852 { |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2853 // INTERPRETER THREAD |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2854 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2855 F__mfile_encoding__ (interp, ovl (mfile_encoding)); |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2856 }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2857 } |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2858 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2859 // Get size of screen where the main window is located |
29834
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2860 void main_window::get_screen_geometry (int& width, int& height) |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2861 { |
29834
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2862 QRect screen_geometry = QApplication::desktop ()->availableGeometry (this); |
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2863 |
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2864 width = screen_geometry.width (); |
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2865 height = screen_geometry.height (); |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2866 } |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2867 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2868 void main_window::resize_dock (QDockWidget *dw, int width, int height) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2869 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2870 #if defined (HAVE_QMAINWINDOW_RESIZEDOCKS) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2871 // resizeDockWidget was added to Qt in Qt 5.6 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2872 if (width >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2873 resizeDocks ({dw},{width},Qt::Horizontal); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2874 if (height >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2875 resizeDocks ({dw},{height},Qt::Vertical); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2876 #else |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2877 // This replacement of resizeDockWidget is not very reliable. |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2878 // But even if Qt4 is not yet |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2879 QSize s = dw->widget ()->size (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2880 if (width >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2881 s.setWidth (width); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2882 if (height >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2883 s.setHeight (height); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2884 dw->widget ()->resize (s); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2885 dw->adjustSize (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2886 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2887 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2888 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2889 // The default main window size relative to the desktop size |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2890 void main_window::set_default_geometry () |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2891 { |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2892 int win_x, win_y; |
29834
87925a935c7d
pass arguments by reference to main_window::get_screen_geometry
John W. Eaton <jwe@octave.org>
parents:
29820
diff
changeset
|
2893 get_screen_geometry (win_x, win_y); |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2894 |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2895 move (0, 0); |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2896 resize (2*win_x/3, 7*win_y/8); |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2897 } |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2898 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2899 void main_window::reset_windows (void) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2900 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2901 // Slot for resetting the window layout to the default one |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2902 hide (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2903 showNormal (); // Unmaximize |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2904 do_reset_windows (true, true, true); // Add all widgets |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2905 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2906 // Re-add after giving time: This seems to be a reliable way to |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2907 // reset the main window's layout |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2908 |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2909 // JWE says: The following also works for me with 0 delay, so I |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2910 // think the problem might just be that the event loop needs to run |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2911 // somewhere in the sequence of resizing and adding widgets. Maybe |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2912 // some actions in do_reset_windows should be using signal/slot |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2913 // connections so that the event loop can do what it needs to do. |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2914 // But I haven't been able to find the magic sequence. |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2915 |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2916 QTimer::singleShot (250, this, [=] () { do_reset_windows (true, true, true); }); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2917 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2918 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2919 // Create the default layout of the main window. Do not use |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2920 // restoreState () and restoreGeometry () with default values since |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2921 // this might lead to problems when the Qt version changes |
29754
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2922 void main_window::do_reset_windows (bool show, bool save, bool force_all) |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2923 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2924 // Set main window default geometry and store its width for |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2925 // later resizing the command window |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2926 set_default_geometry (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2927 int win_x = geometry ().width (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2928 |
29535
0b429d1a4974
fix several gui issues (shown with OCTAVE_SHOW_GUI_MESSAGES=1)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29503
diff
changeset
|
2929 // Resize command window (if docked), |
0b429d1a4974
fix several gui issues (shown with OCTAVE_SHOW_GUI_MESSAGES=1)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29503
diff
changeset
|
2930 //the important one in the default layout |
0b429d1a4974
fix several gui issues (shown with OCTAVE_SHOW_GUI_MESSAGES=1)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29503
diff
changeset
|
2931 if (dockWidgetArea (m_command_window) != Qt::NoDockWidgetArea) |
0b429d1a4974
fix several gui issues (shown with OCTAVE_SHOW_GUI_MESSAGES=1)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29503
diff
changeset
|
2932 resize_dock (m_command_window, 7*win_x/8, -1); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2933 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2934 // See Octave bug #53409 and https://bugreports.qt.io/browse/QTBUG-55357 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2935 #if (QT_VERSION < 0x050601) || (QT_VERSION >= 0x050701) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2936 setDockOptions (QMainWindow::AnimatedDocks |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2937 | QMainWindow::AllowNestedDocks |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2938 | QMainWindow::AllowTabbedDocks); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2939 #else |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2940 setDockNestingEnabled (true); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2941 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2942 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2943 // Add the dock widgets and show them |
29754
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2944 if (! m_file_browser_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2945 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2946 // FIXME: Maybe there should be a main_window::add_dock_widget |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2947 // function that combines both of these actions? |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2948 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2949 addDockWidget (Qt::LeftDockWidgetArea, m_file_browser_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2950 m_file_browser_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2951 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2952 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2953 if (! m_workspace_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2954 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2955 addDockWidget (Qt::LeftDockWidgetArea, m_workspace_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2956 m_workspace_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2957 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2958 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2959 if (! m_history_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2960 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2961 addDockWidget (Qt::LeftDockWidgetArea, m_history_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2962 m_history_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2963 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2964 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2965 if (! m_command_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2966 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2967 addDockWidget (Qt::RightDockWidgetArea, m_command_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2968 m_command_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2969 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2970 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2971 if (! m_doc_browser_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2972 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2973 addDockWidget (Qt::RightDockWidgetArea, m_doc_browser_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2974 tabifyDockWidget (m_command_window, m_doc_browser_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2975 m_doc_browser_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2976 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2977 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2978 if (! m_variable_editor_window->adopted () || force_all) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2979 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2980 addDockWidget (Qt::RightDockWidgetArea, m_variable_editor_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2981 tabifyDockWidget (m_command_window, m_variable_editor_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2982 m_variable_editor_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2983 } |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2984 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2985 #if defined (HAVE_QSCINTILLA) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2986 addDockWidget (Qt::RightDockWidgetArea, m_editor_window); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2987 tabifyDockWidget (m_command_window, m_editor_window); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2988 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2989 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2990 // Resize command window, the important one in the default layout |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2991 resize_dock (m_command_window, 2*win_x/3, -1); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2992 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2993 // Show main wibdow, save state and geometry of main window and |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2994 // all dock widgets |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
2995 if (show) |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2996 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2997 // Show all dock widgets |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2998 for (auto *widget : dock_widget_list ()) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2999 widget->show (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3000 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3001 // Show main window and store size and state |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3002 showNormal (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3003 |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3004 if (save) |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3005 { |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3006 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3007 gui_settings *settings = rmgr.get_settings (); |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3008 |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3009 settings->setValue (mw_geometry.key, saveGeometry ()); |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3010 settings->setValue (mw_state.key, saveState ()); |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
3011 } |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3012 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3013 focus_command_window (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3014 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
3015 } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16532
diff
changeset
|
3016 } |