Mercurial > octave
annotate libgui/src/terminal-dock-widget.cc @ 31696:8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
* settings-dialog.ui: Use a custom type for the
* shortcuts-tree-widget.h, shortcuts-tree-widget.cc: New files.
(shortcuts_tree_widget): New class to use for editing and displaying
shortcuts in the settings dialog. Adapt constructor from
shortcut_manager::fill_treewidget function.
(enter_shortcut): Move here from shortcut-manager.h and
shortcut-manager.cc.
(tree_widget_shortcut_item): New class to use for items in the
shortcuts_tree_widget class in place of QTreeWidgetItem.
(shortcut_edit_dialog): New class to use for shortcut editing dialog
in place of a simple QDialog. Allows for capturing edited values in
the dialog object.
* gui-preferences-sc.h, gui-preferences-sc.cc (sc_group):
Drop trailing "/" from definition and move here from
gui-preferences.h. Update code that prepends sc_group to a settings key.
(get_shortcut_section): New function.
* gui-preferences.h, gui-preferences.cc
(sc_pref::def_value, sc_pref::def_text): New functions.
(all_shortcut_preferences::value, all_shortcut_preferences::keys): New
static funtions.
(all_shortcut_preferences::do_value,
all_shortcut_preferences::do_keys): New helper functions.
* gui-settings.cc (gui_settings::sc_def_value):
Simply call sc_pref::def_value.
* settings-dialog.h, settings-dialog.cc (class settings_dialog):
Eliminate use of base_qobject and shortcut_manager.
(settings_dialog::import_shortcut_set): Get file name here. Call
shortcuts_tree_widget::import_shortcuts instead of
shortcut_manager::import_export.
(settings_dialog::export_shortcut_set): Get file name here. Call
shortcuts_tree_widget::export_shortcuts instead of
shortcut_manager::import_export.
(settings_dialog::default_shortcut_set): Check whether to overwrite
shortcuts here. Call shortcuts_tree_widget::set_default_shortcuts
instead of shortcut_manager::import_export.
(settings_dialog::write_changed_settings): Eliminate CLOSING
argument. Call shortcuts_tree_widget::write_settings instead of
shortcut_manager::write_shortcuts.
(settings_dialog::get_shortcuts_file_name): New function to prompt
user for file name.
(settings_dialog::overwrite_all_shortcuts): New function to ask user
whether replacing shortcuts is OK.
(import_export_action): Move enum decl here from shortcut-manager.h.
* main-window.cc (main_window::process_settings_dialog_request):
Eliminate m_octave_qobj in call to settings_dialog ctor.
(main_window::main_window): Don't call shortcut_manager::init_data.
* terminal-dock-widget.h, terminal-dock-widget.cc
(terminal_dock_widget::init_control_d_shortcut_behavior): New function.
(terminal_dock_widget::terminal_dock_widget): Use it instead of
performing same action in shortcut_manager::init.
* octave-qobject.h, octave-qobject.cc
(base_qobject::m_shortcut_manager): Delete data member.
(base_qobject::get_shortcut_manager): Delete.
(base_qobject::base_qobject): Don't call shortcut_manager::init_data.
* shortcut-manager.h, shortcut-manager.cc: Delete. Eliminates the now
unnecessary shortcut_manager class.
* libgui/src/module.mk: Update.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 26 Dec 2022 17:29:59 -0500 |
parents | deb553ac2c54 |
children | dd904ce6f53f |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29787
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
14692
d6d250812c01
Made the terminal window dockable, too. Now the whole interface is fully dockable.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
27 # include "config.h" |
15286
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
28 #endif |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
29 |
30690
e2c8c852399e
replace use of depreciated QDesktopWidget in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
30 #include <QScreen> |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
31 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
32 // This header is only needed for the new terminal widget. |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
33 #if defined (HAVE_QSCINTILLA) |
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
34 # include "command-widget.h" |
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
35 #endif |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
36 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
37 // This header is only needed for the old terminal widget. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
38 #include "QTerminal.h" |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
39 |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
40 #include "gui-preferences-cs.h" |
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
41 #include "gui-preferences-global.h" |
31696
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
42 #include "gui-preferences-sc.h" |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
43 #include "gui-settings.h" |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
44 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
45 #include "octave-qobject.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27281
diff
changeset
|
46 #include "terminal-dock-widget.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27281
diff
changeset
|
47 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
48 OCTAVE_BEGIN_NAMESPACE(octave) |
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
49 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
50 terminal_dock_widget::terminal_dock_widget (QWidget *p, |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
51 base_qobject& oct_qobj) |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
52 : octave_dock_widget ("TerminalDockWidget", p, oct_qobj), |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
53 m_experimental_terminal_widget (oct_qobj.experimental_terminal_widget ()) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
54 { |
31696
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
55 init_control_d_shortcut_behavior (); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
56 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
57 // FIXME: we could do this in a better way, but improving it doesn't |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
58 // matter much if we will eventually be removing the old terminal. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
59 if (m_experimental_terminal_widget) |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
60 { |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
61 #if defined (HAVE_QSCINTILLA) |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
62 command_widget *widget = new command_widget (oct_qobj, this); |
31068
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
63 console *con = widget->get_console (); |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
64 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
65 connect (this, &terminal_dock_widget::settings_changed, |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
66 widget, &command_widget::notice_settings); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
67 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
68 connect (this, &terminal_dock_widget::update_prompt_signal, |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
69 widget, &command_widget::update_prompt); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
70 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
71 connect (this, &terminal_dock_widget::interpreter_output_signal, |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
72 widget, &command_widget::insert_interpreter_output); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
73 |
31068
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
74 connect (this, &terminal_dock_widget::execute_command_signal, |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
75 con, &console::execute_command); |
0b402f523f09
allow executing a command in the new terminal widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31067
diff
changeset
|
76 |
31087
9c0099048264
exp cmd widget: fix missing promt after error
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
77 connect (this, &terminal_dock_widget::new_command_line_signal, |
9c0099048264
exp cmd widget: fix missing promt after error
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
78 con, &console::new_command_line); |
9c0099048264
exp cmd widget: fix missing promt after error
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31068
diff
changeset
|
79 |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
80 m_terminal = widget; |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
81 #endif |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
82 } |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
83 else |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
84 { |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
85 QTerminal *widget = QTerminal::create (oct_qobj, this); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
86 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
87 connect (this, &terminal_dock_widget::settings_changed, |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
88 widget, &QTerminal::notice_settings); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
89 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
90 // Connect the visibility signal to the terminal for |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
91 // dis-/enabling timers. |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
92 connect (this, &terminal_dock_widget::visibilityChanged, |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
93 widget, &QTerminal::handle_visibility_changed); |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
94 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
95 m_terminal = widget; |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
96 } |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
97 |
24768
11cc3973381b
use "m_" prefix for member variable in terminal dock widget class
John W. Eaton <jwe@octave.org>
parents:
24733
diff
changeset
|
98 m_terminal->setObjectName ("OctaveTerminal"); |
11cc3973381b
use "m_" prefix for member variable in terminal dock widget class
John W. Eaton <jwe@octave.org>
parents:
24733
diff
changeset
|
99 m_terminal->setFocusPolicy (Qt::StrongFocus); |
17920
5c3f22dd0bbb
raise SIGINT in octave_interpreter instead of in QTerminal
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
100 |
25508
3edae6ba1fcd
use a custom title bar widget for the main dock widgets
Torsten <mttl@mailbox.org>
parents:
25355
diff
changeset
|
101 set_title (tr ("Command Window")); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
102 |
24768
11cc3973381b
use "m_" prefix for member variable in terminal dock widget class
John W. Eaton <jwe@octave.org>
parents:
24733
diff
changeset
|
103 setWidget (m_terminal); |
11cc3973381b
use "m_" prefix for member variable in terminal dock widget class
John W. Eaton <jwe@octave.org>
parents:
24733
diff
changeset
|
104 setFocusProxy (m_terminal); |
23808
2b1b2a795ba6
update clickable urls in terminal also when visible terminal has no focus
Torsten <mttl@mailbox.org>
parents:
23220
diff
changeset
|
105 |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
106 // Chose a reasonable size at startup in order to avoid truncated |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
107 // startup messages |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
108 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
109 gui_settings settings; |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
110 |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
111 QFont font = QFont (); |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
112 font.setStyleHint (QFont::TypeWriter); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
113 QString default_font = settings.value (global_mono_font).toString (); |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
114 font.setFamily |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
115 (settings.value (cs_font.key, default_font).toString ()); |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
116 font.setPointSize |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
117 (settings.value (cs_font_size).toInt ()); |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
118 |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
119 QFontMetrics metrics(font); |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
120 |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
121 int win_x = metrics.maxWidth()*80; |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
122 int win_y = metrics.height()*25; |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
123 |
30690
e2c8c852399e
replace use of depreciated QDesktopWidget in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
124 int max_x = QGuiApplication::primaryScreen ()->availableGeometry ().width (); |
e2c8c852399e
replace use of depreciated QDesktopWidget in GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
125 int max_y = QGuiApplication::primaryScreen ()->availableGeometry ().height (); |
24791
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
126 |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
127 if (win_x > max_x) |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
128 win_x = max_x; |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
129 if (win_y > max_y) |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
130 win_y = max_y; |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
131 |
9421e891294e
fix truncated startup message in terminal widget on windows (bug #53189)
Torsten <mttl@mailbox.org>
parents:
24768
diff
changeset
|
132 setGeometry (0, 0, win_x, win_y); |
29787
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
133 |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
134 if (! p) |
b4d2fa28d1d4
allow terminal window to be opened from command line
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
135 make_window (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
136 } |
24011
9107bae20480
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23808
diff
changeset
|
137 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
138 bool terminal_dock_widget::has_focus (void) const |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
139 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
140 QWidget *w = widget (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
141 return w->hasFocus (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
142 } |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
143 |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
144 QTerminal * terminal_dock_widget::get_qterminal (void) |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
145 { |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
146 return (m_experimental_terminal_widget |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
147 ? nullptr : dynamic_cast<QTerminal *> (m_terminal)); |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
148 } |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
149 |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
150 #if defined (HAVE_QSCINTILLA) |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
151 command_widget * terminal_dock_widget::get_command_widget (void) |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
152 { |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
153 return (m_experimental_terminal_widget |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
154 ? dynamic_cast<command_widget *> (m_terminal) : nullptr); |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
155 } |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
156 #endif |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29611
diff
changeset
|
157 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
158 void terminal_dock_widget::notice_settings (void) |
29611
d64ad3b93372
eliminate direct parent to child connection in terminal dock widget
John W. Eaton <jwe@octave.org>
parents:
29550
diff
changeset
|
159 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
160 emit settings_changed (); |
29611
d64ad3b93372
eliminate direct parent to child connection in terminal dock widget
John W. Eaton <jwe@octave.org>
parents:
29550
diff
changeset
|
161 } |
d64ad3b93372
eliminate direct parent to child connection in terminal dock widget
John W. Eaton <jwe@octave.org>
parents:
29550
diff
changeset
|
162 |
31067
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
163 void terminal_dock_widget::init_command_prompt () |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
164 { |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
165 if (m_experimental_terminal_widget) |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
166 { |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
167 #if defined (HAVE_QSCINTILLA) |
31067
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
168 command_widget *cmd = get_command_widget (); |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
169 if (cmd) |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
170 cmd->init_command_prompt (); |
31222
1a0756f7c90a
disable experimental terminal widget when building without qscintilla
Torsten Lilge <ttl-octave@mailbox.org>
parents:
31087
diff
changeset
|
171 #endif |
31067
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
172 } |
5261a81765b0
merge input and output of exp. terminal widget into one widget
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30964
diff
changeset
|
173 } |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
174 |
31696
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
175 void terminal_dock_widget::init_control_d_shortcut_behavior (void) |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
176 { |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
177 gui_settings settings; |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
178 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
179 // Reset use of Ctrl-D. Do this before the call to beginGroup |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
180 // because sc_main_ctrld.key already begins with the sc_group |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
181 // prefix. |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
182 settings.setValue (sc_main_ctrld.key, false); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
183 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
184 settings.beginGroup (sc_group); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
185 const QStringList shortcut_settings_keys = settings.allKeys (); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
186 settings.endGroup (); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
187 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
188 for (const auto& settings_key : shortcut_settings_keys) |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
189 { |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
190 // Check whether Ctrl+D is used from main window, i.e. is a |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
191 // global shortcut. |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
192 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
193 QString section = get_shortcut_section (settings_key); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
194 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
195 if (section.startsWith ("main_")) |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
196 { |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
197 sc_pref scpref = all_shortcut_preferences::value (settings_key); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
198 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
199 QKeySequence actual = QKeySequence (settings.sc_value (scpref)); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
200 |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
201 if (actual == QKeySequence (Qt::ControlModifier+Qt::Key_D)) |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
202 { |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
203 settings.setValue (sc_main_ctrld.key, true); |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
204 break; |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
205 } |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
206 } |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
207 } |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
208 } |
8fed04d0607c
eliminate shortcut_manager class and revamp shortcut handling
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
209 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
31222
diff
changeset
|
210 OCTAVE_END_NAMESPACE(octave) |