Mercurial > octave
annotate libgui/src/main-window.cc @ 31619:ad014fc78bd6
use individual local gui_settings objects
Previously, we created a single gui_settings object (derived from
QSettings) and accessed it from the resource_manager object. That
design is not necessary and is not the way QSettings was designed to
be used. Instead of managing a single object, we should be using
individual QSettings objects where needed. Each individual QSettings
object manages thread-safe access to a single global collection of
settings. The Qt docs say that operations on QSettings are not thread
safe, but that means that you can't create a QSettings object in one
thread and use it in another without some locking. I'm not sure
whether we were doing that correctly, but with this change it no
longer matters. Each QSettings object does perform locking when
reading or writing the underlying global data.
* resource-manager.h, resource-manager.cc
(resource_manager::m_settings): Delete data member.
(resource_manager::get_settings): Delete.
* annotation-dialog.cc, QTerminal.cc, QTerminal.h, command-widget.cc,
command-widget.h, community-news.cc, dialog.cc,
documentation-bookmarks.cc, documentation-bookmarks.h,
documentation-dock-widget.cc, documentation-dock-widget.h,
documentation.cc, documentation.h, dw-main-window.cc,
dw-main-window.h, external-editor-interface.cc, files-dock-widget.cc,
files-dock-widget.h, find-files-dialog.cc, history-dock-widget.cc,
history-dock-widget.h, file-editor-interface.h, file-editor-tab.cc,
file-editor-tab.h, file-editor.cc, file-editor.h, find-dialog.cc,
octave-qscintilla.cc, main-window.cc, main-window.h, news-reader.cc,
octave-dock-widget.cc, octave-dock-widget.h, qt-interpreter-events.cc,
qt-interpreter-events.h, release-notes.cc, resource-manager.cc,
resource-manager.h, set-path-dialog.cc, settings-dialog.cc,
settings-dialog.h, shortcut-manager.cc, shortcut-manager.h,
terminal-dock-widget.cc, terminal-dock-widget.h, variable-editor.cc,
variable-editor.h, welcome-wizard.cc, workspace-model.cc,
workspace-model.h, workspace-view.cc: Use local gui_settings objects
instead of accessing a pointer to a single gui_settings object owned
by the resource_manager object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 14:23:53 -0500 |
parents | 50a225732661 |
children | 0645ea65ca6b |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30398
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
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> |
38 #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
|
39 #include <QIcon> |
23385
41639665aa34
improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents:
23380
diff
changeset
|
40 #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
|
41 #include <QKeySequence> |
15257
7ee62f559a73
Fix compilation under Windows with GUI and LLVM enabled.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15204
diff
changeset
|
42 #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
|
43 #include <QMenu> |
13501 | 44 #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
|
45 #include <QMessageBox> |
30639
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
46 #include <QScreen> |
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> |
30639
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
54 #include <QWindow> |
16502
45ae1038ee89
allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents:
16499
diff
changeset
|
55 |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
56 // QTerminal includes |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
57 #include "QTerminal.h" |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29786
diff
changeset
|
58 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
59 #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
|
60 # include "file-editor.h" |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31188
diff
changeset
|
61 # include "command-widget.h" |
16290
d07aeecb2d22
build: Add more #ifdefs to build GUI when Qscintilla is not present.
Rik <rik@octave.org>
parents:
16176
diff
changeset
|
62 #endif |
27664
bd7decacf32e
avoid unnecessary includes of gui-preference header files
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27653
diff
changeset
|
63 #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
|
64 #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
|
65 #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
|
66 #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
|
67 #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
|
68 #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
|
69 #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
|
70 #include "gui-settings.h" |
31006
35d37e433532
replace use of depreciated QDesktopWidget in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30743
diff
changeset
|
71 #include "gui-utils.h" |
27196
d993642352d0
rename octave_interpreter object in GUI
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
72 #include "interpreter-qobject.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
73 #include "main-window.h" |
27193
01e73e1664ff
move news reader widget to separate file
John W. Eaton <jwe@octave.org>
parents:
27118
diff
changeset
|
74 #include "news-reader.h" |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27196
diff
changeset
|
75 #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
|
76 #include "octave-qtutils.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
77 #include "settings-dialog.h" |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
18575
diff
changeset
|
78 #include "shortcut-manager.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
79 #include "welcome-wizard.h" |
13501 | 80 |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16460
diff
changeset
|
81 #include "cmd-edit.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
82 #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
|
83 #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
|
84 |
19893
67cb2f421255
restore include statement removed in changeset c7c50030e76c
John W. Eaton <jwe@octave.org>
parents:
19882
diff
changeset
|
85 #include "builtin-defun-decls.h" |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
86 #include "defaults.h" |
23773
5ff24576b783
defer installing qt graphics toolkit until interpreter is ready
John W. Eaton <jwe@octave.org>
parents:
23721
diff
changeset
|
87 #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
|
88 #include "load-path.h" |
29820
fc8571a37d21
main-window.cc: eliminate unneeded header files
John W. Eaton <jwe@octave.org>
parents:
29796
diff
changeset
|
89 #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
|
90 #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
|
91 #include "version.h" |
23380
c319e6d737f2
Backed out changeset 7332287221a9
Torsten <mttl@mailbox.org>
parents:
23379
diff
changeset
|
92 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
93 namespace octave |
23119
3107d3717cc2
refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents:
23092
diff
changeset
|
94 { |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
95 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
|
96 : 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
|
97 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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 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
|
103 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
|
104 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
|
105 m_find_files_dlg (nullptr), m_set_path_dlg (nullptr), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
106 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
|
107 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
|
108 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
|
109 m_suppress_dbg_location (true), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
110 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
|
111 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
112 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
|
113 |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
114 if (rmgr.is_first_run ()) |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
115 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
116 // 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
|
117 m_octave_qobj.config_translators (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
118 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
119 welcome_wizard welcomeWizard (m_octave_qobj); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
120 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
121 if (welcomeWizard.exec () == QDialog::Rejected) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
122 exit (1); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
123 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
124 // 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
|
125 rmgr.reload_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
126 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
127 else |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
128 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
129 // 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
|
130 rmgr.reload_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
131 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
132 // 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
|
133 m_octave_qobj.config_translators (); |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
134 } |
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
135 |
29895
744bb06fea2a
avoid connecting non existing signals from variable editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29853
diff
changeset
|
136 setObjectName (gui_obj_name_main_window); |
744bb06fea2a
avoid connecting non existing signals from variable editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29853
diff
changeset
|
137 |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30745
diff
changeset
|
138 rmgr.config_icon_theme (); |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30745
diff
changeset
|
139 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
140 rmgr.update_network_settings (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
141 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
142 // We provide specific terminal capabilities, so ensure that |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
143 // TERM is always set appropriately. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
144 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
145 #if defined (OCTAVE_USE_WINDOWS_API) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
146 sys::env::putenv ("TERM", "cygwin"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
147 #else |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
148 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
|
149 #endif |
a4c687fec320
gui: set Qt Application and Desktop metadata for desktop integration (bug #53102)
Mike Miller <mtmiller@octave.org>
parents:
25042
diff
changeset
|
150 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
151 // 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
|
152 // 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
|
153 // 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
|
154 // it simpler? |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
155 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
|
156 scmgr.init_data (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
157 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
158 construct_central_widget (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
159 |
29133
0d8e5f890a9b
where possible, allow Qt widgets to delete their children
John W. Eaton <jwe@octave.org>
parents:
29096
diff
changeset
|
160 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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
166 adopt_dock_widgets (); |
29612
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
167 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
168 #if defined (HAVE_QGUIAPPLICATION_SETDESKTOPFILENAME) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
169 QGuiApplication::setDesktopFileName ("org.octave.Octave.desktop"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
170 #endif |
25938
6fec0e305268
Backed out changeset 2ab0a9b66388
John W. Eaton <jwe@octave.org>
parents:
25937
diff
changeset
|
171 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
172 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
|
173 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
174 m_default_style = qapp->style ()->objectName (); |
30965
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
175 m_default_palette = qapp->palette (); |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
176 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
177 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
|
178 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
179 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
|
180 QDateTime last_checked; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
181 int serial = 0; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
182 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
|
183 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
184 connect_to_web = settings.value (nr_allow_connection).toBool (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
185 last_checked = settings.value (nr_last_time).toDateTime (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
186 serial = settings.value (nr_last_news).toInt (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
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 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
|
190 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
|
191 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
192 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
|
193 && (! last_checked.isValid () || one_day_ago > last_checked)) |
29835
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
194 emit show_community_news_signal (serial); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
195 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
196 construct_octave_qt_link (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
197 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
198 // 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
|
199 // octave. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
200 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
201 construct (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
202 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
203 read_settings (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
204 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
205 init_terminal_size (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
206 |
29199
0b18887bc997
simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29148
diff
changeset
|
207 emit init_window_menu (); |
0b18887bc997
simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29148
diff
changeset
|
208 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
209 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
|
210 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
211 |
29836
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
212 main_window::~main_window (void) { } |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29612
diff
changeset
|
213 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
214 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
|
215 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
216 adopt_terminal_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
217 adopt_documentation_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
218 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
|
219 adopt_history_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
220 adopt_workspace_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
221 adopt_editor_widget (); |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
222 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
|
223 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
224 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
|
225 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
226 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
227 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
|
228 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
229 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
|
230 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
231 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
|
232 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
233 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
|
234 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
|
235 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
236 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
|
237 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
238 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
|
239 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
240 // 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
|
241 // 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
|
242 // 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
|
243 // 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
|
244 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
245 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
|
246 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
|
247 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
248 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
|
249 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
|
250 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
251 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
|
252 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
|
253 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
254 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
|
255 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
|
256 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
257 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
|
258 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
|
259 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
260 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
|
261 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
|
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::selectAll_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::selectAll); |
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 (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
|
267 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
|
268 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
269 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
|
270 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
|
271 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
272 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
|
273 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
|
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::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
|
276 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
|
277 } |
31068
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
278 else |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
279 { |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
280 connect (this, &main_window::execute_command_signal, |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
281 m_command_window, &terminal_dock_widget::execute_command_signal); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
282 } |
29788
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 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
285 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
|
286 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
287 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
|
288 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
289 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
|
290 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
291 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
292 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
|
293 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
294 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
|
295 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
296 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
|
297 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
298 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
|
299 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
|
300 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
|
301 &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
|
302 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
|
303 |
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, &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
|
305 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
|
306 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
307 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
|
308 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
|
309 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
310 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
|
311 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
|
312 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
313 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
|
314 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
|
315 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
316 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
|
317 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
|
318 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
319 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
320 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
|
321 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
322 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
|
323 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
324 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
|
325 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
326 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
|
327 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
|
328 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
329 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
|
330 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
|
331 } |
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 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
|
334 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
335 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
|
336 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
337 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
|
338 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
339 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
|
340 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
|
341 } |
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 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
|
344 { |
29853
b918ef934b71
allow building without QScintilla to work again (bug #60879)
John W. Eaton <jwe@octave.org>
parents:
29836
diff
changeset
|
345 interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj (); |
b918ef934b71
allow building without QScintilla to work again (bug #60879)
John W. Eaton <jwe@octave.org>
parents:
29836
diff
changeset
|
346 |
b918ef934b71
allow building without QScintilla to work again (bug #60879)
John W. Eaton <jwe@octave.org>
parents:
29836
diff
changeset
|
347 qt_interpreter_events *qt_link = interp_qobj->qt_link (); |
b918ef934b71
allow building without QScintilla to work again (bug #60879)
John W. Eaton <jwe@octave.org>
parents:
29836
diff
changeset
|
348 |
29788
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 // 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
|
415 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
|
416 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
|
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 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
|
419 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
|
420 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
|
421 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
422 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
|
423 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
|
424 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
425 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
|
426 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
|
427 |
29788
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
428 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
|
429 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
430 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
|
431 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
432 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
|
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_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
|
435 #else |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
436 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
|
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_menubar = nullptr; |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
439 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
440 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
|
441 #endif |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
442 |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
443 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
|
444 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
|
445 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
446 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
447 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
|
448 { |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
449 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
|
450 |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
451 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
|
452 } |
74d5cf382b86
refactor adoption of dock widgets in main window for clarity
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
453 |
29612
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
454 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
|
455 { |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
456 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
|
457 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
|
458 |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
459 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
|
460 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
|
461 |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
462 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
|
463 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
|
464 |
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
465 // 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
|
466 // 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
|
467 // 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
|
468 // 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
|
469 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
|
470 dw, &octave_dock_widget::save_settings); |
30722
0a082e1b7422
fix saving dock widget settings with exp. terminal widget (bug #61996)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30639
diff
changeset
|
471 |
0a082e1b7422
fix saving dock widget settings with exp. terminal widget (bug #61996)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30639
diff
changeset
|
472 // The following is required when the exp. terminal widget is used |
0a082e1b7422
fix saving dock widget settings with exp. terminal widget (bug #61996)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30639
diff
changeset
|
473 // and the main window is closed (no exit via interpreter) |
0a082e1b7422
fix saving dock widget settings with exp. terminal widget (bug #61996)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30639
diff
changeset
|
474 connect (this, &main_window::close_gui_signal, |
0a082e1b7422
fix saving dock widget settings with exp. terminal widget (bug #61996)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30639
diff
changeset
|
475 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
|
476 } |
9c04fea333ca
avoid connecting to parent slots in octave_dock_widget
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
477 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
478 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
|
479 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
480 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
|
481 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
482 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
483 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
|
484 { |
27281
0915fec3d3a9
prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27277
diff
changeset
|
485 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
|
486 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
487 |
27669
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
488 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
|
489 { |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
490 if (win_name == "command") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
491 m_command_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
492 else if (win_name == "history") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
493 m_history_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
494 else if (win_name == "workspace") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
495 m_workspace_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
496 else if (win_name == "filebrowser") |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
497 m_file_browser_window->activate (); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
498 } |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27665
diff
changeset
|
499 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
500 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
|
501 { |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
502 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
|
503 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
504 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
505 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
506 if (settings.value (global_prompt_to_exit.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
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 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
534 || (new_widget == menuBar ()) |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
535 || (new_widget == m_editor_menubar)) |
29085
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 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
643 emit settings_changed (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
644 } |
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 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
|
647 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
648 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
|
649 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
650 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
651 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
|
652 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
653 // 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
|
654 int opts = 0; // No options by default. |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
655 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
656 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
657 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
658 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
|
659 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
660 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
661 QString file |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
662 = 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
|
663 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
|
664 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
665 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
666 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
667 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
668 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
669 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
670 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
671 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
672 Fsave (interp, ovl (file.toStdString ())); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
673 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
674 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
675 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
676 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
677 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
|
678 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
679 // 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
|
680 int opts = 0; // No options by default. |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
681 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
682 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
683 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
684 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
|
685 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
686 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
687 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
|
688 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
689 if (file.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
690 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
|
691 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
|
692 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
693 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
694 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
695 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
696 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
697 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
698 // INTERPRETER THREAD |
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 Fload (interp, ovl (file.toStdString ())); |
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 tree_evaluator& tw = interp.get_evaluator (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
703 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
704 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
|
705 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
706 xevmgr.set_workspace (true, tw.get_symbol_info ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
707 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
708 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
709 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
710 |
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
|
711 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
|
712 { |
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 if (! file_arg.isEmpty ()) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
714 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
715 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
|
716 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
717 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
718 ([=] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
719 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
720 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
721 |
27405
646efbb5f407
avoid including builtin-defun-decls.h unless needed
John W. Eaton <jwe@octave.org>
parents:
27396
diff
changeset
|
722 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
|
723 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
724 // 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
|
725 // variables. |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
726 tree_evaluator& tw = interp.get_evaluator (); |
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
727 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
728 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
|
729 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
730 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
|
731 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
732 } |
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
|
733 } |
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
|
734 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
735 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
|
736 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
737 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
738 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
739 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
740 // INTERPRETER THREAD |
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 Fclear (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
743 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
744 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
745 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
746 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
|
747 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
748 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
749 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
750 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
751 // INTERPRETER THREAD |
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 command_editor::kill_full_line (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
754 command_editor::clear_screen (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
755 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
756 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
757 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
758 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
|
759 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
760 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
761 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
762 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
763 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
764 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
765 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
|
766 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
767 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
|
768 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
769 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
770 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
771 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
|
772 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
773 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
|
774 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
775 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
776 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
777 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
778 // INTERPRETER THREAD |
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 command_editor::undo (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
781 command_editor::redisplay (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
782 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
783 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
784 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
785 emit undo_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
786 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
787 |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
788 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
|
789 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
|
790 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
791 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
792 ([=] (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
|
793 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
794 // INTERPRETER THREAD |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
795 |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
796 octave_value_list paths; |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
797 |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
798 // 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
|
799 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
|
800 { |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
801 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
|
802 |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
803 if (subdirs) |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
804 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
|
805 else |
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29773
diff
changeset
|
806 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
|
807 } |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
808 |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
809 if (rm) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
810 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
|
811 else |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
812 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
|
813 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
814 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
815 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
816 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
|
817 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
818 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
|
819 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
820 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
821 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
|
822 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
823 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
|
824 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
825 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
|
826 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
827 // 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
|
828 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
|
829 // 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
|
830 #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
|
831 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
|
832 #else |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
833 octave_unused_parameter (o); |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
834 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
|
835 #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
|
836 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
837 // 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
|
838 qt_link->unlock (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
839 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
|
840 } |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
841 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
842 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
|
843 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
844 QDesktopServices::openUrl |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
845 (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
|
846 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
847 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
848 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
|
849 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
850 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
|
851 } |
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 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
|
854 { |
31188
be5f23b39ee3
gui: Update Octave Packages menu link (bug #62897).
John Donoghue <john.donoghue@ieee.org>
parents:
31179
diff
changeset
|
855 QDesktopServices::openUrl (QUrl ("https://packages.octave.org/index.html")); |
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
858 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
|
859 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
860 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
|
861 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
862 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
863 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
|
864 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
865 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
|
866 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
867 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
868 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
|
869 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
870 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
|
871 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
872 // 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
|
873 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
|
874 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
|
875 return; |
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 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
878 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
|
879 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
880 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
|
881 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
|
882 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
883 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
|
884 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
|
885 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
|
886 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
887 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
888 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
|
889 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
890 std::string message |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
891 = 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
|
892 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
893 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
|
894 QString::fromStdString (message)); |
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 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
897 void main_window::notice_settings (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
|
898 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
899 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
|
900 |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
901 // 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
|
902 // the desired one is not found |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
903 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
|
904 |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
905 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
|
906 preferred_style = m_default_style; |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
907 |
30965
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
908 QApplication* qapp = m_octave_qobj.qapplication(); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
909 |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
910 if (preferred_style == global_extra_styles.at (EXTRA_STYLE_FUSION_DARK)) |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
911 { |
30965
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
912 QStyle *new_style = QStyleFactory::create (QStringLiteral("Fusion")); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
913 if (new_style) |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
914 qapp->setStyle (new_style); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
915 qapp->setPalette (getFusionDarkPalette()); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
916 qapp->setStyleSheet ("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }"); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
917 } |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
918 else |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
919 { |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
920 QStyle *new_style = QStyleFactory::create (preferred_style); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
921 if (new_style) |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
922 { |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
923 qapp->setPalette (m_default_palette); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
924 qapp->setStyle (new_style); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
925 } |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
926 } |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
927 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
928 // the widget's icons (when floating) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
929 QString icon_set = 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
|
930 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
931 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
|
932 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
|
933 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
934 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
|
935 if (! name.isEmpty ()) |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
936 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
937 // if child has a name |
30964
04601f6c47f4
fix broken icon path after new icon structure in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30811
diff
changeset
|
938 icon = dw_icon_set_names[icon_set]; |
04601f6c47f4
fix broken icon path after new icon structure in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30811
diff
changeset
|
939 if (icon_set != "NONE") |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
940 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
|
941 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
|
942 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
943 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
944 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
945 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
|
946 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
|
947 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
948 QStyle *st = style (); |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
949 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]); |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
950 m_main_tool_bar->setIconSize (QSize (icon_size, icon_size)); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
951 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
952 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
|
953 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
|
954 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
955 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
|
956 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
957 m_prevent_readline_conflicts |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
958 = 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
|
959 |
29084
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
960 m_prevent_readline_conflicts_menu |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
961 = 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
|
962 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
963 m_suppress_dbg_location |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
964 = ! 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
|
965 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
966 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
|
967 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
|
968 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
969 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
|
970 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
971 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
|
972 |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
973 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
|
974 = (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
|
975 || (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
|
976 && (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
|
977 |
2a70a068c4ab
add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
978 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
|
979 |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
980 // 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
|
981 QString new_default_encoding |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
982 = 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
|
983 // 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
|
984 // 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
|
985 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
|
986 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
|
987 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
988 // 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
|
989 // 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
|
990 // 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
|
991 // 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
|
992 bool cursor_blinking; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
993 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
994 if (settings.contains (global_cursor_blinking.key)) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
995 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
|
996 else |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
997 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
|
998 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
999 if (cursor_blinking) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1000 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
|
1001 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1002 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
|
1003 |
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 |
30965
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1006 QPalette main_window::getFusionDarkPalette() |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1007 { |
30966
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1008 QPalette darkPalette; |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1009 darkPalette.setColor(QPalette::Window, QColor(53, 53, 53)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1010 darkPalette.setColor(QPalette::WindowText, Qt::white); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1011 darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(127, 127, 127)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1012 darkPalette.setColor(QPalette::Base, QColor(42, 42, 42)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1013 darkPalette.setColor(QPalette::AlternateBase, QColor(66, 66, 66)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1014 darkPalette.setColor(QPalette::ToolTipBase, Qt::white); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1015 darkPalette.setColor(QPalette::ToolTipText, Qt::white); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1016 darkPalette.setColor(QPalette::Text, Qt::white); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1017 darkPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1018 darkPalette.setColor(QPalette::Dark, QColor(35, 35, 35)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1019 darkPalette.setColor(QPalette::Shadow, QColor(20, 20, 20)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1020 darkPalette.setColor(QPalette::Button, QColor(53, 53, 53)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1021 darkPalette.setColor(QPalette::ButtonText, Qt::white); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1022 darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1023 darkPalette.setColor(QPalette::BrightText, Qt::red); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1024 darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1025 darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1026 darkPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80)); |
5c4d807b3aff
maint: Strip DOS line endings from cset 291994766c55.
Rik <rik@octave.org>
parents:
30965
diff
changeset
|
1027 darkPalette.setColor(QPalette::HighlightedText, Qt::white); |
30965
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1028 darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127)); |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1029 |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1030 return darkPalette; |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1031 } |
291994766c55
add fusion dark style to gui
Farid Partonia <f.partonia@gmail.com>
parents:
30964
diff
changeset
|
1032 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1033 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
|
1034 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1035 // 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
|
1036 // 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
|
1037 // 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
|
1038 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
|
1039 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
|
1040 |
27312
b9a436b0400e
save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27311
diff
changeset
|
1041 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
|
1042 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
|
1043 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1044 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
|
1045 |
3b29d72645a9
fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29084
diff
changeset
|
1046 // 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
|
1047 // 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
|
1048 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
|
1049 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1050 |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1051 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
|
1052 { |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1053 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
|
1054 } |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
1055 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
1056 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
|
1057 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1058 // 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
|
1059 // 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
|
1060 // widget. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1061 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1062 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
|
1063 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1064 if (index >= 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1065 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
|
1066 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1067 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
|
1068 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
|
1069 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1070 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1071 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
|
1072 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1073 // 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
|
1074 int opts = QFileDialog::ShowDirsOnly; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1075 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1076 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1077 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1078 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
|
1079 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1080 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1081 QString dir |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1082 = 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
|
1083 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
|
1084 |
15626
1cc10ce368ea
enable entering a new directory in the current directory combobox
Torsten <ttl@justmail.de>
parents:
15607
diff
changeset
|
1085 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
|
1086 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1087 // 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
|
1088 // 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
|
1089 |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
1090 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
|
1091 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1092 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1093 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
|
1094 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1095 // 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
|
1096 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1097 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
|
1098 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1099 QFileInfo fileInfo (xdir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1100 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1101 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
|
1102 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1103 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1104 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1105 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1106 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1107 |
27408
9b19eec60931
move change directory function to interpreter class
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
1108 interp.chdir (xdir.toStdString ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1109 }); |
25703
7b4e99fbe9d4
include builtin functions without interpreter argument being into octave_cmd
Torsten <mttl@mailbox.org>
parents:
25702
diff
changeset
|
1110 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1111 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1112 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1113 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
|
1114 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1115 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
|
1116 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1117 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1118 // 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
|
1119 // 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
|
1120 // 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
|
1121 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1122 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
|
1123 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1124 // 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
|
1125 // 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
|
1126 // directory. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1127 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1128 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
|
1129 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1130 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
|
1131 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1132 if (index < 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1133 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
|
1134 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1135 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1136 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
|
1137 { |
31068
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1138 if (m_octave_qobj.experimental_terminal_widget ()) |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1139 { |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1140 emit execute_command_signal (command); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1141 } |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1142 else |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1143 { |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1144 emit interpreter_event |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1145 ([=] (void) |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1146 { |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1147 // INTERPRETER THREAD |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1148 |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1149 std::string pending_input = command_editor::get_current_line (); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1150 |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1151 command_editor::set_initial_input (pending_input); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1152 command_editor::replace_line (command.toStdString ()); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1153 command_editor::redisplay (); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1154 command_editor::interrupt_event_loop (); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1155 command_editor::accept_line (); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1156 }); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
1157 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1158 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1159 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
|
1160 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1161 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1162 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
|
1163 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1164 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1165 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1166 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1167 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1168 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1169 QString function_name = info.fileName (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1170 function_name.chop (info.suffix ().length () + 1); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1171 std::string file_path = info.absoluteFilePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1172 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1173 std::string pending_input = command_editor::get_current_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1174 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1175 if (valid_identifier (function_name.toStdString ())) |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1176 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1177 // Valid identifier: call as function with possibility to |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1178 // debug. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1179 |
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
|
1180 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
|
1181 |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1182 std::string path = info.absolutePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1183 |
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
|
1184 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
|
1185 command_editor::replace_line (function_name.toStdString ()); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1186 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1187 else |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1188 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1189 // No valid identifier: use equivalent of Fsource (), no |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1190 // debug possible. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1191 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1192 interp.source_file (file_path); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1193 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1194 command_editor::replace_line (""); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1195 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1196 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1197 command_editor::set_initial_input (pending_input); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1198 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
|
1199 command_editor::interrupt_event_loop (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1200 command_editor::accept_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1201 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1202 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1203 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
|
1204 } |
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 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
|
1207 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1208 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1209 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1210 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1211 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1212 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1213 Fbuiltin (interp, ovl ("figure")); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27312
diff
changeset
|
1214 Fdrawnow (interp); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1215 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1216 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1217 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1218 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
|
1219 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1220 setWindowTitle ("Octave (Debugging)"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1221 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1222 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
|
1223 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
|
1224 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
|
1225 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
|
1226 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
|
1227 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1228 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1229 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
|
1230 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1231 setWindowTitle ("Octave"); |
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 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
|
1234 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
|
1235 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
|
1236 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
|
1237 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
|
1238 } |
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 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
|
1241 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1242 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1243 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1244 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1245 // INTERPRETER THREAD |
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 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
|
1248 Fdbcont (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1249 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1250 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
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::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
|
1255 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1256 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1257 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1258 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1259 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1260 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1261 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
|
1262 Fdbstep (interp, ovl ("in")); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1263 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1264 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1265 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1266 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1267 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1268 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
|
1269 { |
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
|
1270 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
|
1271 { |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1272 // We are in debug mode, just call dbstep. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1273 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1274 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1275 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1276 { |
27393
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
diff
changeset
|
1277 // INTERPRETER THREAD |
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
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 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
|
1280 ovl (m_suppress_dbg_location)); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1281 Fdbstep (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1282 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1283 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1284 }); |
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
|
1285 } |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1286 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
|
1287 { |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1288 // 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
|
1289 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
|
1290 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1291 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1292 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1293 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
|
1294 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1295 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1296 ([=] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1297 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1298 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1299 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1300 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
|
1301 Fdbstep (interp, ovl ("out")); |
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 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1304 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1305 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1306 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1307 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
|
1308 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1309 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1310 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1311 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1312 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1313 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1314 Fdbquit (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1315 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1316 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1317 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1318 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1319 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1320 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1321 // 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
|
1322 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1323 // 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
|
1324 // 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
|
1325 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1326 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
|
1327 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1328 // 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
|
1329 // 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
|
1330 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1331 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1332 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1333 bool is_internal = m_editor_window |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1334 && ! settings.value (global_use_custom_editor.key, |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1335 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
|
1336 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1337 // 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
|
1338 QWidget *p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1339 if (is_internal) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1340 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
|
1341 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
|
1342 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
|
1343 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1344 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
|
1345 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
|
1346 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
|
1347 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
|
1348 |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1349 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1350 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
|
1351 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
|
1352 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1353 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
|
1354 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
|
1355 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1356 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
|
1357 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
|
1358 fileDialog->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1359 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1360 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1361 // 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
|
1362 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
|
1363 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1364 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
|
1365 } |
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 // 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
|
1368 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
|
1369 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1370 bool ok; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1371 // 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
|
1372 // 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
|
1373 // 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
|
1374 QWidget *p = m_editor_window; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1375 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1376 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1377 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1378 if (! p || settings.value (global_use_custom_editor.key, |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27702
diff
changeset
|
1379 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
|
1380 p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1381 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
|
1382 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
|
1383 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1384 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
|
1385 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1386 // 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
|
1387 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
|
1388 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
|
1389 // check whether new files are created without prompt |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1390 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
|
1391 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1392 // no, so enable this settings and wait for end of new file loading |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1393 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
|
1394 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
|
1395 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
|
1396 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1397 // 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
|
1398 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
|
1399 } |
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::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
|
1403 const QString& ffile, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1404 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
|
1405 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1406 { |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1407 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1408 ([=] (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
|
1409 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1410 // INTERPRETER THREAD |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1411 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
1412 // 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
|
1413 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
|
1414 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
|
1415 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1416 // 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
|
1417 // 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
|
1418 // class? |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1419 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1420 // 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
|
1421 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
|
1422 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
|
1423 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1424 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
|
1425 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
|
1426 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1427 switch (type) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1428 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1429 case 3: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1430 case 5: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1431 case 103: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1432 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
|
1433 "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
|
1434 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1435 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1436 case 2: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1437 // 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
|
1438 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
|
1439 = 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
|
1440 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
|
1441 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
|
1442 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1443 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1444 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1445 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
|
1446 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1447 // 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
|
1448 // -> 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
|
1449 // get directory |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1450 QDir dir; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1451 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
|
1452 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1453 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
|
1454 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
|
1455 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1456 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
|
1457 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1458 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1459 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
|
1460 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1461 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
|
1462 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
|
1463 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
|
1464 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1465 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1466 // 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
|
1467 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
|
1468 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
|
1469 fcn_name); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1470 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
|
1471 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
|
1472 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1473 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
|
1474 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1475 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1476 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1477 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1478 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
|
1479 { |
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
|
1480 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
|
1481 return; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1482 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1483 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1484 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
|
1485 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
|
1486 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1487 // default encoding |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1488 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
|
1489 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1490 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1491 |
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
|
1492 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
|
1493 { |
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
|
1494 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
|
1495 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
|
1496 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
|
1497 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
|
1498 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
|
1499 msgBox->show (); |
24715
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 |
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::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
|
1503 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1504 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1505 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
|
1506 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1507 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
|
1508 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1509 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1510 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1511 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1512 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1513 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
|
1514 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1515 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1516 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
|
1517 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1518 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
|
1519 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1520 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1521 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1522 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1523 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1524 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
|
1525 const QString& file, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1526 int line, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1527 const QString& cond) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1528 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1529 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
|
1530 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1531 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
|
1532 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1533 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1534 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1535 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1536 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1537 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
|
1538 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1539 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1540 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1541 set_window_layout (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1542 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1543 // restore the list of the last directories |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1544 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
|
1545 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
|
1546 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1547 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
|
1548 } |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1549 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1550 emit settings_changed (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1551 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1552 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1553 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
|
1554 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1555 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
|
1556 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1557 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1558 void main_window::set_window_layout (void) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1559 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1560 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1561 |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
1562 // 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
|
1563 // 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
|
1564 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
|
1565 |
26299
c95884eed1cf
make restoring gui more robust to changes of desktop size (bug #53207)
Torsten <mttl@mailbox.org>
parents:
26277
diff
changeset
|
1566 // 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
|
1567 // of an error (no pref values yet), from the default layout. |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1568 if (! restoreGeometry (settings.value (mw_geometry).toByteArray ())) |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1569 { |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1570 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
|
1571 return; |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1572 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1573 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1574 if (isMaximized()) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1575 { |
30639
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
1576 // If the window state is restored to maximized layout, the |
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
1577 // horizontal layout is not preserved. This cann be avoided by |
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
1578 // setting the geometry to the max. available geometry. However, on |
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
1579 // X11, the available geometry (excluding task bar etc.) is equal to |
6ad5bb8f6a6d
fix masimized start on systems with two monitors (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
1580 // the total geometry leading to a full screen mode without window |
31179
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1581 // decorations. This in turn can be avoided by explicitly adding |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1582 // a title bar in the window flags. |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1583 |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1584 // Get available geometry for current screen and set this |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1585 // window's geometry to it. |
30743
96f018336be9
* main-window.cc (main_window::set_window_layout): Eliminate unused variable.
John W. Eaton <jwe@octave.org>
parents:
30742
diff
changeset
|
1586 QScreen *s = windowHandle ()->screen (); |
96f018336be9
* main-window.cc (main_window::set_window_layout): Eliminate unused variable.
John W. Eaton <jwe@octave.org>
parents:
30742
diff
changeset
|
1587 QRect av_geom = s->availableGeometry (); |
31179
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1588 setGeometry (av_geom); // Set (correct) available geometry |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1589 |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1590 // Force full title bar |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1591 setWindowFlags(Qt::WindowTitleHint |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1592 | Qt::WindowMinMaxButtonsHint |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1593 | Qt::WindowSystemMenuHint |
a44009224387
ensure window decorations when restoring maximized main window (bug #61172)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
1594 | Qt::WindowCloseButtonHint); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1595 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1596 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1597 if (! restoreState (settings.value (mw_state).toByteArray ())) |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1598 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1599 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
|
1600 return; |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1601 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1602 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1603 // 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
|
1604 |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
1605 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
|
1606 { |
29754
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1607 // 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
|
1608 // as they were. |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1609 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1610 if (widget->adopted ()) |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1611 continue; |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
1612 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1613 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
|
1614 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1615 if (! name.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1616 { |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1617 bool floating = false; |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1618 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
|
1619 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1620 floating = settings.value |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1621 (dw_is_floating.key.arg (name), dw_is_floating.def).toBool (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1622 visible = settings.value |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
1623 (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
|
1624 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1625 // 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
|
1626 if (floating) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1627 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1628 widget->make_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1629 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1630 if (visible) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1631 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1632 if (settings.value (dw_is_minimized.key.arg (name), |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1633 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
|
1634 widget->showMinimized (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1635 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1636 widget->setVisible (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1637 } |
29459
4ae7e80fb7c5
prevent floating widgets from reopening after restart (bug #60279)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29450
diff
changeset
|
1638 else |
4ae7e80fb7c5
prevent floating widgets from reopening after restart (bug #60279)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29450
diff
changeset
|
1639 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
|
1640 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1641 else // not floating |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1642 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1643 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
|
1644 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
|
1645 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1646 widget->make_widget (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1647 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
|
1648 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1649 } |
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1652 show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1653 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1654 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1655 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
|
1656 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1657 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1658 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1659 settings.setValue (mw_geometry.key, saveGeometry ()); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1660 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
|
1661 // 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
|
1662 QStringList curr_dirs; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1663 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
|
1664 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1665 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
|
1666 } |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1667 settings.setValue (mw_dir_list.key, curr_dirs); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1668 settings.sync (); |
24715
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1671 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
|
1672 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1673 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
|
1674 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1675 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
|
1676 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
|
1677 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1678 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
|
1679 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
|
1680 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1681 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1682 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1683 emit copyClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1684 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1685 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1686 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
|
1687 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1688 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
|
1689 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1690 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
|
1691 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
|
1692 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
|
1693 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
|
1694 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1695 edit->insert (str); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1696 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1697 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1698 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1699 emit pasteClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1700 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1701 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1702 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
|
1703 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1704 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
|
1705 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1706 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
|
1707 if (edit) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1708 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1709 edit->selectAll (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1710 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1711 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1712 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1713 emit selectAll_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1714 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1715 |
29057
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1716 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
|
1717 const QString& status) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1718 { |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1719 // 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
|
1720 |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1721 // Profiler on/off |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1722 if (! feature.compare ("profiler")) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1723 { |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1724 if (! status.compare ("on", Qt::CaseInsensitive)) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1725 handle_profiler_status_update (true); |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1726 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
|
1727 handle_profiler_status_update (false); |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1728 } |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1729 } |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1730 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1731 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
|
1732 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1733 // actions after the startup files are executed |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1734 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1735 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
|
1736 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1737 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
|
1738 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1739 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
|
1740 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1741 // restore last dir from previous session |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1742 QStringList curr_dirs |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1743 = settings.value (mw_dir_list).toStringList (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1744 if (curr_dirs.length () > 0) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1745 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
|
1746 } |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1747 else if (! settings.value (global_ov_startup_dir).toString ().isEmpty ()) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1748 { |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1749 // do not restore but there is a startup dir configured |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1750 startup_dir |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1751 = QDir (settings.value (global_ov_startup_dir).toString ()); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1752 } |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1753 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1754 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
|
1755 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1756 if (! startup_dir.exists ()) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1757 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1758 // 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
|
1759 startup_dir = QDir (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1760 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1761 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1762 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
|
1763 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1764 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
|
1765 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1766 #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
|
1767 // 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
|
1768 // 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
|
1769 // 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
|
1770 m_editor_window->empty_script (true, false); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1771 m_editor_window->restore_session (); |
18833
6504a1932637
auto completion offers builtins and file functions for octave (bug #41371)
Torsten <ttl@justmail.de>
parents:
18823
diff
changeset
|
1772 #endif |
24715
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 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1775 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
|
1776 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1777 // Set initial prompt. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1778 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1779 emit interpreter_event |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1780 ([] (interpreter& interp) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1781 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1782 // INTERPRETER_THREAD |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1783 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1784 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
|
1785 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
|
1786 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1787 input_sys.PS1 (">> "); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1788 std::string prompt = input_sys.PS1 (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1789 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1790 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
|
1791 }); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1792 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
1793 |
31067
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31009
diff
changeset
|
1794 m_command_window->init_command_prompt (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1795 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
|
1796 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1797 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1798 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
|
1799 { |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1800 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
|
1801 return; |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1802 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1803 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
|
1804 |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1805 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
|
1806 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
|
1807 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
|
1808 |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1809 // 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
|
1810 // 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
|
1811 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1812 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
|
1813 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
|
1814 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1815 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
|
1816 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
|
1817 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1818 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
|
1819 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
|
1820 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1821 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
|
1822 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1823 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
|
1824 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1825 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
|
1826 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
|
1827 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1828 // 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
|
1829 // 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
|
1830 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1831 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
|
1832 } |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1833 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1834 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
|
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 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
|
1838 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
1839 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
|
1840 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1841 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
|
1842 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
|
1843 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1844 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
|
1845 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
|
1846 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
1847 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
|
1848 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
|
1849 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1850 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
|
1851 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1852 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1853 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
|
1854 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1855 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
|
1856 } |
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 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
|
1859 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1860 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
|
1861 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1862 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1863 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1864 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
|
1865 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1866 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
1867 ([=] (void) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1868 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1869 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1870 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1871 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
|
1872 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1873 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1874 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1875 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
|
1876 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1877 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
|
1878 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1879 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
|
1880 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
|
1881 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1882 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1883 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1884 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
|
1885 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
|
1886 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1887 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1888 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1889 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
|
1890 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1891 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
|
1892 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1893 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1894 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
|
1895 { |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
1896 QHash<QMenu *, QStringList>::const_iterator i = m_hash_menu_text.constBegin (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1897 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1898 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
|
1899 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1900 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
|
1901 ++i; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1902 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1903 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1904 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1905 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
|
1906 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1907 // restore the new files creation setting |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1908 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1909 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1910 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
1911 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
|
1912 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
|
1913 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
|
1914 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1915 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1916 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
|
1917 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1918 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
|
1919 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1920 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1921 // 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
|
1922 // 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
|
1923 // m_file_encoding |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1924 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
|
1925 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1926 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
|
1927 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
|
1928 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1929 |
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
|
1930 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
|
1931 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1932 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
|
1933 ([=] (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
|
1934 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1935 // 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
|
1936 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1937 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
|
1938 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1939 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1940 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1941 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
|
1942 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1943 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
|
1944 ([=] (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
|
1945 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1946 // 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
|
1947 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1948 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
|
1949 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1950 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1951 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1952 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
|
1953 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1954 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
|
1955 ([=] (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
|
1956 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1957 // 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
|
1958 |
29057
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29040
diff
changeset
|
1959 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
|
1960 }); |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1961 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1962 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1963 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
|
1964 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1965 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
|
1966 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
|
1967 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
|
1968 |
29061
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
1969 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
|
1970 if (active) |
29061
8a425e771aa7
use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29057
diff
changeset
|
1971 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
|
1972 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
|
1973 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1974 |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1975 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
|
1976 { |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1977 // 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
|
1978 // 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
|
1979 // 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
|
1980 // 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
|
1981 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
|
1982 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
1983 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1984 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
|
1985 { |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
1986 write_settings (); |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
1987 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
1988 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
|
1989 { |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
1990 // 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
|
1991 // 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
|
1992 // 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
|
1993 // 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
|
1994 // 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
|
1995 // 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
|
1996 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
1997 e->ignore (); |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
1998 |
30740
d6ca77706ab3
shutdown via interpreter with experimental terminal in gui mode (bug #61994)
John W. Eaton <jwe@octave.org>
parents:
30722
diff
changeset
|
1999 if (m_octave_qobj.experimental_terminal_widget () |
d6ca77706ab3
shutdown via interpreter with experimental terminal in gui mode (bug #61994)
John W. Eaton <jwe@octave.org>
parents:
30722
diff
changeset
|
2000 && ! m_octave_qobj.is_gui_app ()) |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2001 emit close_gui_signal (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2002 else |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2003 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2004 emit interpreter_event |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2005 ([] (interpreter& interp) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2006 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2007 // INTERPRETER THREAD |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2008 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2009 interp.quit (0, false, false); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2010 }); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29474
diff
changeset
|
2011 } |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2012 } |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2013 else |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
2014 e->ignore (); |
24715
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 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2017 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
|
2018 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2019 // 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
|
2020 // 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
|
2021 // 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
|
2022 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2023 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
|
2024 dummyWidget->setObjectName ("CentralDummyWidget"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2025 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
|
2026 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
|
2027 dummyWidget->hide (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2028 setCentralWidget (dummyWidget); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2029 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2030 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2031 // Main subroutine of the constructor |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2032 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2033 void main_window::construct (void) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2034 { |
30964
04601f6c47f4
fix broken icon path after new icon structure in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30811
diff
changeset
|
2035 setWindowIcon (QIcon (dw_icon_set_names["NONE"])); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2036 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2037 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
|
2038 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2039 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
|
2040 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2041 construct_menu_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2042 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2043 construct_tool_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2044 |
29796
a0fce019cd1f
additional reorganization of signal/slot connections in main_window class
John W. Eaton <jwe@octave.org>
parents:
29788
diff
changeset
|
2045 // 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
|
2046 // 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
|
2047 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
|
2048 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
|
2049 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2050 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
|
2051 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
|
2052 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2053 // Default argument requires wrapper. |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2054 connect (this, &main_window::settings_changed, |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2055 this, [=] () { notice_settings (); }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2056 |
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
|
2057 // 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
|
2058 // 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
|
2059 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2060 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
|
2061 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
|
2062 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2063 setWindowTitle ("Octave"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2064 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2065 setStatusBar (m_status_bar); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2066 |
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
|
2067 // 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
|
2068 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
|
2069 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
|
2070 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2071 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
|
2072 &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
|
2073 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2074 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
|
2075 &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
|
2076 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2077 configure_shortcuts (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2078 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2079 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2080 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
|
2081 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2082 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
|
2083 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2084 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
|
2085 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2086 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
|
2087 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
|
2088 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2089 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
|
2090 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
|
2091 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2092 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
|
2093 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
|
2094 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2095 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
|
2096 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
|
2097 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2098 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
|
2099 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
|
2100 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2101 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
|
2102 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
|
2103 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2104 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
|
2105 this, [=] () { process_settings_dialog_request (); }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2106 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2107 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
|
2108 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
|
2109 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2110 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
|
2111 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
|
2112 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2113 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
|
2114 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
|
2115 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2116 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
|
2117 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
|
2118 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2119 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
|
2120 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
|
2121 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2122 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2123 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
|
2124 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
|
2125 const QWidget *receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2126 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2127 QAction *a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2128 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2129 if (receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2130 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
|
2131 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2132 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
|
2133 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2134 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
|
2135 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
|
2136 return a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2137 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2138 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2139 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
|
2140 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2141 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
|
2142 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2143 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
|
2144 // 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
|
2145 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
|
2146 // remove single '&' (shortcut) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2147 base_name.remove ("&"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2148 // restore intended '&' |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2149 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
|
2150 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2151 // remember names with and without shortcut |
31599
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2152 m_hash_menu_text[menu] = QStringList ({ name, base_name }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2153 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2154 return menu; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2155 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2156 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2157 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
|
2158 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2159 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
|
2160 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2161 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
|
2162 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2163 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
|
2164 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2165 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
|
2166 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2167 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
|
2168 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2169 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
|
2170 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2171 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
|
2172 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2173 construct_news_menu (menu_bar); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
2174 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2175 #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
|
2176 // 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
|
2177 // editor's menu and tool bar |
31599
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2178 QList<QAction *> shared_actions = { |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2179 m_new_script_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2180 m_new_function_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2181 m_open_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2182 m_find_files_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2183 m_undo_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2184 m_copy_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2185 m_paste_action, |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2186 m_select_all_action |
50a225732661
use initializer lists instead of insertion operators
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
2187 }; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2188 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
|
2189 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2190 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2191 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2192 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
|
2193 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2194 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
|
2195 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2196 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
|
2197 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2198 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
|
2199 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2200 m_open_action = add_action ( |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
2201 file_menu, rmgr.icon ("document-open"), tr ("Open..."), |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
2202 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
|
2203 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
|
2204 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2205 #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
|
2206 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
|
2207 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2208 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2209 file_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2210 |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2211 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
|
2212 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
|
2213 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
|
2214 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2215 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
|
2216 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
|
2217 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
|
2218 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2219 file_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2220 |
29200
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2221 m_exit_action = add_action ( |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2222 file_menu, QIcon (), tr ("Exit"), |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2223 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
|
2224 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
|
2225 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2226 // 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
|
2227 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
|
2228 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
|
2229 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2230 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
|
2231 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
|
2232 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2233 connect (this, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2234 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
|
2235 m_active_editor, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2236 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
|
2237 } |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2238 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2239 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
|
2240 { |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2241 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
|
2242 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2243 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
|
2244 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2245 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
|
2246 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
|
2247 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
|
2248 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2249 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
|
2250 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
|
2251 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
|
2252 |
6e0952fa5a4f
removing obsolete code for some main window menus
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29199
diff
changeset
|
2253 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
|
2254 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
|
2255 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
|
2256 } |
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 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
|
2259 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2260 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
|
2261 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2262 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
|
2263 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2264 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
|
2265 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
|
2266 = 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
|
2267 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
|
2268 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2269 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2270 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2271 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
|
2272 = 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
|
2273 &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
|
2274 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
|
2275 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2276 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
|
2277 = 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
|
2278 &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
|
2279 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
|
2280 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2281 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
|
2282 = 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
|
2283 &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
|
2284 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
|
2285 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2286 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
|
2287 = 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
|
2288 &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
|
2289 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2290 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2291 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2292 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
|
2293 = 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
|
2294 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2295 edit_menu->addSeparator (); |
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 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
|
2298 = 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
|
2299 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2300 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
|
2301 = 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
|
2302 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2303 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
|
2304 = 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
|
2305 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2306 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2307 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2308 m_set_path_action |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2309 = 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
|
2310 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2311 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
|
2312 = 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
|
2313 tr ("Preferences...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2314 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2315 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
|
2316 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
|
2317 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2318 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
|
2319 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
|
2320 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2321 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
|
2322 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
|
2323 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2324 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
|
2325 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
|
2326 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2327 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
|
2328 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
|
2329 clipboard_has_changed (); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2330 #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
|
2331 // 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
|
2332 // 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
|
2333 // are working again |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2334 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
|
2335 m_clear_clipboard_action->setEnabled (true); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2336 #endif |
20039
3538c2824dd8
GUI: Move preferences to edit menu (Bug #44725)
John Donoghue
parents:
19985
diff
changeset
|
2337 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2338 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
|
2339 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
|
2340 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2341 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
|
2342 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
|
2343 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2344 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2345 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2346 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
|
2347 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2348 const char *member) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2349 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
2350 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
|
2351 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
|
2352 item, member); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2353 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2354 action->setEnabled (false); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2355 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2356 #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
|
2357 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
|
2358 m_editor_window->toolbar ()->addAction (action); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2359 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2360 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2361 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2362 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2363 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2364 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
|
2365 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2366 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
|
2367 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2368 m_debug_step_over |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2369 = 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
|
2370 SLOT (debug_step_over (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2371 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2372 m_debug_step_into |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2373 = 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
|
2374 SLOT (debug_step_into (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2375 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2376 m_debug_step_out |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2377 = 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
|
2378 SLOT (debug_step_out (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2379 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2380 m_debug_continue |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2381 = 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
|
2382 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
|
2383 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2384 m_debug_menu->addSeparator (); |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2385 #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
|
2386 m_editor_window->debug_menu ()->addSeparator (); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2387 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2388 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2389 m_debug_quit |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2390 = 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
|
2391 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
|
2392 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2393 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2394 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
|
2395 { |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2396 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
|
2397 |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2398 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
|
2399 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
|
2400 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2401 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
|
2402 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
|
2403 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2404 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
|
2405 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
|
2406 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
|
2407 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2408 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
|
2409 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
|
2410 } |
05b8ad7b67e8
gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
2411 |
29439
fe06fafb4cac
fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
2412 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
|
2413 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
2414 // 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
|
2415 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
|
2416 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
|
2417 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
|
2418 } |
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 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
|
2421 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2422 bool checkable, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2423 QWidget *widget) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2424 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2425 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
|
2426 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2427 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
|
2428 action->setCheckable (checkable); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2429 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
|
2430 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2431 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
|
2432 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2433 if (checkable) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2434 { |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27041
diff
changeset
|
2435 // 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
|
2436 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
|
2437 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
|
2438 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2439 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
|
2440 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
|
2441 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2442 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2443 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2444 // 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
|
2445 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
|
2446 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
|
2447 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2448 } |
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
|
2449 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
|
2450 { |
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2451 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
|
2452 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2453 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2454 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2455 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2456 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2457 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
|
2458 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2459 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
|
2460 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2461 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
|
2462 (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
|
2463 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2464 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
|
2465 (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
|
2466 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2467 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
|
2468 (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
|
2469 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2470 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
|
2471 (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
|
2472 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2473 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
|
2474 (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
|
2475 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2476 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
|
2477 (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
|
2478 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2479 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
|
2480 (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
|
2481 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2482 window_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2483 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2484 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
|
2485 (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
|
2486 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2487 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
|
2488 (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
|
2489 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2490 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
|
2491 (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
|
2492 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2493 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
|
2494 (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
|
2495 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2496 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
|
2497 (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
|
2498 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2499 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
|
2500 (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
|
2501 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2502 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
|
2503 (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
|
2504 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2505 window_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2506 |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2507 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
|
2508 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
|
2509 |
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27849
diff
changeset
|
2510 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
|
2511 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2512 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
|
2513 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
|
2514 } |
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 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
|
2517 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2518 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
|
2519 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2520 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
|
2521 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2522 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2523 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2524 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
|
2525 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
|
2526 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2527 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
|
2528 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
|
2529 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2530 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
|
2531 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
|
2532 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2533 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
|
2534 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
|
2535 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2536 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2537 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2538 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
|
2539 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
|
2540 } |
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 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
|
2543 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2544 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
|
2545 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2546 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
|
2547 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
|
2548 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2549 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
|
2550 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
|
2551 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2552 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2553 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
|
2554 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2555 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
|
2556 |
29836
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2557 m_release_notes_action |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2558 = news_menu->addAction (QIcon (), tr ("Release Notes"), |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2559 [=] () { |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2560 emit show_release_notes_signal (); |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2561 }); |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2562 addAction (m_release_notes_action); |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2563 m_release_notes_action->setShortcutContext (Qt::ApplicationShortcut); |
56465c0739fa
allow release notes window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29835
diff
changeset
|
2564 |
29835
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2565 m_current_news_action |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2566 = news_menu->addAction (QIcon (), tr ("Community News"), |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2567 [=] () { |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2568 emit show_community_news_signal (-1); |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2569 }); |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2570 addAction (m_current_news_action); |
a946d742fb97
allow community news window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29834
diff
changeset
|
2571 m_current_news_action->setShortcutContext (Qt::ApplicationShortcut); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2572 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2573 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2574 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
|
2575 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2576 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
|
2577 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
|
2578 + 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
|
2579 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2580 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
|
2581 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
|
2582 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
|
2583 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2584 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
|
2585 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2586 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
|
2587 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
|
2588 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
|
2589 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2590 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
|
2591 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2592 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
|
2593 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
|
2594 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
|
2595 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
|
2596 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
|
2597 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
|
2598 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
|
2599 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
|
2600 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
|
2601 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
|
2602 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2603 // 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
|
2604 // 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
|
2605 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
|
2606 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
|
2607 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
|
2608 QAction *current_dir_up |
30811
0e88072e8265
use go-up icon as fallback for non-standard icon folder-up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30772
diff
changeset
|
2609 = m_main_tool_bar->addAction (rmgr.icon ("folder-up", false, "go-up"), |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2610 tr ("One directory up")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2611 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
|
2612 = 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
|
2613 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
|
2614 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2615 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
|
2616 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
|
2617 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2618 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
|
2619 &QLineEdit::returnPressed, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2620 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
|
2621 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2622 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
|
2623 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
|
2624 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2625 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
|
2626 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
|
2627 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29535
diff
changeset
|
2628 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
|
2629 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
|
2630 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2631 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2632 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
|
2633 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2634 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2635 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2636 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
|
2637 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
|
2638 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2639 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2640 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
|
2641 { |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2642 bool enable |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2643 = ! ((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
|
2644 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
2645 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
|
2646 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2647 // file menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2648 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
|
2649 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
|
2650 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
|
2651 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
|
2652 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
|
2653 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
|
2654 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
|
2655 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2656 // edit menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2657 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
|
2658 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
|
2659 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
|
2660 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
|
2661 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
|
2662 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
|
2663 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
|
2664 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
|
2665 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
|
2666 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
|
2667 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
|
2668 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2669 // debug menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2670 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
|
2671 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
|
2672 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
|
2673 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
|
2674 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
|
2675 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29061
diff
changeset
|
2676 // tools menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2677 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
|
2678 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
|
2679 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
|
2680 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
|
2681 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2682 // window menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2683 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
|
2684 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
|
2685 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
|
2686 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
|
2687 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
|
2688 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
|
2689 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
|
2690 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
|
2691 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
|
2692 // 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
|
2693 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
|
2694 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
|
2695 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
|
2696 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
|
2697 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
|
2698 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
|
2699 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
|
2700 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2701 // help menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2702 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
|
2703 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
|
2704 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
|
2705 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
|
2706 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
|
2707 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
|
2708 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
|
2709 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2710 // news menu |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29200
diff
changeset
|
2711 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
|
2712 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
|
2713 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2714 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2715 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
|
2716 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2717 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
|
2718 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
|
2719 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
|
2720 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
|
2721 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
|
2722 #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
|
2723 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
|
2724 #endif |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2725 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
|
2726 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
|
2727 return list; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2728 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2729 |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2730 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
|
2731 { |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2732 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
|
2733 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
|
2734 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
|
2735 mfile_encoding = "SYSTEM"; |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2736 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2737 emit interpreter_event |
28851
1ac5a76ae91d
use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents:
28847
diff
changeset
|
2738 ([=] (interpreter& interp) |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2739 { |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2740 // INTERPRETER THREAD |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2741 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2742 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
|
2743 }); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2744 } |
29144
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2745 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2746 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
|
2747 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2748 #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
|
2749 // 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
|
2750 if (width >= 0) |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
2751 resizeDocks ({dw}, {width}, Qt::Horizontal); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2752 if (height >= 0) |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29895
diff
changeset
|
2753 resizeDocks ({dw}, {height}, Qt::Vertical); |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2754 #else |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2755 // 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
|
2756 // 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
|
2757 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
|
2758 if (width >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2759 s.setWidth (width); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2760 if (height >= 0) |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2761 s.setHeight (height); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2762 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
|
2763 dw->adjustSize (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2764 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2765 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2766 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2767 // 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
|
2768 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
|
2769 { |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2770 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
|
2771 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
|
2772 |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2773 move (0, 0); |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2774 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
|
2775 } |
7220b59c490b
clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29095
diff
changeset
|
2776 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2777 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
|
2778 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2779 // 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
|
2780 hide (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2781 showNormal (); // Unmaximize |
29761
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2782 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
|
2783 |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2784 // 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
|
2785 // 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
|
2786 |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2787 // 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
|
2788 // 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
|
2789 // 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
|
2790 // 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
|
2791 // 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
|
2792 // 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
|
2793 |
3b5ffc4c70e9
more tweaks for main window and dock widget settings
John W. Eaton <jwe@octave.org>
parents:
29760
diff
changeset
|
2794 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
|
2795 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2796 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2797 // 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
|
2798 // 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
|
2799 // 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
|
2800 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
|
2801 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2802 // 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
|
2803 // 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
|
2804 set_default_geometry (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2805 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
|
2806 |
29535
0b429d1a4974
fix several gui issues (shown with OCTAVE_SHOW_GUI_MESSAGES=1)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29503
diff
changeset
|
2807 // 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
|
2808 //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
|
2809 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
|
2810 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
|
2811 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2812 // 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
|
2813 #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
|
2814 setDockOptions (QMainWindow::AnimatedDocks |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2815 | QMainWindow::AllowNestedDocks |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2816 | QMainWindow::AllowTabbedDocks); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2817 #else |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2818 setDockNestingEnabled (true); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2819 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2820 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2821 // 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
|
2822 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
|
2823 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2824 // 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
|
2825 // 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
|
2826 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2827 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
|
2828 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
|
2829 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2830 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2831 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
|
2832 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2833 addDockWidget (Qt::LeftDockWidgetArea, m_workspace_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2834 m_workspace_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2835 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2836 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2837 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
|
2838 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2839 addDockWidget (Qt::LeftDockWidgetArea, m_history_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2840 m_history_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2841 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2842 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2843 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
|
2844 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2845 addDockWidget (Qt::RightDockWidgetArea, m_command_window); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2846 m_command_window->set_adopted (false); |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2847 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2848 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2849 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
|
2850 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2851 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
|
2852 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
|
2853 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
|
2854 } |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2855 |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2856 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
|
2857 { |
4c569e386e9b
improve behavior of dockable widgets (bug #60750)
John W. Eaton <jwe@octave.org>
parents:
29749
diff
changeset
|
2858 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
|
2859 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
|
2860 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
|
2861 } |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2862 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2863 #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
|
2864 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
|
2865 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
|
2866 #endif |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2867 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2868 // 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
|
2869 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
|
2870 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2871 // 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
|
2872 // 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
|
2873 if (show) |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2874 { |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2875 // 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
|
2876 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
|
2877 widget->show (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2878 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2879 // 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
|
2880 showNormal (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2881 |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
2882 if (save) |
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
2883 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2884 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2885 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2886 settings.setValue (mw_geometry.key, saveGeometry ()); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31599
diff
changeset
|
2887 settings.setValue (mw_state.key, saveState ()); |
29450
6448a10a642a
fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29447
diff
changeset
|
2888 } |
29147
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2889 |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2890 focus_command_window (); |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2891 } |
5d7a651bf0bb
fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29144
diff
changeset
|
2892 } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16532
diff
changeset
|
2893 } |