Mercurial > octave
annotate libgui/src/main-window.cc @ 27556:410622ac120f
improve run selection from editor (bug #42705)
* file-editor-tab.cc (file_editor_tab): relay interpreter event signals
to the ones of the editor widget
* file-editor.cc (make_file_editor_tab): connect signal of edit area for
giving focus to console window to the new slot in main_window
* octave-qscintilla.cc: include headers required for interpreter threads
and for additionally used Qt libs;
(octave_qscintilla): connect new signals for finished run selection
action to the new related slot;
(contextmenu_run_temp_error): new method displaying a message box on
error handling temp. files;
(contextmenu_run): create a temp. file with all selected lines extended
by commands for displaying each line and add it to the command history,
disable opening a file at breakpoints, run this temp. file by the
interpreter and emit new signal when running this file is finished;
(ctx_menu_run_finished): slot when running the temp. file is finished,
removing temp. files and reset modified editor preferences;
* octave-qscintilla.h: include QSettings and interpreter-events,
interpreter signal, signal for focusing console window and signal when
running temp file is finished, new slot for the latter
* main-window.cc (focus_console_after_command): do not return the related
setting, but actually give console window the focus if desired,
(run_file_in_terminal, execute_command_in_terminal): use this new form
* main-window.h: change focus_console_method from private method into
public slot
* resource-manager.cc (resource_manager): initialize new list of created
temp. files;
(~resource_manager): remove any temp. files that are still existing;
(do_create_tmp_file): create a new temp. file with the given contents
and store its smart pointer into a list for removing the file later;
(do_remove_tmp_file): remove given temp. file and remove it from the list;
* resource-manager.h: include QPointer and QTemporaryFile,
(create_tmp_file): new static method calling internal do_create_tmp_file;
(remove_tmp_file): new static method calling internal do_create_tmp_file;
new internal methods do_create_tmp_file and do_remove_tmp_file,
new list for storing temp. file pointers
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Fri, 25 Oct 2019 07:36:37 +0200 |
parents | 9e526393d80a |
children | 3fcc650de22f |
rev | line source |
---|---|
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
1 /* |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
2 |
26376
00f796120a6d
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
26323
diff
changeset
|
3 Copyright (C) 2013-2019 John W. Eaton |
00f796120a6d
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
26323
diff
changeset
|
4 Copyright (C) 2011-2019 Jacob Dawid |
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
5 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
6 This file is part of Octave. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
7 |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24520
diff
changeset
|
8 Octave is free software: you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
9 under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24520
diff
changeset
|
10 the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
11 (at your option) any later version. |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
12 |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
13 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
14 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22599
diff
changeset
|
16 GNU General Public License for more details. |
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
17 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
18 You should have received a copy of the GNU General Public License |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
19 along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24520
diff
changeset
|
20 <https://www.gnu.org/licenses/>. |
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
21 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
22 */ |
13501 | 23 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
24 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
25 # include "config.h" |
15286
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15274
diff
changeset
|
26 #endif |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15274
diff
changeset
|
27 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
28 #include <utility> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
29 |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
30 #include <QAction> |
15257
7ee62f559a73
Fix compilation under Windows with GUI and LLVM enabled.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15204
diff
changeset
|
31 #include <QApplication> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
32 #include <QDateTime> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
33 #include <QDebug> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
34 #include <QDesktopServices> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
35 #include <QDesktopWidget> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
36 #include <QFileDialog> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
37 #include <QIcon> |
23385
41639665aa34
improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents:
23380
diff
changeset
|
38 #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
|
39 #include <QKeySequence> |
15257
7ee62f559a73
Fix compilation under Windows with GUI and LLVM enabled.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15204
diff
changeset
|
40 #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
|
41 #include <QMenu> |
13501 | 42 #include <QMenuBar> |
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 <QMessageBox> |
13501 | 44 #include <QSettings> |
14670
7fbea449737d
Restructured menus, added toolbar and current directory line edit.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14669
diff
changeset
|
45 #include <QStyle> |
25956
2201f82db233
Add missing QStyleFactory header (Bug #54881)
John Donoghue
parents:
25944
diff
changeset
|
46 #include <QStyleFactory> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
47 #include <QStyleFactory> |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
48 #include <QTextBrowser> |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
49 #include <QTextCodec> |
17764
811b5a562680
Format release notes as preformatted text in the GUI (bug #40367)
Mike Miller <mtmiller@ieee.org>
parents:
17744
diff
changeset
|
50 #include <QTextStream> |
17939
16cf38c39915
display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents:
17936
diff
changeset
|
51 #include <QThread> |
21439
912b8828193b
* main-window.cc: include QTimer header file
Mike Miller <mtmiller@octave.org>
parents:
21428
diff
changeset
|
52 #include <QTimer> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
53 #include <QToolBar> |
16502
45ae1038ee89
allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents:
16499
diff
changeset
|
54 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
55 #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
|
56 # include "file-editor.h" |
16290
d07aeecb2d22
build: Add more #ifdefs to build GUI when Qscintilla is not present.
Rik <rik@octave.org>
parents:
16176
diff
changeset
|
57 #endif |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
58 #include "gui-preferences-mw.h" |
27196
d993642352d0
rename octave_interpreter object in GUI
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
59 #include "interpreter-qobject.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
60 #include "main-window.h" |
27193
01e73e1664ff
move news reader widget to separate file
John W. Eaton <jwe@octave.org>
parents:
27118
diff
changeset
|
61 #include "news-reader.h" |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27196
diff
changeset
|
62 #include "octave-qobject.h" |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
63 #include "settings-dialog.h" |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
18575
diff
changeset
|
64 #include "shortcut-manager.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
65 #include "welcome-wizard.h" |
13501 | 66 |
17939
16cf38c39915
display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents:
17936
diff
changeset
|
67 #include "Array.h" |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16460
diff
changeset
|
68 #include "cmd-edit.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
69 #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
|
70 #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
|
71 |
19893
67cb2f421255
restore include statement removed in changeset c7c50030e76c
John W. Eaton <jwe@octave.org>
parents:
19882
diff
changeset
|
72 #include "builtin-defun-decls.h" |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
73 #include "defaults.h" |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
74 #include "defun.h" |
23599
5cb3a2bb5e1e
don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents:
23497
diff
changeset
|
75 #include "interpreter-private.h" |
23773
5ff24576b783
defer installing qt graphics toolkit until interpreter is ready
John W. Eaton <jwe@octave.org>
parents:
23721
diff
changeset
|
76 #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
|
77 #include "load-path.h" |
23479
06bf3a0b08bf
maint: Use "" instead of <> for our own include files.
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
78 #include "oct-map.h" |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22022
diff
changeset
|
79 #include "octave.h" |
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
|
80 #include "parse.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
|
81 #include "syminfo.h" |
24362
3fc24b792a24
avoid including symtab.h, symscope.h, or symrec.h unnecessarily
John W. Eaton <jwe@octave.org>
parents:
24361
diff
changeset
|
82 #include "symscope.h" |
23479
06bf3a0b08bf
maint: Use "" instead of <> for our own include files.
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
83 #include "utils.h" |
15404
f52a62a6db3a
eliminate copy and paste copyright info in GUI about info box
John W. Eaton <jwe@octave.org>
parents:
15402
diff
changeset
|
84 #include "version.h" |
23380
c319e6d737f2
Backed out changeset 7332287221a9
Torsten <mttl@mailbox.org>
parents:
23379
diff
changeset
|
85 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
86 namespace octave |
23119
3107d3717cc2
refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents:
23092
diff
changeset
|
87 { |
27101
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
88 static file_editor_interface * |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
89 create_default_editor (QWidget *p) |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
90 { |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
91 #if defined (HAVE_QSCINTILLA) |
27102
84ff9953faa1
where possible, eliminate octave:: namespace qualifier inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27101
diff
changeset
|
92 return new file_editor (p); |
27101
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
93 #else |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
94 octave_unused_parameter (p); |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
95 |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
96 return 0; |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
97 #endif |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
98 } |
097774bed4ed
move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27042
diff
changeset
|
99 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
100 main_window::main_window (base_qobject& qobj) |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
101 : QMainWindow (), m_octave_qobj (qobj), m_workspace_model (nullptr), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
102 m_status_bar (nullptr), m_command_window (nullptr), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
103 m_history_window (nullptr), m_file_browser_window (nullptr), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
104 m_doc_browser_window (nullptr), m_editor_window (nullptr), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
105 m_workspace_window (nullptr), m_variable_editor_window (nullptr), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
106 m_external_editor (new external_editor_interface (this)), |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
107 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
|
108 m_find_files_dlg (nullptr), m_set_path_dlg (nullptr), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
109 m_release_notes_window (nullptr), m_community_news_window (nullptr), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
110 m_clipboard (QApplication::clipboard ()), |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
111 m_prevent_readline_conflicts (true), m_suppress_dbg_location (true), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
112 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
|
113 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
114 if (resource_manager::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. |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27196
diff
changeset
|
117 qobj.config_translators (); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
118 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
119 welcome_wizard welcomeWizard; |
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. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
125 resource_manager::reload_settings (); |
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. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
130 resource_manager::reload_settings (); |
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. |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27196
diff
changeset
|
133 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 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
136 resource_manager::update_network_settings (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
137 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
138 // We provide specific terminal capabilities, so ensure that |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
139 // TERM is always set appropriately. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
140 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
141 #if defined (OCTAVE_USE_WINDOWS_API) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
142 sys::env::putenv ("TERM", "cygwin"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
143 #else |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
144 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
|
145 #endif |
a4c687fec320
gui: set Qt Application and Desktop metadata for desktop integration (bug #53102)
Mike Miller <mtmiller@octave.org>
parents:
25042
diff
changeset
|
146 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
147 shortcut_manager::init_data (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
148 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
149 construct_central_widget (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
150 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
151 m_workspace_model = new workspace_model (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
152 m_status_bar = new QStatusBar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
153 m_command_window = new terminal_dock_widget (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
154 m_history_window = new history_dock_widget (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
155 m_file_browser_window = new files_dock_widget (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
156 m_doc_browser_window = new documentation_dock_widget (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
157 m_editor_window = create_default_editor (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
158 m_variable_editor_window = new variable_editor (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
159 m_workspace_window = new workspace_view (this); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
160 |
27267
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
161 // Set active editor depending on editor window. If the latter is |
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
162 // not initialized (qscintilla not present), use the external editor. |
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
163 if (m_editor_window) |
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
164 m_active_editor = m_editor_window; |
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
165 else |
d75c7b4f7645
fix using external editor when built without qscintilla (regression from ceb508ea92ee)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27263
diff
changeset
|
166 m_active_editor = m_external_editor; |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
167 |
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 (); |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
175 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
176 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
177 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
178 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
|
179 QDateTime last_checked; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
180 int serial = 0; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
181 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
|
182 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
183 if (settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
184 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
185 connect_to_web |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
186 = settings->value ("news/allow_web_connection", false).toBool (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
187 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
188 last_checked |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
189 = settings->value ("news/last_time_checked", QDateTime ()).toDateTime (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
190 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
191 serial = settings->value ("news/last_news_item", 0).toInt (); |
25702
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
192 m_default_encoding = settings->value (ed_default_enc.key, |
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
193 ed_default_enc.def).toString (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
194 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
195 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
196 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
|
197 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
|
198 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
199 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
|
200 && (! last_checked.isValid () || one_day_ago > last_checked)) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
201 load_and_display_community_news (serial); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
202 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
203 construct_octave_qt_link (); |
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 // 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
|
206 // octave. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
207 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
208 construct (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
209 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
210 read_settings (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
211 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
212 init_terminal_size (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
213 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
214 // Connect signals for changes in visibility not before window is |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
215 // shown. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
216 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
217 connect_visibility_changed (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
218 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
219 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
|
220 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
221 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
222 main_window::~main_window (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
223 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
224 // Destroy the terminal first so that STDERR stream is redirected back |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
225 // to its original pipe to capture error messages at exit. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
226 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
227 delete m_editor_window; // first one for dialogs of modified editor-tabs |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
228 delete m_external_editor; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
229 delete m_command_window; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
230 delete m_workspace_window; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
231 delete 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
|
232 delete 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
|
233 delete m_history_window; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
234 delete m_status_bar; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
235 delete m_workspace_model; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
236 delete m_variable_editor_window; |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
237 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
238 delete m_find_files_dlg; |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
239 delete m_release_notes_window; |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
240 delete m_community_news_window; |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
241 delete m_community_news_window; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
242 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
243 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
244 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
|
245 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
246 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
|
247 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
248 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
249 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
|
250 { |
27281
0915fec3d3a9
prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27277
diff
changeset
|
251 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
|
252 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
253 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
254 // 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
|
255 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
|
256 { |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
257 // If there is no new widget (e.g., when pressing <alt> and the global |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
258 // menu gets active, we can return immediately |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
259 if (! new_widget) |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
260 return; |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
261 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
262 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
|
263 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
|
264 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
|
265 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
|
266 |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
267 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
|
268 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
269 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
|
270 { |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
271 // Go through all dock widgets and check whether the current widget |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
272 // widget with focus is a child of one of it |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
273 foreach (octave_dock_widget *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
|
274 { |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
275 if (w->isAncestorOf (w_new)) |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
276 dock = w; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
277 } |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
278 |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
279 if (dock) |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
280 break; |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
281 |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
282 // If not yet found (in case w_new is not a childs of its dock widget), |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
283 // 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
|
284 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
|
285 |
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
286 // 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
|
287 if (w_new == start) |
24772
860860e2e69e
fix focus change between dock widgets of gui
Torsten <mttl@mailbox.org>
parents:
24729
diff
changeset
|
288 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
|
289 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
|
290 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
291 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
292 // editor needs extra handling |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
293 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
|
294 = 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
|
295 // 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
|
296 // 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
|
297 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
|
298 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
299 // 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
|
300 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
|
301 |
26555
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
302 if (dock) |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
303 { |
84e0e0b6493e
* main-window.cc (focus_changed): prevent accessing null pointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
304 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
|
305 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
|
306 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
|
307 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
308 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
309 if (edit_dock_widget == dock) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
310 emit editor_focus_changed (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
311 else if (edit_dock_widget == m_active_dock) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
312 emit editor_focus_changed (false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
313 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
314 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
|
315 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
316 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
317 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
318 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
|
319 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
320 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
321 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
322 if (settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
323 emit settings_changed (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
324 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
325 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
326 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
|
327 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
328 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
|
329 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
330 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
331 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
|
332 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
333 // 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
|
334 int opts = 0; // No options by default. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
335 if (! resource_manager::get_settings ()->value ("use_native_file_dialogs", |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
336 true).toBool ()) |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
337 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
338 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
339 QString file |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
340 = 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
|
341 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
|
342 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
343 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
344 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
345 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
346 ([file] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
347 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
348 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
349 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
350 Fsave (interp, ovl (file.toStdString ())); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
351 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
352 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
353 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
354 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
355 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
|
356 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
357 // 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
|
358 int opts = 0; // No options by default. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
359 if (! resource_manager::get_settings ()->value ("use_native_file_dialogs", |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
360 true).toBool ()) |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
361 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
362 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
363 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
|
364 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
365 if (file.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
366 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
|
367 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
|
368 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
369 if (! file.isEmpty ()) |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
370 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
371 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
372 ([file] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
373 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
374 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
375 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
376 Fload (interp, ovl (file.toStdString ())); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
377 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
378 tree_evaluator& tw = interp.get_evaluator (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
379 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
380 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
|
381 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
382 xevmgr.set_workspace (true, tw.get_symbol_info ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
383 }); |
25723
22544083fe2c
use common callback for workspace actions initiated by gui
Torsten <mttl@mailbox.org>
parents:
25703
diff
changeset
|
384 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
385 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
386 |
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
|
387 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
|
388 { |
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
|
389 if (! file_arg.isEmpty ()) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
390 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
391 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
|
392 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
393 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
394 ([file] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
395 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
396 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
397 |
27405
646efbb5f407
avoid including builtin-defun-decls.h unless needed
John W. Eaton <jwe@octave.org>
parents:
27396
diff
changeset
|
398 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
|
399 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
400 // 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
|
401 // variables. |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
402 tree_evaluator& tw = interp.get_evaluator (); |
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
403 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
404 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
|
405 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
406 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
|
407 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
408 } |
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
|
409 } |
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
|
410 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
411 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
|
412 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
413 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
414 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
415 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
416 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
417 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
418 Fclear (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
419 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
420 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
421 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
422 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
|
423 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
424 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
425 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
426 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
427 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
428 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
429 command_editor::kill_full_line (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
430 command_editor::clear_screen (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
431 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
432 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
433 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
434 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
|
435 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
436 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
437 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
438 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
439 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
440 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
441 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
|
442 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
443 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
|
444 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
445 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
446 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
447 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
|
448 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
449 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
|
450 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
451 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
452 ([] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
453 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
454 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
455 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
456 command_editor::undo (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
457 command_editor::redisplay (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
458 }); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
459 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
460 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
461 emit undo_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
462 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
463 |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
464 void main_window::handle_rename_variable_request (const QString& old_name_arg, |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
465 const QString& new_name_arg) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
466 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
467 { |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
468 std::string old_name = old_name_arg.toStdString (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
469 std::string new_name = new_name_arg.toStdString (); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
470 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
471 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
472 ([old_name, new_name] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
473 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
474 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
475 |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
476 symbol_scope scope = interp.get_current_scope (); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
477 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
478 if (scope) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
479 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
480 scope.rename (old_name, new_name); |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
481 |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
482 tree_evaluator& tw = interp.get_evaluator (); |
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
483 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
484 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
|
485 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
486 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
|
487 } |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
488 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
489 // FIXME: if this action fails, do we need a way to display that info |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
490 // in the GUI? |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
491 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
492 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
493 |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
494 void main_window::modify_path (const octave_value_list& dir_list, |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
495 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
|
496 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
497 emit interpreter_event |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
498 ([dir_list, rm, subdirs, this] (interpreter& interp) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
499 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
500 // INTERPRETER THREAD |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
501 |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
502 octave_value_list paths = ovl (); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
503 |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
504 if (subdirs) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
505 { |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
506 // Loop over all directories in order to get all subdirs |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
507 for (octave_idx_type i = 0; i < dir_list.length (); i++) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
508 paths.append (Fgenpath (dir_list(i))); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
509 } |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
510 else |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
511 paths = dir_list; |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
512 |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
513 if (rm) |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
514 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
|
515 else |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
516 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
|
517 }); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
518 } |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
519 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
520 void main_window::new_file (const QString& commands) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
521 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
522 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
|
523 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
524 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
525 void main_window::open_file (const QString& file_name, int line) |
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 if (line < 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
528 emit open_file_signal (file_name); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
529 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
530 emit open_file_signal (file_name, QString (), line); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
531 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
532 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
533 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
|
534 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
535 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
|
536 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
537 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
538 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
|
539 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
540 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
|
541 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
542 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
|
543 |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
544 // 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
|
545 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
|
546 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
547 // 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
|
548 #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
|
549 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
|
550 #else |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
551 octave_unused_parameter (o); |
6caf75200854
build: Silence unused parameter warning created in cset 43f6f02dd91c (bug #56097).
Rik <rik@octave.org>
parents:
27039
diff
changeset
|
552 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
|
553 #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
|
554 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
555 // 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
|
556 qt_link->unlock (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
557 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
|
558 } |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25723
diff
changeset
|
559 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
560 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
|
561 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
562 QDesktopServices::openUrl |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
563 (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
|
564 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
565 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
566 void main_window::display_release_notes (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
567 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
568 if (! m_release_notes_window) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
569 { |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
570 std::string news_file = config::oct_etc_dir () + "/NEWS"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
571 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
572 QString news; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
573 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
574 QFile *file = new QFile (QString::fromStdString (news_file)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
575 if (file->open (QFile::ReadOnly)) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
576 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
577 QTextStream *stream = new QTextStream (file); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
578 news = stream->readAll (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
579 if (! news.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
580 { |
25251
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
581 // Convert '<', '>' which would be interpreted as HTML |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
582 news.replace ("<", "<"); |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
583 news.replace (">", ">"); |
0bc58956aa40
Escape '<', '>' in NEWS file before it is displayed as HTML in Release Notes window (bug #53642).
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
584 // Add HTML tags for pre-formatted text |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
585 news.prepend ("<pre>"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
586 news.append ("</pre>"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
587 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
588 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
589 news = (tr ("The release notes file '%1' is empty.") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
590 . arg (QString::fromStdString (news_file))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
591 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
592 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
593 news = (tr ("The release notes file '%1' cannot be read.") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
594 . arg (QString::fromStdString (news_file))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
595 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
596 m_release_notes_window = new QWidget; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
597 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
598 QTextBrowser *browser = new QTextBrowser (m_release_notes_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
599 browser->setText (news); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
600 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
601 QVBoxLayout *vlayout = new QVBoxLayout; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
602 vlayout->addWidget (browser); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
603 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
604 m_release_notes_window->setLayout (vlayout); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
605 m_release_notes_window->setWindowTitle (tr ("Octave Release Notes")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
606 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
607 browser->document ()->adjustSize (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
608 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
609 // center the window on the screen where octave is running |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
610 QDesktopWidget *m_desktop = QApplication::desktop (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
611 int screen = m_desktop->screenNumber (this); // screen of the main window |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
612 QRect screen_geo = m_desktop->availableGeometry (screen); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
613 int win_x = screen_geo.width (); // width of the screen |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
614 int win_y = screen_geo.height (); // height of the screen |
26643
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
615 int reln_x = win_x*2/5; // desired width of release notes |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
616 int reln_y = win_y*2/3; // desired height of release notes |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
617 m_release_notes_window->resize (reln_x, reln_y); // set size |
26643
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
618 m_release_notes_window->move (20, 20); // move to the top left corner |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
619 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
620 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
621 if (! m_release_notes_window->isVisible ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
622 m_release_notes_window->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
623 else if (m_release_notes_window->isMinimized ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
624 m_release_notes_window->showNormal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
625 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
626 m_release_notes_window->setWindowIcon (QIcon (m_release_notes_icon)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
627 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
628 m_release_notes_window->raise (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
629 m_release_notes_window->activateWindow (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
630 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
631 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
632 void main_window::load_and_display_community_news (int serial) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
633 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
634 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
635 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
636 bool connect_to_web |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
637 = (settings |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
638 ? settings->value ("news/allow_web_connection", false).toBool () |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
639 : true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
640 |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
641 QString base_url = "https://octave.org"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
642 QString page = "community-news.html"; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
643 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
644 QThread *worker_thread = new QThread; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
645 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
646 news_reader *reader = new news_reader (base_url, page, serial, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
647 connect_to_web); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
648 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
649 reader->moveToThread (worker_thread); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
650 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
651 connect (reader, SIGNAL (display_news_signal (const QString&)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
652 this, SLOT (display_community_news (const QString&))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
653 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
654 connect (worker_thread, SIGNAL (started (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
655 reader, SLOT (process (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
656 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
657 connect (reader, SIGNAL (finished (void)), worker_thread, SLOT (quit (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
658 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
659 connect (reader, SIGNAL (finished (void)), reader, SLOT (deleteLater (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
660 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
661 connect (worker_thread, SIGNAL (finished (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
662 worker_thread, SLOT (deleteLater (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
663 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
664 worker_thread->start (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
665 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
666 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
667 void main_window::display_community_news (const QString& news) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
668 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
669 if (! m_community_news_window) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
670 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
671 m_community_news_window = new QWidget; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
672 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
673 QTextBrowser *browser = new QTextBrowser (m_community_news_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
674 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
675 browser->setHtml (news); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
676 browser->setObjectName ("OctaveNews"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
677 browser->setOpenExternalLinks (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
678 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
679 QVBoxLayout *vlayout = new QVBoxLayout; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
680 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
681 vlayout->addWidget (browser); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
682 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
683 m_community_news_window->setLayout (vlayout); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
684 m_community_news_window->setWindowTitle (tr ("Octave Community News")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
685 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
686 // center the window on the screen where octave is running |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
687 QDesktopWidget *m_desktop = QApplication::desktop (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
688 int screen = m_desktop->screenNumber (this); // screen of the main window |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
689 QRect screen_geo = m_desktop->availableGeometry (screen); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
690 int win_x = screen_geo.width (); // width of the screen |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
691 int win_y = screen_geo.height (); // height of the screen |
26643
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
692 int news_x = win_x/2; // desired width of news window |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
693 int news_y = win_y/2; // desired height of news window |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
694 m_community_news_window->resize (news_x, news_y); // set size and center |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
695 m_community_news_window->move ((win_x - m_community_news_window->width ())/2, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
696 (win_y - m_community_news_window->height ())/2); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
697 } |
25805
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
698 else |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
699 { |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
700 // Window already exists, just update the browser contents |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
701 QTextBrowser *browser |
25819
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
702 |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
703 = m_community_news_window->findChild<QTextBrowser *>("OctaveNews" |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
704 #if defined (QOBJECT_FINDCHILDREN_ACCEPTS_FINDCHILDOPTIONS) |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
705 , Qt::FindDirectChildrenOnly |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
706 #endif |
182e891789f5
fix libgui build failure with Qt 4.8
Mike Miller <mtmiller@octave.org>
parents:
25805
diff
changeset
|
707 ); |
25805
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
708 if (browser) |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
709 browser->setHtml (news); |
ae2c9f1427f0
update news window contents when community news are requeted a second time
Torsten <mttl@mailbox.org>
parents:
25742
diff
changeset
|
710 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
711 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
712 if (! m_community_news_window->isVisible ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
713 m_community_news_window->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
714 else if (m_community_news_window->isMinimized ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
715 m_community_news_window->showNormal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
716 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
717 // same icon as release notes |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
718 m_community_news_window->setWindowIcon (QIcon (m_release_notes_icon)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
719 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
720 m_community_news_window->raise (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
721 m_community_news_window->activateWindow (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
722 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
723 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
724 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
|
725 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
726 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
|
727 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
728 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
729 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
|
730 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
731 QDesktopServices::openUrl (QUrl ("https://octave.org/packages.html")); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
732 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
733 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
734 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
|
735 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
736 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
|
737 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
738 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
739 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
|
740 { |
25024
3c817af70eed
maint: use https for all Octave project URLs
Mike Miller <mtmiller@octave.org>
parents:
24792
diff
changeset
|
741 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
|
742 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
743 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
744 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
|
745 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
746 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
|
747 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
748 // 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
|
749 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
|
750 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
|
751 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
752 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
753 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
754 m_settings_dlg = new settings_dialog (this, desired_tab); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
755 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
756 connect (m_settings_dlg, SIGNAL (apply_new_settings (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
757 this, SLOT (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
|
758 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
759 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
|
760 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
|
761 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
|
762 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
763 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
764 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
|
765 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
766 std::string message |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
767 = 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
|
768 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
769 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
|
770 QString::fromStdString (message)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
771 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
772 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
773 void main_window::notice_settings (const QSettings *settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
774 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
775 // QSettings pointer is checked before emitting. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
776 |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
777 // 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
|
778 // the desired one is not found |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
779 QString preferred_style |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
780 = settings->value (global_style.key, global_style.def).toString (); |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
781 |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
782 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
|
783 preferred_style = m_default_style; |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
784 |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
785 QStyle *new_style = QStyleFactory::create (preferred_style); |
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
786 if (new_style) |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
787 { |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
788 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
|
789 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
790 qapp->setStyle (new_style); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
791 } |
26227
2355f66cf91d
allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents:
26117
diff
changeset
|
792 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
793 // the widget's icons (when floating) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
794 QString icon_set |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
795 = settings->value ("DockWidgets/widget_icon_set", "NONE").toString (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
796 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
797 static struct |
19422
476032040df9
determining the active dock from focus changes in the gui
Torsten <ttl@justmail.de>
parents:
19411
diff
changeset
|
798 { |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
799 QString name; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
800 QString path; |
17883
3851e5fde76d
GUI: allow only one release notes windows to be open
John Donoghue <john.donoghue@ieee.org>
parents:
17824
diff
changeset
|
801 } |
17599
f5950975a172
community news dock widget and other user info in GUI
John W. Eaton <jwe@octave.org>
parents:
17576
diff
changeset
|
802 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
803 widget_icon_data[] = |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
804 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
805 // array of possible icon sets (name, path (complete for NONE)) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
806 // the first entry here is the default! |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
807 {"NONE", ":/actions/icons/logo.png"}, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
808 {"GRAPHIC", ":/actions/icons/graphic_logo_"}, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
809 {"LETTER", ":/actions/icons/letter_logo_"}, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
810 {"", ""} // end marker has empty name |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
811 }; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
812 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
813 int count = 0; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
814 int icon_set_found = 0; // default |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
815 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
816 while (! widget_icon_data[count].name.isEmpty ()) |
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 // while not end of data |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
819 if (widget_icon_data[count].name == icon_set) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
820 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
821 // data of desired icon set found |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
822 icon_set_found = count; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
823 break; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
824 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
825 count++; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
826 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
827 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
828 QString icon; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
829 foreach (octave_dock_widget *widget, dock_widget_list ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
830 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
831 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
|
832 if (! name.isEmpty ()) |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
833 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
834 // if children has a name |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
835 icon = widget_icon_data[icon_set_found].path; // prefix | octave-logo |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
836 if (widget_icon_data[icon_set_found].name != "NONE") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
837 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
|
838 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
|
839 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
840 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
841 if (widget_icon_data[icon_set_found].name != "NONE") |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
842 m_release_notes_icon = widget_icon_data[icon_set_found].path |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
843 + "ReleaseWidget.png"; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
844 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
845 m_release_notes_icon = ":/actions/icons/logo.png"; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
846 |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
847 int size_idx = settings->value (global_icon_size.key, |
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
848 global_icon_size.def).toInt (); |
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
849 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
|
850 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
851 QStyle *st = style (); |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25994
diff
changeset
|
852 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
853 m_main_tool_bar->setIconSize (QSize (icon_size,icon_size)); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
854 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
855 if (settings->value ("show_status_bar",true).toBool ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
856 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
|
857 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
858 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
|
859 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
860 m_prevent_readline_conflicts |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
861 = settings->value ("shortcuts/prevent_readline_conflicts", true).toBool (); |
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 m_suppress_dbg_location |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
864 = ! settings->value ("terminal/print_debug_location", false).toBool (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
865 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
866 resource_manager::update_network_settings (); |
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 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
|
869 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
870 configure_shortcuts (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
871 set_global_shortcuts (m_active_dock == m_command_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
872 disable_menu_shortcuts (m_active_dock == m_editor_window); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
873 |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
874 // 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
|
875 QString new_default_encoding |
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
876 = settings->value (ed_default_enc.key, ed_default_enc.def).toString (); |
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
877 if (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
|
878 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
|
879 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
880 // 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
|
881 // 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
|
882 // 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
|
883 // 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
|
884 bool cursor_blinking; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
885 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
886 if (settings->contains ("cursor_blinking")) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
887 cursor_blinking = settings->value ("cursor_blinking",true).toBool (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
888 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
889 cursor_blinking = settings->value ("terminal/cursorBlinking",true).toBool (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
890 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
891 if (cursor_blinking) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
892 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
|
893 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
894 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
|
895 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
896 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
897 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
898 bool main_window::confirm_shutdown_octave (void) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17771
diff
changeset
|
899 { |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
900 bool closenow = true; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
901 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
902 QSettings *settings = resource_manager::get_settings (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
903 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
904 if (settings->value ("prompt_to_exit", false).toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
905 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
906 int ans = QMessageBox::question (this, tr ("Octave"), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
907 tr ("Are you sure you want to exit Octave?"), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
908 (QMessageBox::Ok |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
909 | QMessageBox::Cancel), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
910 QMessageBox::Ok); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
911 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
912 if (ans != QMessageBox::Ok) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
913 closenow = false; |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
914 } |
19714
21015ca26566
Restructure shutdown flow and behavior for improved robustness
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
19702
diff
changeset
|
915 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
916 #if defined (HAVE_QSCINTILLA) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
917 if (closenow) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
918 closenow = m_editor_window->check_closing (); |
19714
21015ca26566
Restructure shutdown flow and behavior for improved robustness
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
19702
diff
changeset
|
919 #endif |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
920 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
921 return closenow; |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
922 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
923 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
924 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
|
925 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
926 // 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
|
927 // construction. Connecting it to qApp aboutToQuit signal would have |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
928 // caused it to run after QSettings deleted. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
929 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
|
930 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
|
931 |
27312
b9a436b0400e
save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27311
diff
changeset
|
932 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
|
933 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
|
934 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
935 write_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
936 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
937 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
938 void main_window::reset_windows (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
939 { |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
940 hide (); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
941 set_window_layout (nullptr); // do not use the settings file |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
942 showNormal (); // make sure main window is not minimized |
24792
3390adaee21d
* main-window.cc (reset_windows): set focus to console after resetting window layout
Torsten <mttl@mailbox.org>
parents:
24772
diff
changeset
|
943 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
|
944 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
945 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
946 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
|
947 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
948 // 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
|
949 // 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
|
950 // widget. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
951 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
952 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
|
953 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
954 if (index >= 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
955 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
|
956 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
957 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
|
958 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
|
959 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
960 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
961 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
|
962 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
963 // 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
|
964 int opts = QFileDialog::ShowDirsOnly; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
965 if (! resource_manager::get_settings ()->value ("use_native_file_dialogs", |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
966 true).toBool ()) |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
967 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
968 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
969 QString dir |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
970 = 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
|
971 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
|
972 |
15626
1cc10ce368ea
enable entering a new directory in the current directory combobox
Torsten <ttl@justmail.de>
parents:
15607
diff
changeset
|
973 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
|
974 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
975 // 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
|
976 // 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
|
977 |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
978 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
|
979 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
980 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
981 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
|
982 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
983 // 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
|
984 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
985 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
|
986 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
987 QFileInfo fileInfo (xdir); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
988 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
989 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
|
990 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
991 emit interpreter_event |
27408
9b19eec60931
move change directory function to interpreter class
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
992 ([xdir] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
993 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
994 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
995 |
27408
9b19eec60931
move change directory function to interpreter class
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
996 interp.chdir (xdir.toStdString ()); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
997 }); |
25703
7b4e99fbe9d4
include builtin functions without interpreter argument being into octave_cmd
Torsten <mttl@mailbox.org>
parents:
25702
diff
changeset
|
998 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
999 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1000 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1001 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
|
1002 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1003 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
|
1004 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1005 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1006 // 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
|
1007 // 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
|
1008 // 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
|
1009 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1010 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
|
1011 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1012 // Get new directory name, and change to it if it is new. Otherwise, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1013 // the combo box will triggers the "activated" signal to change to the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1014 // directory. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1015 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1016 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
|
1017 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1018 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
|
1019 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1020 if (index < 0) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1021 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
|
1022 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1023 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1024 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
|
1025 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1026 emit interpreter_event |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1027 ([command] (void) |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1028 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1029 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1030 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1031 std::string pending_input = command_editor::get_current_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1032 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1033 command_editor::set_initial_input (pending_input); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1034 command_editor::replace_line (command.toStdString ()); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1035 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
|
1036 command_editor::interrupt_event_loop (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1037 command_editor::accept_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1038 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1039 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1040 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
|
1041 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1042 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1043 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
|
1044 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1045 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1046 ([info] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1047 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1048 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1049 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1050 QString function_name = info.fileName (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1051 function_name.chop (info.suffix ().length () + 1); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1052 std::string file_path = info.absoluteFilePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1053 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1054 std::string pending_input = command_editor::get_current_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1055 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1056 if (valid_identifier (function_name.toStdString ())) |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1057 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1058 // Valid identifier: call as function with possibility to |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1059 // debug. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1060 |
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
|
1061 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
|
1062 |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1063 std::string path = info.absolutePath ().toStdString (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1064 |
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
|
1065 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
|
1066 command_editor::replace_line (function_name.toStdString ()); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1067 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1068 else |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1069 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1070 // No valid identifier: use equivalent of Fsource (), no |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1071 // debug possible. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1072 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1073 interp.source_file (file_path); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1074 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1075 command_editor::replace_line (""); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1076 } |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1077 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1078 command_editor::set_initial_input (pending_input); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1079 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
|
1080 command_editor::interrupt_event_loop (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1081 command_editor::accept_line (); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1082 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1083 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
1084 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
|
1085 } |
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 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
|
1088 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1089 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1090 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1091 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1092 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1093 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1094 Fbuiltin (interp, ovl ("figure")); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27312
diff
changeset
|
1095 Fdrawnow (interp); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1096 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1097 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1098 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1099 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
|
1100 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1101 setWindowTitle ("Octave (Debugging)"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1102 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1103 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
|
1104 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
|
1105 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
|
1106 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
|
1107 m_debug_quit->setEnabled (true); |
16438
a971d8bdaadc
use signals instead of event queue for entering/leaving debug mode
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
1108 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1109 #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
|
1110 m_editor_window->handle_enter_debug_mode (); |
15873
7d300b85ee25
allow build to proceed if either Qt or QScintilla is missing
John W. Eaton <jwe@octave.org>
parents:
15848
diff
changeset
|
1111 #endif |
24715
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1114 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
|
1115 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1116 setWindowTitle ("Octave"); |
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 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
|
1119 m_debug_step_into->setEnabled (false); |
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
|
1120 m_debug_step_over->setEnabled (m_editor_has_tabs); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1121 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
|
1122 m_debug_quit->setEnabled (false); |
16438
a971d8bdaadc
use signals instead of event queue for entering/leaving debug mode
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
1123 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1124 #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
|
1125 m_editor_window->handle_exit_debug_mode (); |
15873
7d300b85ee25
allow build to proceed if either Qt or QScintilla is missing
John W. Eaton <jwe@octave.org>
parents:
15848
diff
changeset
|
1126 #endif |
24715
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1129 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
|
1130 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1131 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1132 ([this] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1133 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1134 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1135 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1136 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
|
1137 Fdbcont (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1138 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1139 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1140 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1141 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1142 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1143 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
|
1144 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1145 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1146 ([this] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1147 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1148 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1149 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1150 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
|
1151 Fdbstep (interp, ovl ("in")); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1152 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1153 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1154 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1155 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1156 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1157 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
|
1158 { |
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
|
1159 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
|
1160 { |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1161 // We are in debug mode, just call dbstep. |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1162 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1163 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1164 ([this] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1165 { |
27393
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
diff
changeset
|
1166 // INTERPRETER THREAD |
efe72866b483
mark all interpreter_event lambda functions with special comment
John W. Eaton <jwe@octave.org>
parents:
27391
diff
changeset
|
1167 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1168 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
|
1169 ovl (m_suppress_dbg_location)); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1170 Fdbstep (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1171 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1172 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1173 }); |
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
|
1174 } |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1175 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
|
1176 { |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1177 // 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
|
1178 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
|
1179 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1180 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1181 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1182 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
|
1183 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1184 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1185 ([this] (interpreter& interp) |
27255
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 // INTERPRETER THREAD |
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 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
|
1190 Fdbstep (interp, ovl ("out")); |
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 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1193 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1194 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1195 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1196 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
|
1197 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1198 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1199 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1200 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1201 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1202 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1203 Fdbquit (interp); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1204 |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1205 command_editor::interrupt (true); |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1206 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1207 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1208 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1209 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1210 // 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
|
1211 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1212 // 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
|
1213 // 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
|
1214 // |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1215 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
|
1216 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1217 // Open file isn't a file_editor_tab or editor function since the file |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1218 // might be opened in an external editor. Hence, functionality is here. |
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 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1221 bool is_internal = m_editor_window |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25091
diff
changeset
|
1222 && ! settings->value ("useCustomFileEditor",false).toBool (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1223 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1224 // 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
|
1225 QWidget *p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1226 if (is_internal) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1227 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
|
1228 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
|
1229 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
|
1230 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1231 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
|
1232 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
|
1233 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
|
1234 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
|
1235 |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1236 // 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
|
1237 if (! resource_manager::get_settings ()->value ("use_native_file_dialogs", |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1238 true).toBool ()) |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26067
diff
changeset
|
1239 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
|
1240 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1241 connect (fileDialog, SIGNAL (filesSelected (const QStringList&)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1242 this, SLOT (request_open_files (const QStringList&))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1243 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1244 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
|
1245 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
|
1246 fileDialog->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1247 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1248 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1249 // 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
|
1250 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
|
1251 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1252 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
|
1253 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1254 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1255 // 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
|
1256 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
|
1257 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1258 bool ok; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1259 // Get the name of the new function: Parent of the input dialog is the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1260 // editor window or the main window. The latter is chosen, if a custom |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1261 // 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
|
1262 QWidget *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
|
1263 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1264 if (! p || settings->value ("useCustomFileEditor",false).toBool ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1265 p = this; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1266 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
|
1267 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
|
1268 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1269 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
|
1270 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1271 // append suffix if it not already exists |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1272 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
|
1273 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
|
1274 // check whether new files are created without prompt |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1275 if (! settings->value ("editor/create_new_file",false).toBool ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1276 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1277 // no, so enable this settings and wait for end of new file loading |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1278 settings->setValue ("editor/create_new_file",true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1279 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
|
1280 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
|
1281 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1282 // 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
|
1283 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
|
1284 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1285 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1286 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1287 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
|
1288 const QString& ffile, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1289 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
|
1290 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1291 { |
27377
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1292 emit interpreter_event |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1293 ([this, fname, ffile, curr_dir, line] (interpreter& interp) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1294 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1295 // INTERPRETER THREAD |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1296 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1297 // Split possible subfuntions |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1298 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
|
1299 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
|
1300 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1301 // 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
|
1302 // 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
|
1303 // class? |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1304 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1305 // 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
|
1306 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
|
1307 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
|
1308 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1309 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
|
1310 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
|
1311 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1312 switch (type) |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1313 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1314 case 3: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1315 case 5: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1316 case 103: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1317 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
|
1318 "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
|
1319 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1320 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1321 case 2: |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1322 // 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
|
1323 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
|
1324 = 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
|
1325 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
|
1326 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
|
1327 break; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1328 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1329 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1330 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
|
1331 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1332 // 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
|
1333 // -> 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
|
1334 // get directory |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1335 QDir dir; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1336 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
|
1337 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1338 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
|
1339 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
|
1340 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1341 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
|
1342 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1343 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1344 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
|
1345 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1346 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
|
1347 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
|
1348 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
|
1349 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1350 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1351 // 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
|
1352 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
|
1353 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
|
1354 fcn_name); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1355 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
|
1356 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
|
1357 else |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1358 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
|
1359 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1360 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1361 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1362 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1363 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
|
1364 { |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1365 QMessageBox *msgBox |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1366 = new QMessageBox (QMessageBox::Critical, |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1367 tr ("Octave Editor"), |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1368 message.arg (fname), |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1369 QMessageBox::Ok, this); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1370 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1371 msgBox->setWindowModality (Qt::NonModal); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1372 msgBox->setAttribute (Qt::WA_DeleteOnClose); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1373 msgBox->show (); |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1374 return; |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1375 } |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1376 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1377 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
|
1378 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
|
1379 |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1380 // default encoding |
5ca84fb30205
use event manager to handle two more interpreter actions in GUI
John W. Eaton <jwe@octave.org>
parents:
27375
diff
changeset
|
1381 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
|
1382 }); |
24715
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 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1385 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
|
1386 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1387 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1388 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
|
1389 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1390 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
|
1391 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1392 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1393 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1394 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1395 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1396 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
|
1397 int line) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1398 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1399 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
|
1400 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1401 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
|
1402 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1403 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1404 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1405 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1406 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1407 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
|
1408 const QString& file, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1409 int line, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1410 const QString& cond) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1411 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1412 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
|
1413 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1414 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
|
1415 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1416 if (cmd_focus) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1417 focus_command_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1418 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1419 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1420 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
|
1421 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1422 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1423 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1424 if (! settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1425 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1426 qDebug ("Error: QSettings pointer from resource manager is NULL."); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1427 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1428 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1429 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1430 set_window_layout (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1431 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1432 // restore the list of the last directories |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1433 QStringList curr_dirs |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1434 = settings->value ("MainWindow/current_directory_list").toStringList (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1435 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
|
1436 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1437 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
|
1438 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1439 emit settings_changed (settings); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1440 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1441 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1442 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
|
1443 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1444 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
|
1445 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1446 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1447 void main_window::set_window_layout (QSettings *settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1448 { |
26299
c95884eed1cf
make restoring gui more robust to changes of desktop size (bug #53207)
Torsten <mttl@mailbox.org>
parents:
26277
diff
changeset
|
1449 // Restore main window state and geometry from settings file or, in case |
c95884eed1cf
make restoring gui more robust to changes of desktop size (bug #53207)
Torsten <mttl@mailbox.org>
parents:
26277
diff
changeset
|
1450 // of an error from the default layout |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1451 if (settings) |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1452 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
1453 if (! restoreState (settings->value (mw_state.key, mw_state.def).toByteArray ())) |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1454 restoreState (mw_state.def.toByteArray ()); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1455 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
1456 if (! restoreGeometry (settings->value (mw_geometry.key, mw_geometry.def).toByteArray ())) |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1457 restoreGeometry (mw_geometry.def.toByteArray ()); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1458 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1459 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1460 // Restore the geometry of all dock-widgets |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1461 foreach (octave_dock_widget *widget, dock_widget_list ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1462 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1463 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
|
1464 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1465 if (! name.isEmpty ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1466 { |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1467 bool floating = false; |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1468 bool visible = true; |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1469 if (settings) |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1470 { |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1471 floating = settings->value |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1472 ("DockWidgets/" + name + "Floating", false).toBool (); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1473 visible = settings->value |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1474 ("DockWidgets/" + name + "Visible", true).toBool (); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1475 } |
17899
14c427b5c5c1
Restore geometry of floating widgets after restart in windows (bug #40485)
Torsten <ttl@justmail.de>
parents:
17890
diff
changeset
|
1476 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1477 // 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
|
1478 if (floating) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1479 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1480 widget->make_window (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1481 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1482 if (visible) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1483 { |
27277
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
1484 if (settings && settings->value ("DockWidgets/" + name |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
1485 + "_minimized").toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1486 widget->showMinimized (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1487 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1488 widget->setVisible (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1489 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1490 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1491 else // not floating |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1492 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1493 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
|
1494 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
|
1495 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1496 widget->make_widget (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1497 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
|
1498 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1499 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1500 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1501 |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1502 if (! settings) |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1503 { |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1504 restoreGeometry (mw_geometry.def.toByteArray ()); |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1505 restoreState (mw_state.def.toByteArray ()); |
26643
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1506 |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1507 QDesktopWidget *m_desktop = QApplication::desktop (); |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1508 int screen = m_desktop->screenNumber (this); // screen of the main window |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1509 QRect screen_geo = m_desktop->availableGeometry (screen); |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1510 |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1511 int win_x = screen_geo.width (); // width of the screen |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1512 int win_y = screen_geo.height (); // height of the screen |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1513 |
5d1f413ff746
adapt initial window sizes to the screen resolution (bug #55498)
Torsten <mttl@mailbox.org>
parents:
26555
diff
changeset
|
1514 resize (std::max (width (), 2*win_x/3), std::max (height (), 7*win_y/8)); |
26307
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1515 } |
a21f58c5e573
fix resetting gui window layout
Torsten <mttl@mailbox.org>
parents:
26299
diff
changeset
|
1516 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1517 show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1518 } |
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 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
|
1521 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1522 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1523 if (! settings) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1524 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1525 qDebug ("Error: QSettings pointer from resource manager is NULL."); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1526 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1527 } |
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 settings->setValue ("MainWindow/geometry", saveGeometry ()); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1530 settings->setValue ("MainWindow/windowState", saveState ()); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1531 // write the list of recent used directories |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1532 QStringList curr_dirs; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1533 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
|
1534 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1535 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
|
1536 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1537 settings->setValue ("MainWindow/current_directory_list", curr_dirs); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1538 settings->sync (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1539 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1540 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1541 // Connecting the signals emitted when the visibility of a widget changes. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1542 // This has to be done after the window is shown (see octave-gui.cc) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1543 void main_window::connect_visibility_changed (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1544 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1545 foreach (octave_dock_widget *widget, dock_widget_list ()) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1546 widget->connect_visibility_changed (); |
18944
b2c4d6d461f0
fix conflict between main and editor menus when using alt keys (bug #42659)
Torsten <ttl@justmail.de>
parents:
18840
diff
changeset
|
1547 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1548 #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
|
1549 m_editor_window->enable_menu_shortcuts (false); |
19589
4fe86a372f10
Fix compilation error when building without QScintilla
Mike Miller <mtmiller@ieee.org>
parents:
19585
diff
changeset
|
1550 #endif |
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::copyClipboard (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 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
|
1556 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1557 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
|
1558 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
|
1559 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1560 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
|
1561 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
|
1562 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1563 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1564 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1565 emit copyClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1566 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1567 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1568 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
|
1569 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1570 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
|
1571 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1572 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
|
1573 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
|
1574 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
|
1575 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
|
1576 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1577 edit->insert (str); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1578 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1579 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1580 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1581 emit pasteClipboard_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1582 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1583 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1584 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
|
1585 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1586 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
|
1587 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1588 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
|
1589 if (edit) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1590 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1591 edit->selectAll (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1592 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1593 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1594 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1595 emit selectAll_signal (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1596 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1597 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1598 void main_window::handle_show_doc (const QString& file) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1599 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1600 m_doc_browser_window->setVisible (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1601 emit show_doc_signal (file); |
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 |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1604 void main_window::handle_register_doc (const QString& file) |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1605 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1606 emit register_doc_signal (file); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1607 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1608 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1609 void main_window::handle_unregister_doc (const QString& file) |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1610 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1611 emit unregister_doc_signal (file); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1612 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25054
diff
changeset
|
1613 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1614 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
|
1615 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1616 // actions after the startup files are executed |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1617 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1618 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1619 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
|
1620 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1621 if (settings) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1622 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1623 if (settings->value ("restore_octave_dir").toBool ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1624 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1625 // restore last dir from previous session |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1626 QStringList curr_dirs |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1627 = settings->value ("MainWindow/current_directory_list").toStringList (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1628 startup_dir |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1629 = QDir (curr_dirs.at (0)); // last dir in previous session |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1630 } |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1631 else if (! settings->value ("octave_startup_dir").toString ().isEmpty ()) |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1632 { |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1633 // do not restore but there is a startup dir configured |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1634 startup_dir |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1635 = QDir (settings->value ("octave_startup_dir").toString ()); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1636 } |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1637 |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1638 update_default_encoding |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1639 (settings->value (ed_default_enc.key, |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
1640 ed_default_enc.def).toString ()); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1641 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1642 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1643 if (! startup_dir.exists ()) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1644 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1645 // 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
|
1646 startup_dir = QDir (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1647 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1648 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1649 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
|
1650 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1651 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
|
1652 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
1653 #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
|
1654 // 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
|
1655 // This can not be done when the editor is created because all functions |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1656 // must be known for the lexer's auto completion informations |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1657 m_editor_window->empty_script (true, false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1658 m_editor_window->restore_session (settings); |
18833
6504a1932637
auto completion offers builtins and file functions for octave (bug #41371)
Torsten <ttl@justmail.de>
parents:
18823
diff
changeset
|
1659 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1660 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1661 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1662 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
|
1663 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1664 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1665 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
|
1666 { |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1667 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
|
1668 return; |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1669 |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1670 m_set_path_dlg = new set_path_dialog (this); |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1671 |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1672 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
|
1673 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
|
1674 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
|
1675 |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1676 // 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
|
1677 // 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
|
1678 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1679 connect (m_set_path_dlg, SIGNAL (interpreter_event (const fcn_callback&)), |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1680 this, SIGNAL (interpreter_event (const fcn_callback&))); |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1681 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1682 connect (m_set_path_dlg, SIGNAL (interpreter_event (const meth_callback&)), |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1683 this, SIGNAL (interpreter_event (const meth_callback&))); |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1684 |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
1685 connect (m_set_path_dlg, |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
1686 SIGNAL (modify_path_signal (const octave_value_list&, bool, bool)), |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
1687 this, SLOT (modify_path (const octave_value_list&, bool, bool))); |
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
1688 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1689 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
|
1690 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1691 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
|
1692 |
27311
0040b7668518
update load path dialog when path is modified via console
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27308
diff
changeset
|
1693 connect (qt_link, SIGNAL (update_path_dialog_signal (void)), |
27306
82ace1225a9c
update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27302
diff
changeset
|
1694 m_set_path_dlg, SLOT (update_model (void))); |
27391
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1695 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1696 // 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
|
1697 // 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
|
1698 |
a329a41cf341
use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents:
27377
diff
changeset
|
1699 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
|
1700 } |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1701 |
24715
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::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
|
1703 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1704 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1705 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
|
1706 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1707 m_find_files_dlg = new find_files_dialog (this); |
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 connect (m_find_files_dlg, SIGNAL (finished (int)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1710 this, SLOT (find_files_finished (int))); |
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 connect (m_find_files_dlg, SIGNAL (dir_selected (const QString &)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1713 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
|
1714 SLOT (set_current_directory (const QString&))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1715 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1716 connect (m_find_files_dlg, SIGNAL (file_selected (const QString &)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1717 this, SLOT (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
|
1718 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1719 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
|
1720 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1721 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1722 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
|
1723 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1724 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
|
1725 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1726 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1727 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
|
1728 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1729 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
|
1730 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1731 } |
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 void main_window::set_global_shortcuts (bool set_shortcuts) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1734 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1735 // this slot is called when the terminal gets/loses focus |
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 // return if the user don't want to use readline shortcuts |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1738 if (! m_prevent_readline_conflicts) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1739 return; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1740 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1741 if (set_shortcuts) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1742 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1743 // terminal loses focus: set the global shortcuts |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1744 configure_shortcuts (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1745 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1746 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1747 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1748 // terminal gets focus: disable some shortcuts |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1749 QKeySequence no_key = QKeySequence (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1750 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1751 // file menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1752 m_open_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1753 m_new_script_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1754 m_new_function_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1755 m_new_function_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1756 m_load_workspace_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1757 m_save_workspace_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1758 m_preferences_action->setShortcut (no_key); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
1759 m_set_path_action->setShortcut (no_key); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1760 m_exit_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1761 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1762 // edit menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1763 m_select_all_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1764 m_clear_clipboard_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1765 m_find_files_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1766 m_clear_command_history_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1767 m_clear_command_window_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1768 m_clear_workspace_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1769 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1770 // window menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1771 m_reset_windows_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1772 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1773 // help menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1774 m_ondisk_doc_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1775 m_online_doc_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1776 m_report_bug_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1777 m_octave_packages_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1778 m_contribute_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1779 m_developer_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1780 m_about_octave_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1781 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1782 // news menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1783 m_release_notes_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1784 m_current_news_action->setShortcut (no_key); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1785 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1786 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1787 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1788 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
|
1789 { |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1790 emit interpreter_event |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1791 ([ht, wd] (void) |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1792 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1793 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1794 |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1795 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
|
1796 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1797 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1798 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1799 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
|
1800 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1801 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
|
1802 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1803 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
|
1804 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
|
1805 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1806 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1807 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1808 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
|
1809 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
|
1810 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1811 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1812 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1813 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
|
1814 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1815 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
|
1816 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1817 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1818 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
|
1819 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1820 QHash<QMenu*, QStringList>::const_iterator i = m_hash_menu_text.constBegin (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1821 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1822 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
|
1823 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1824 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
|
1825 ++i; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1826 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1827 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1828 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1829 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
|
1830 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1831 // restore the new files creation setting |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1832 QSettings *settings = resource_manager::get_settings (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1833 settings->setValue ("editor/create_new_file",false); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1834 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
|
1835 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
|
1836 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1837 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1838 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
|
1839 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1840 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
|
1841 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1842 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1843 // The following slot is called after files have been selected in the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1844 // open file dialog., possibly with a new selected encoding stored in |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1845 // m_file_encoding |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1846 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
|
1847 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1848 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
|
1849 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
|
1850 } |
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 void main_window::edit_variable (const QString &expr, const octave_value& val) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1853 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1854 m_variable_editor_window->edit_variable (expr, val); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1855 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1856 if (! m_variable_editor_window->isVisible ()) |
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_variable_editor_window->show (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1859 m_variable_editor_window->raise (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1860 } |
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::refresh_variable_editor (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1865 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1866 m_variable_editor_window->refresh (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1867 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1868 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1869 void main_window::handle_variable_editor_update (void) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1870 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1871 // Called when the variable editor emits the updated signal. The size |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1872 // of a variable may have changed, so we refresh the workspace in the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1873 // interpreter. That will eventually cause the workspace view in the |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1874 // GUI to be updated. |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1875 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1876 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1877 ([] (interpreter& interp) |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1878 { |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1879 // INTERPRETER THREAD |
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1880 |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
1881 tree_evaluator& tw = interp.get_evaluator (); |
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
1882 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
1883 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
|
1884 |
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
1885 xevmgr.set_workspace (true, tw.get_symbol_info (), false); |
27243
c6807f5cc48b
replace some explicit callback functions with lambda expressions
John W. Eaton <jwe@octave.org>
parents:
27220
diff
changeset
|
1886 }); |
24715
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::closeEvent (QCloseEvent *e) |
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 e->ignore (); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1892 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1893 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
1894 ([] (interpreter& interp) |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1895 { |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1896 // INTERPRETER THREAD |
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1897 |
27261
dccdc3b001a2
eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents:
27260
diff
changeset
|
1898 Fquit (interp); |
27255
420611c61298
eliminate octave_cmd classes
John W. Eaton <jwe@octave.org>
parents:
27243
diff
changeset
|
1899 }); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1900 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1901 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1902 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
|
1903 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1904 // 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
|
1905 // 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
|
1906 // 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
|
1907 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1908 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
|
1909 dummyWidget->setObjectName ("CentralDummyWidget"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1910 dummyWidget->resize (10, 10); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1911 dummyWidget->setSizePolicy (QSizePolicy::Minimum, QSizePolicy::Minimum); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1912 dummyWidget->hide (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
1913 setCentralWidget (dummyWidget); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1914 } |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1915 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1916 // Main subroutine of the constructor |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1917 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1918 void main_window::construct (void) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1919 { |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1920 setWindowIcon (QIcon (":/actions/icons/logo.png")); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1921 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1922 m_workspace_window->setModel (m_workspace_model); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1923 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1924 connect (m_workspace_model, SIGNAL (model_changed (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1925 m_workspace_window, SLOT (handle_model_changed (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1926 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1927 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
|
1928 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
1929 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
|
1930 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1931 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1932 SIGNAL (edit_variable_signal (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1933 const octave_value&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1934 this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1935 SLOT (edit_variable (const QString&, const octave_value&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1936 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
1937 connect (qt_link, SIGNAL (refresh_variable_editor_signal (void)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1938 this, SLOT (refresh_variable_editor (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1939 |
27220
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
27219
diff
changeset
|
1940 connect (m_workspace_window, |
9a4a9fcc186b
connect workspace view rename variable signal to main window slot
John W. Eaton <jwe@octave.org>
parents:
27219
diff
changeset
|
1941 SIGNAL (rename_variable_signal (const QString&, const QString&)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1942 this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1943 SLOT (handle_rename_variable_request (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1944 const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1945 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1946 connect (m_variable_editor_window, SIGNAL (updated (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1947 this, SLOT (handle_variable_editor_update (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1948 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1949 construct_menu_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1950 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1951 construct_tool_bar (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1952 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1953 // Order is important. Deleting QSettings must be last. |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1954 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1955 m_command_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1956 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1957 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1958 m_history_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1959 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1960 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1961 m_file_browser_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1962 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1963 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1964 m_doc_browser_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1965 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1966 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1967 m_workspace_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1968 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1969 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1970 m_editor_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1971 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1972 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1973 m_variable_editor_window, SLOT (save_settings (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1974 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1975 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1976 this, SLOT (prepare_to_exit (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1977 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1978 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1979 shortcut_manager::instance, SLOT (cleanup_instance (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1980 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1981 // QSettings are saved upon deletion (i.e., cleanup_instance) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1982 connect (qApp, SIGNAL (aboutToQuit (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1983 resource_manager::instance, SLOT (cleanup_instance (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1984 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1985 connect (qApp, SIGNAL (focusChanged (QWidget*, QWidget*)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1986 this, SLOT (focus_changed (QWidget*, QWidget*))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1987 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1988 connect (this, SIGNAL (settings_changed (const QSettings *)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1989 this, SLOT (notice_settings (const QSettings *))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1990 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1991 connect (this, SIGNAL (editor_focus_changed (bool)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1992 this, SLOT (disable_menu_shortcuts (bool))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1993 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1994 connect (this, SIGNAL (editor_focus_changed (bool)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1995 m_editor_window, SLOT (enable_menu_shortcuts (bool))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
1996 |
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
|
1997 connect (this, SIGNAL (step_into_file_signal (void)), |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1998 m_editor_window, SLOT (request_step_into_file (void))); |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
1999 |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2000 connect (m_editor_window, SIGNAL (editor_tabs_changed_signal (bool)), |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2001 this, SLOT (editor_tabs_changed (bool))); |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2002 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2003 connect (m_editor_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2004 SIGNAL (request_open_file_external (const QString&, int)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2005 m_external_editor, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2006 SLOT (call_custom_editor (const QString&, int))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2007 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2008 connect (m_external_editor, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2009 SIGNAL (request_settings_dialog (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2010 this, SLOT (process_settings_dialog_request (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2011 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2012 connect (m_file_browser_window, SIGNAL (load_file_signal (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2013 this, SLOT (handle_load_workspace_request (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2014 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2015 connect (m_file_browser_window, SIGNAL (open_any_signal (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2016 this, SLOT (handle_open_any_request (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2017 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2018 connect (m_file_browser_window, SIGNAL (find_files_signal (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2019 this, SLOT (find_files (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2020 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2021 setWindowTitle ("Octave"); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2022 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2023 // See Octave bug #53409 and https://bugreports.qt.io/browse/QTBUG-55357 |
25091
2b8442c890d8
Fix locked GUI panels for Qt 5.6.1 through 5.7.0 series versions (bug #53409)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
25060
diff
changeset
|
2024 #if (QT_VERSION < 0x050601) || (QT_VERSION >= 0x050701) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2025 setDockOptions (QMainWindow::AnimatedDocks |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2026 | QMainWindow::AllowNestedDocks |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2027 | QMainWindow::AllowTabbedDocks); |
25091
2b8442c890d8
Fix locked GUI panels for Qt 5.6.1 through 5.7.0 series versions (bug #53409)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
25060
diff
changeset
|
2028 #else |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2029 setDockNestingEnabled (true); |
25091
2b8442c890d8
Fix locked GUI panels for Qt 5.6.1 through 5.7.0 series versions (bug #53409)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
25060
diff
changeset
|
2030 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2031 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2032 addDockWidget (Qt::RightDockWidgetArea, m_command_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2033 addDockWidget (Qt::RightDockWidgetArea, m_doc_browser_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2034 tabifyDockWidget (m_command_window, m_doc_browser_window); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2035 |
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2036 #if defined (HAVE_QSCINTILLA) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2037 addDockWidget (Qt::RightDockWidgetArea, m_editor_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2038 tabifyDockWidget (m_command_window, m_editor_window); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2039 #endif |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2040 addDockWidget (Qt::RightDockWidgetArea, m_variable_editor_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2041 tabifyDockWidget (m_command_window, m_variable_editor_window); |
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 addDockWidget (Qt::LeftDockWidgetArea, m_file_browser_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2044 addDockWidget (Qt::LeftDockWidgetArea, m_workspace_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2045 addDockWidget (Qt::LeftDockWidgetArea, m_history_window); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2046 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2047 int win_x = QApplication::desktop ()->width (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2048 int win_y = QApplication::desktop ()->height (); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2049 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2050 if (win_x > 960) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2051 win_x = 960; |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2052 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2053 if (win_y > 720) |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2054 win_y = 720; |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2055 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2056 setGeometry (0, 0, win_x, win_y); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2057 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2058 setStatusBar (m_status_bar); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2059 |
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2060 #if defined (HAVE_QSCINTILLA) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2061 connect (this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2062 SIGNAL (insert_debugger_pointer_signal (const QString&, int)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2063 m_editor_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2064 SLOT (handle_insert_debugger_pointer_request (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2065 int))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2066 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2067 connect (this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2068 SIGNAL (delete_debugger_pointer_signal (const QString&, int)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2069 m_editor_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2070 SLOT (handle_delete_debugger_pointer_request (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2071 int))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2072 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2073 connect (this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2074 SIGNAL (update_breakpoint_marker_signal (bool, const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2075 int, const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2076 m_editor_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2077 SLOT (handle_update_breakpoint_marker_request (bool, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2078 const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2079 int, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2080 const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2081 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2082 // Signals for removing/renaming files/dirs in the file browser |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2083 connect (m_file_browser_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2084 SIGNAL (file_remove_signal (const QString&, const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2085 m_editor_window, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2086 SLOT (handle_file_remove (const QString&, const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2087 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2088 connect (m_file_browser_window, SIGNAL (file_renamed_signal (bool)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2089 m_editor_window, SLOT (handle_file_renamed (bool))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2090 |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2091 // Signals for removing/renaming files/dirs in the temrinal window |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2092 connect (qt_link, SIGNAL (file_renamed_signal (bool)), |
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
|
2093 m_editor_window, SLOT (handle_file_renamed (bool))); |
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2094 #endif |
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2095 |
32d9f57d7245
fix missing unlock of mutex when gui editor is not present (bug #56097)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2096 // Signals for removing/renaming files/dirs in the temrinal window |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2097 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2098 SIGNAL (file_remove_signal (const QString&, const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2099 this, SLOT (file_remove_proxy (const QString&, const QString&))); |
24019
fc4ba8b1ff87
style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents:
24016
diff
changeset
|
2100 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2101 connect (this, SIGNAL (interpreter_event (const fcn_callback&)), |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2102 &m_octave_qobj, SLOT (interpreter_event (const fcn_callback&))); |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2103 |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2104 connect (this, SIGNAL (interpreter_event (const meth_callback&)), |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2105 &m_octave_qobj, SLOT (interpreter_event (const meth_callback&))); |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2106 |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2107 configure_shortcuts (); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2108 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2109 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2110 void main_window::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
|
2111 { |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2112 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
|
2113 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2114 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
|
2115 |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2116 connect (qt_link, |
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
|
2117 SIGNAL (set_workspace_signal (bool, bool, const symbol_info_list&)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2118 m_workspace_model, |
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
|
2119 SLOT (set_workspace (bool, bool, const symbol_info_list&))); |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2120 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2121 connect (qt_link, SIGNAL (clear_workspace_signal (void)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2122 m_workspace_model, SLOT (clear_workspace (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2123 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
2124 connect (qt_link, SIGNAL (directory_changed_signal (QString)), |
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
2125 this, SLOT (update_octave_directory (QString))); |
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
2126 |
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
2127 connect (qt_link, SIGNAL (directory_changed_signal (QString)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2128 m_file_browser_window, SLOT (update_octave_directory (QString))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2129 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27408
diff
changeset
|
2130 connect (qt_link, SIGNAL (directory_changed_signal (QString)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2131 m_editor_window, SLOT (update_octave_directory (QString))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2132 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2133 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2134 SIGNAL (execute_command_in_terminal_signal (QString)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2135 this, SLOT (execute_command_in_terminal (QString))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2136 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2137 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2138 SIGNAL (set_history_signal (const QStringList&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2139 m_history_window, SLOT (set_history (const QStringList&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2140 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2141 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2142 SIGNAL (append_history_signal (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2143 m_history_window, SLOT (append_history (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2144 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2145 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2146 SIGNAL (clear_history_signal (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2147 m_history_window, SLOT (clear_history (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2148 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2149 connect (qt_link, SIGNAL (enter_debugger_signal (void)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2150 this, SLOT (handle_enter_debugger (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2151 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2152 connect (qt_link, SIGNAL (exit_debugger_signal (void)), |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2153 this, SLOT (handle_exit_debugger (void))); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2154 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2155 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2156 SIGNAL (show_preferences_signal (void)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2157 this, SLOT (process_settings_dialog_request (void))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2158 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2159 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2160 SIGNAL (gui_preference_signal (const QString&, const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2161 QString*)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2162 this, SLOT (gui_preference (const QString&, const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2163 QString*))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2164 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2165 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2166 SIGNAL (edit_file_signal (const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2167 m_active_editor, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2168 SLOT (handle_edit_file_request (const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2169 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2170 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2171 SIGNAL (insert_debugger_pointer_signal (const QString&, int)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2172 this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2173 SLOT (handle_insert_debugger_pointer_request (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2174 int))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2175 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2176 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2177 SIGNAL (delete_debugger_pointer_signal (const QString&, int)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2178 this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2179 SLOT (handle_delete_debugger_pointer_request (const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2180 int))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2181 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2182 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2183 SIGNAL (update_breakpoint_marker_signal (bool, const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2184 int, const QString&)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2185 this, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2186 SLOT (handle_update_breakpoint_marker_request (bool, const QString&, |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2187 int, const QString&))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2188 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2189 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2190 SIGNAL (show_doc_signal (const QString &)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2191 this, SLOT (handle_show_doc (const QString &))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2192 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2193 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2194 SIGNAL (register_doc_signal (const QString &)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2195 this, SLOT (handle_register_doc (const QString &))); |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2196 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2197 connect (qt_link, |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2198 SIGNAL (unregister_doc_signal (const QString &)), |
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25940
diff
changeset
|
2199 this, SLOT (handle_unregister_doc (const QString &))); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2200 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2201 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2202 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
|
2203 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
|
2204 const QWidget *receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2205 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2206 QAction *a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2207 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2208 if (receiver) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2209 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
|
2210 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2211 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
|
2212 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2213 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
|
2214 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
|
2215 return a; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2216 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2217 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2218 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
|
2219 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2220 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
|
2221 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2222 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
|
2223 // 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
|
2224 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
|
2225 // remove single '&' (shortcut) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2226 base_name.remove ("&"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2227 // restore intended '&' |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2228 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
|
2229 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2230 // remember names with and without shortcut |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2231 m_hash_menu_text[menu] = QStringList () << name << base_name; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2232 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2233 return menu; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2234 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2235 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2236 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
|
2237 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2238 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
|
2239 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2240 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
|
2241 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2242 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
|
2243 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2244 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
|
2245 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2246 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
|
2247 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2248 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
|
2249 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2250 construct_news_menu (menu_bar); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
2251 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2252 #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
|
2253 // 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
|
2254 // editor's menu and tool bar |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2255 QList<QAction*> shared_actions; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2256 shared_actions << m_new_script_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2257 << m_new_function_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2258 << m_open_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2259 << m_find_files_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2260 << m_undo_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2261 << m_copy_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2262 << m_paste_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2263 <<m_select_all_action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2264 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
|
2265 #endif |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2266 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2267 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2268 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
|
2269 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2270 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
|
2271 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2272 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
|
2273 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2274 m_open_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2275 = file_menu->addAction (resource_manager::icon ("document-open"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2276 tr ("Open...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2277 m_open_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
|
2278 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
|
2279 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2280 #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
|
2281 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
|
2282 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2283 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2284 file_menu->addSeparator (); |
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_load_workspace_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2287 = file_menu->addAction (tr ("Load Workspace...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2288 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2289 m_save_workspace_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2290 = file_menu->addAction (tr ("Save Workspace As...")); |
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 file_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2293 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2294 m_exit_action = file_menu->addAction (tr ("Exit")); |
27118
99adef2c6e10
Enable "Quit" menu item on Mac application menu (bug #56155)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27102
diff
changeset
|
2295 m_exit_action->setMenuRole (QAction::QuitRole); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2296 m_exit_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
|
2297 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2298 connect (m_open_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2299 this, SLOT (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
|
2300 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2301 connect (m_load_workspace_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2302 this, SLOT (handle_load_workspace_request (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2303 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2304 connect (m_save_workspace_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2305 this, SLOT (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
|
2306 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2307 connect (m_exit_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2308 this, SLOT (close (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2309 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2310 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2311 void main_window::construct_new_menu (QMenu *p) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2312 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2313 QMenu *new_menu = p->addMenu (tr ("New")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2314 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2315 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
|
2316 = new_menu->addAction (resource_manager::icon ("document-new"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2317 tr ("New Script")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2318 m_new_script_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
|
2319 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2320 m_new_function_action = new_menu->addAction (tr ("New Function...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2321 m_new_function_action->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2322 m_new_function_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
|
2323 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2324 m_new_figure_action = new_menu->addAction (tr ("New Figure")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2325 m_new_figure_action->setEnabled (true); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2326 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2327 connect (m_new_script_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2328 this, SLOT (request_new_script (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2329 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2330 connect (m_new_function_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2331 this, SLOT (request_new_function (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2332 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2333 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
|
2334 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
|
2335 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2336 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
|
2337 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
|
2338 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2339 connect (this, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2340 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
|
2341 m_active_editor, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2342 SLOT (request_open_file (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
|
2343 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2344 connect (m_new_figure_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2345 this, SLOT (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
|
2346 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2347 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2348 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
|
2349 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2350 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
|
2351 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2352 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
|
2353 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2354 m_undo_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2355 = edit_menu->addAction (resource_manager::icon ("edit-undo"), tr ("Undo")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2356 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
|
2357 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2358 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2359 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2360 m_copy_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2361 = edit_menu->addAction (resource_manager::icon ("edit-copy"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2362 tr ("Copy"), this, SLOT (copyClipboard (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2363 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
|
2364 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2365 m_paste_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2366 = edit_menu->addAction (resource_manager::icon ("edit-paste"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2367 tr ("Paste"), this, SLOT (pasteClipboard (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2368 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
|
2369 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2370 m_select_all_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2371 = edit_menu->addAction (tr ("Select All"), this, SLOT (selectAll (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2372 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
|
2373 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2374 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
|
2375 = edit_menu->addAction (tr ("Clear Clipboard"), this, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2376 SLOT (clear_clipboard (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2377 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2378 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2379 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2380 m_find_files_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2381 = edit_menu->addAction (resource_manager::icon ("edit-find"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2382 tr ("Find Files...")); |
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 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2385 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2386 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
|
2387 = 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
|
2388 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2389 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
|
2390 = 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
|
2391 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2392 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
|
2393 = 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
|
2394 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2395 edit_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2396 |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2397 m_set_path_action |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2398 = 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
|
2399 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2400 m_preferences_action |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2401 = edit_menu->addAction (resource_manager::icon ("preferences-system"), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2402 tr ("Preferences...")); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2403 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2404 connect (m_find_files_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2405 this, SLOT (find_files (void))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2406 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2407 connect (m_clear_command_window_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2408 this, SLOT (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
|
2409 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2410 connect (m_clear_command_history_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2411 this, SLOT (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
|
2412 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2413 connect (m_clear_workspace_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2414 this, SLOT (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
|
2415 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2416 connect (m_clipboard, SIGNAL (dataChanged (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2417 this, SLOT (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
|
2418 clipboard_has_changed (); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2419 #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
|
2420 // Always enable paste action (unreliable clipboard signals in windows) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2421 // FIXME: This has to be removed, when the clipboards signals in windows |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2422 // are working again |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2423 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
|
2424 m_clear_clipboard_action->setEnabled (true); |
24625
be37df6e1fb4
always enable paste action in windows (bug #52361)
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
2425 #endif |
20039
3538c2824dd8
GUI: Move preferences to edit menu (Bug #44725)
John Donoghue
parents:
19985
diff
changeset
|
2426 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2427 connect (m_preferences_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2428 this, SLOT (process_settings_dialog_request (void))); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2429 |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2430 connect (m_set_path_action, SIGNAL (triggered (void)), |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2431 this, SLOT (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
|
2432 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2433 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2434 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2435 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
|
2436 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2437 const char *member) |
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 QAction *action = add_action (m_debug_menu, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2440 resource_manager::icon (QString (icon)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2441 item, member); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2442 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2443 action->setEnabled (false); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2444 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2445 #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
|
2446 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
|
2447 m_editor_window->toolbar ()->addAction (action); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2448 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2449 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2450 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2451 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2452 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2453 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
|
2454 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2455 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
|
2456 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2457 m_debug_step_over |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2458 = 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
|
2459 SLOT (debug_step_over (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2460 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2461 m_debug_step_into |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2462 = 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
|
2463 SLOT (debug_step_into (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2464 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2465 m_debug_step_out |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2466 = 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
|
2467 SLOT (debug_step_out (void))); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2468 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2469 m_debug_continue |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2470 = 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
|
2471 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
|
2472 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2473 m_debug_menu->addSeparator (); |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21670
diff
changeset
|
2474 #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
|
2475 m_editor_window->debug_menu ()->addSeparator (); |
16454
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2476 #endif |
246d25c8761b
split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents:
16453
diff
changeset
|
2477 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2478 m_debug_quit |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2479 = 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
|
2480 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
|
2481 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2482 |
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
|
2483 void main_window::editor_tabs_changed (bool have_tabs) |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2484 { |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2485 // Set state of action which depend on the existance of editor tabs |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2486 m_editor_has_tabs = have_tabs; |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2487 m_debug_step_over->setEnabled (have_tabs); |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2488 } |
9ec36417c262
debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26643
diff
changeset
|
2489 |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2490 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
|
2491 const QString& item, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2492 bool checkable, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2493 QWidget *widget) |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2494 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2495 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
|
2496 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2497 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
|
2498 action->setCheckable (checkable); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2499 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
|
2500 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2501 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
|
2502 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2503 if (checkable) |
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 // action for visibilty of dock widget |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2506 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
|
2507 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
|
2508 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2509 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
|
2510 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
|
2511 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2512 else |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2513 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2514 // action for focus of dock widget |
27281
0915fec3d3a9
prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27277
diff
changeset
|
2515 connect (action, SIGNAL (triggered (void)), 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
|
2516 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2517 } |
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
|
2518 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
|
2519 { |
922c47ff5218
disable editor actions in window menu when editor is not available (bug #56114)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27255
diff
changeset
|
2520 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
|
2521 } |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2522 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2523 return action; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2524 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2525 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2526 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
|
2527 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2528 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
|
2529 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2530 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
|
2531 (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
|
2532 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2533 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
|
2534 (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
|
2535 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2536 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
|
2537 (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
|
2538 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2539 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
|
2540 (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
|
2541 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2542 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
|
2543 (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
|
2544 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2545 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
|
2546 (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
|
2547 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2548 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
|
2549 (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
|
2550 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2551 window_menu->addSeparator (); |
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 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
|
2554 (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
|
2555 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2556 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
|
2557 (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
|
2558 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2559 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
|
2560 (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
|
2561 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2562 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
|
2563 (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
|
2564 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2565 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
|
2566 (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
|
2567 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2568 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
|
2569 (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
|
2570 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2571 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
|
2572 (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
|
2573 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2574 window_menu->addSeparator (); |
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_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
|
2577 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
|
2578 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2579 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2580 void main_window::construct_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
|
2581 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2582 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
|
2583 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2584 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
|
2585 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2586 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2587 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2588 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
|
2589 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
|
2590 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2591 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
|
2592 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
|
2593 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2594 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
|
2595 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
|
2596 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2597 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
|
2598 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
|
2599 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2600 help_menu->addSeparator (); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2601 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2602 m_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
|
2603 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
|
2604 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2605 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2606 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
|
2607 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2608 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
|
2609 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2610 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
|
2611 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
|
2612 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2613 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
|
2614 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
|
2615 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2616 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2617 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
|
2618 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2619 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
|
2620 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2621 m_release_notes_action = add_action (news_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2622 tr ("Release Notes"), SLOT (display_release_notes ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2623 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2624 m_current_news_action = add_action (news_menu, QIcon (), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2625 tr ("Community News"), SLOT (load_and_display_community_news ())); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2626 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2627 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2628 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
|
2629 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2630 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
|
2631 m_main_tool_bar->setStyleSheet (m_main_tool_bar->styleSheet () |
27478
9e526393d80a
reduced vertical space in gui with responsive toolbar buttons (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27457
diff
changeset
|
2632 + octgui_toolbar_style); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2633 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2634 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
|
2635 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
|
2636 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
|
2637 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2638 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
|
2639 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2640 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
|
2641 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
|
2642 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
|
2643 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2644 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
|
2645 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2646 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
|
2647 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
|
2648 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
|
2649 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
|
2650 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
|
2651 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
|
2652 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
|
2653 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
|
2654 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
|
2655 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
|
2656 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2657 // 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
|
2658 // 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
|
2659 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
|
2660 m_main_tool_bar->addWidget (m_current_directory_combo_box); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2661 QAction *current_dir_up |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2662 = m_main_tool_bar->addAction (resource_manager::icon ("go-up"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2663 tr ("One directory up")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2664 QAction *current_dir_search |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2665 = m_main_tool_bar->addAction (resource_manager::icon ("folder"), |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27271
diff
changeset
|
2666 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
|
2667 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2668 connect (m_current_directory_combo_box, SIGNAL (activated (QString)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2669 this, SLOT (set_current_working_directory (QString))); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2670 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2671 connect (m_current_directory_combo_box->lineEdit (), SIGNAL (returnPressed (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2672 this, SLOT (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
|
2673 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2674 connect (current_dir_search, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2675 this, SLOT (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
|
2676 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2677 connect (current_dir_up, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2678 this, SLOT (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
|
2679 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2680 connect (m_undo_action, SIGNAL (triggered (void)), |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2681 this, SLOT (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
|
2682 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2683 |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2684 QString main_window::gui_preference_adjust (const QString& key, |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2685 const QString& value) |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2686 { |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2687 QString adjusted_value = value; |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2688 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2689 // Immediately return if no new value is given |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2690 if (adjusted_value.isEmpty ()) |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2691 return adjusted_value; |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2692 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2693 // Not all encodings are available. Encodings are uppercase and do not |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2694 // use CPxxx but IBMxxx or WINDOWS-xxx. |
25702
bd30c6f8cfb7
update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25700
diff
changeset
|
2695 if (key == ed_default_enc.key) |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2696 { |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2697 adjusted_value = adjusted_value.toUpper (); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2698 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2699 QStringList codecs; |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2700 resource_manager::get_codecs (&codecs); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2701 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2702 QRegExp re ("^CP(\\d+)$"); |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2703 if (adjusted_value == "SYSTEM") |
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2704 adjusted_value = |
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2705 QTextCodec::codecForLocale ()->name ().toUpper ().prepend ("SYSTEM (").append (")"); |
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27270
diff
changeset
|
2706 else if (re.indexIn (adjusted_value) > -1) |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2707 { |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2708 if (codecs.contains ("IBM" + re.cap (1))) |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2709 adjusted_value = "IBM" + re.cap (1); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2710 else if (codecs.contains ("WINDOWS-" + re.cap (1))) |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2711 adjusted_value = "WINDOWS-" + re.cap (1); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2712 else |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2713 adjusted_value.clear (); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2714 } |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2715 else if (! codecs.contains (adjusted_value)) |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2716 adjusted_value.clear (); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2717 } |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2718 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2719 return adjusted_value; |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2720 } |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2721 |
25639
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2722 void main_window::gui_preference (const QString& key, const QString& value, |
25678
3418d3729a51
use exisitng mutex in octave_qt_link for changing gui preferences (bug #54369)
Torsten <mttl@mailbox.org>
parents:
25639
diff
changeset
|
2723 QString* read_value) |
25639
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2724 { |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2725 QSettings *settings = resource_manager::get_settings (); |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2726 *read_value = settings->value (key).toString (); |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2727 |
27218
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2728 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
|
2729 |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
2730 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
|
2731 |
25678
3418d3729a51
use exisitng mutex in octave_qt_link for changing gui preferences (bug #54369)
Torsten <mttl@mailbox.org>
parents:
25639
diff
changeset
|
2732 // 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
|
2733 qt_link->lock (); |
25678
3418d3729a51
use exisitng mutex in octave_qt_link for changing gui preferences (bug #54369)
Torsten <mttl@mailbox.org>
parents:
25639
diff
changeset
|
2734 |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2735 // Some preferences need extra handling |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2736 QString adjusted_value = gui_preference_adjust (key, value); |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2737 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2738 if (! adjusted_value.isEmpty () && (*read_value != adjusted_value)) |
25639
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2739 { |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2740 // Change settings only for new, non-empty values |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
2741 settings->setValue (key, QVariant (adjusted_value)); |
25639
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2742 emit settings_changed (settings); |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2743 } |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2744 |
25678
3418d3729a51
use exisitng mutex in octave_qt_link for changing gui preferences (bug #54369)
Torsten <mttl@mailbox.org>
parents:
25639
diff
changeset
|
2745 // 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
|
2746 qt_link->unlock (); |
a044202208af
more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents:
27209
diff
changeset
|
2747 qt_link->wake_all (); |
25639
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2748 } |
7644e7f1721f
change gui preferences from within the worker thread (bug #49119)
Torsten <mttl@mailbox.org>
parents:
25616
diff
changeset
|
2749 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2750 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
|
2751 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2752 QSettings *settings = resource_manager::get_settings (); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2753 if (settings->value ("terminal/focus_after_command",false).toBool ()) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27478
diff
changeset
|
2754 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
|
2755 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2756 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2757 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
|
2758 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2759 // file menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2760 shortcut_manager::set_shortcut (m_open_action, "main_file:open_file"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2761 shortcut_manager::set_shortcut (m_new_script_action, "main_file:new_file"); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2762 shortcut_manager::set_shortcut (m_new_function_action, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2763 "main_file:new_function"); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2764 shortcut_manager::set_shortcut (m_new_function_action, "main_file:new_figure"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2765 shortcut_manager::set_shortcut (m_load_workspace_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2766 "main_file:load_workspace"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2767 shortcut_manager::set_shortcut (m_save_workspace_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2768 "main_file:save_workspace"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2769 shortcut_manager::set_shortcut (m_exit_action,"main_file:exit"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2770 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2771 // edit menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2772 shortcut_manager::set_shortcut (m_copy_action, "main_edit:copy"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2773 shortcut_manager::set_shortcut (m_paste_action, "main_edit:paste"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2774 shortcut_manager::set_shortcut (m_undo_action, "main_edit:undo"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2775 shortcut_manager::set_shortcut (m_select_all_action, "main_edit:select_all"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2776 shortcut_manager::set_shortcut (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
|
2777 "main_edit:clear_clipboard"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2778 shortcut_manager::set_shortcut (m_find_files_action, "main_edit:find_in_files"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2779 shortcut_manager::set_shortcut (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
|
2780 "main_edit:clear_history"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2781 shortcut_manager::set_shortcut (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
|
2782 "main_edit:clear_command_window"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2783 shortcut_manager::set_shortcut (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
|
2784 "main_edit:clear_workspace"); |
27298
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2785 shortcut_manager::set_shortcut (m_set_path_action, "main_edit:set_path"); |
1805f8586179
new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
27287
diff
changeset
|
2786 shortcut_manager::set_shortcut (m_preferences_action, "main_edit:preferences"); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2787 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2788 // debug menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2789 shortcut_manager::set_shortcut (m_debug_step_over, "main_debug:step_over"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2790 shortcut_manager::set_shortcut (m_debug_step_into, "main_debug:step_into"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2791 shortcut_manager::set_shortcut (m_debug_step_out, "main_debug:step_out"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2792 shortcut_manager::set_shortcut (m_debug_continue, "main_debug:continue"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2793 shortcut_manager::set_shortcut (m_debug_quit, "main_debug:quit"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2794 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2795 // window menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2796 shortcut_manager::set_shortcut (m_show_command_window_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2797 "main_window:show_command"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2798 shortcut_manager::set_shortcut (m_show_history_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2799 "main_window:show_history"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2800 shortcut_manager::set_shortcut (m_show_workspace_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2801 "main_window:show_workspace"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2802 shortcut_manager::set_shortcut (m_show_file_browser_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2803 "main_window:show_file_browser"); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2804 shortcut_manager::set_shortcut (m_show_editor_action, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2805 "main_window:show_editor"); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2806 shortcut_manager::set_shortcut (m_show_documentation_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2807 "main_window:show_doc"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2808 shortcut_manager::set_shortcut (m_show_variable_editor_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2809 "main_window:show_variable_editor"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2810 shortcut_manager::set_shortcut (m_command_window_action, "main_window:command"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2811 shortcut_manager::set_shortcut (m_history_action, "main_window:history"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2812 shortcut_manager::set_shortcut (m_workspace_action, "main_window:workspace"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2813 shortcut_manager::set_shortcut (m_file_browser_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2814 "main_window:file_browser"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2815 shortcut_manager::set_shortcut (m_editor_action, "main_window:editor"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2816 shortcut_manager::set_shortcut (m_documentation_action, "main_window:doc"); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2817 shortcut_manager::set_shortcut (m_variable_editor_action, |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25024
diff
changeset
|
2818 "main_window:variable_editor"); |
24715
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2819 shortcut_manager::set_shortcut (m_reset_windows_action, "main_window:reset"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2820 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2821 // help menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2822 shortcut_manager::set_shortcut (m_ondisk_doc_action, "main_help:ondisk_doc"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2823 shortcut_manager::set_shortcut (m_online_doc_action, "main_help:online_doc"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2824 shortcut_manager::set_shortcut (m_report_bug_action, "main_help:report_bug"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2825 shortcut_manager::set_shortcut (m_octave_packages_action, "main_help:packages"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2826 shortcut_manager::set_shortcut (m_contribute_action, "main_help:contribute"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2827 shortcut_manager::set_shortcut (m_developer_action, "main_help:developer"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2828 shortcut_manager::set_shortcut (m_about_octave_action, "main_help:about"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2829 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2830 // news menu |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2831 shortcut_manager::set_shortcut (m_release_notes_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2832 "main_news:release_notes"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2833 shortcut_manager::set_shortcut (m_current_news_action, |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2834 "main_news:community_news"); |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2835 } |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2836 |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2837 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
|
2838 { |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2839 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
|
2840 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
|
2841 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
|
2842 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
|
2843 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
|
2844 #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
|
2845 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
|
2846 #endif |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2847 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
|
2848 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
|
2849 return list; |
88bb3f086d9a
move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
2850 } |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2851 |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2852 void main_window::update_default_encoding (const QString& default_encoding) |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2853 { |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2854 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
|
2855 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
|
2856 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
|
2857 mfile_encoding = "SYSTEM"; |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2858 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2859 emit interpreter_event |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2860 ([mfile_encoding] (interpreter& interp) |
27270
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2861 { |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2862 // INTERPRETER THREAD |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2863 |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27298
diff
changeset
|
2864 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
|
2865 }); |
47f42ad90b0b
Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27267
diff
changeset
|
2866 } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16532
diff
changeset
|
2867 } |