Mercurial > octave
annotate libgui/qterminal/libqterminal/QTerminal.cc @ 31621:0645ea65ca6b
handle icons and themes in gui_settings class, not resource_manager
* resource-manager.h, resource-manager.cc
(resource_manager::config_icon_theme, resource_manager::icon):
Move funtcions to gui-settings.h and gui-settings.cc.
* Canvas.cc, QTerminal.cc, documentation-bookmarks.cc,
documentation.cc, dw-main-window.cc, files-dock-widget.cc,
find-files-dialog.cc, gui-settings.cc, gui-settings.h,
history-dock-widget.cc, file-editor.cc, main-window.cc,
octave-dock-widget.cc, octave-qobject.cc, qt-interpreter-events.cc,
resource-manager.cc, resource-manager.h, variable-editor.cc:
Change all uses.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 18:43:12 -0500 |
parents | ad014fc78bd6 |
children | 1a1f47f17ed4 |
rev | line source |
---|---|
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
1 /* |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
2 |
26376
00f796120a6d
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
26008
diff
changeset
|
3 Copyright (C) 2012-2019 Michael Goffioul. |
00f796120a6d
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
26008
diff
changeset
|
4 Copyright (C) 2012-2019 Jacob Dawid. |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
5 |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
6 This file is part of QTerminal. |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
7 |
17795
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
8 This program is free software: you can redistribute it and/or modify |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
9 it under the terms of the GNU General Public License as published by |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
10 the Free Software Foundation, either version 3 of the License, or |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
11 (at your option) any later version. |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
12 |
17795
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
13 This program is distributed in the hope that it will be useful, |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
14 but WITHOUT ANY WARRANTY; without even the implied warranty of |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
16 GNU General Public License for more details. |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
17 |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
18 You should have received a copy of the GNU General Public License |
17795
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
19 along with this program. If not, |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23810
diff
changeset
|
20 see <https://www.gnu.org/licenses/>. |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
21 |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
22 */ |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
23 |
27659
d4f1abfaf3a5
* Qterminal.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
27658
diff
changeset
|
24 #if defined (HAVE_CONFIG_H) |
d4f1abfaf3a5
* Qterminal.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
27658
diff
changeset
|
25 # include "config.h" |
d4f1abfaf3a5
* Qterminal.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
27658
diff
changeset
|
26 #endif |
d4f1abfaf3a5
* Qterminal.cc: Include config.h.
John W. Eaton <jwe@octave.org>
parents:
27658
diff
changeset
|
27 |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
28 #include <QKeySequence> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
29 #include <QWidget> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
30 #include <QStringList> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
31 #include <QColor> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
32 #include <QList> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
33 #include <QMenu> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
34 #include <QClipboard> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
35 #include <QApplication> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
36 #include <QAction> |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
37 |
27724
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
38 #include "gui-preferences-global.h" |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27288
diff
changeset
|
39 #include "gui-preferences-cs.h" |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
40 #include "gui-preferences-sc.h" |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
41 #include "gui-settings.h" |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
42 #include "octave-qobject.h" |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
43 #include "resource-manager.h" |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27288
diff
changeset
|
44 |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
45 #include "QTerminal.h" |
16639
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
46 #if defined (Q_OS_WIN32) |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
47 # include "win32/QWinTerminalImpl.h" |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
48 #else |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
49 # include "unix/QUnixTerminalImpl.h" |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
50 #endif |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
51 |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
52 QTerminal * |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
53 QTerminal::create (octave::base_qobject& oct_qobj, QWidget *p) |
16639
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
54 { |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
55 #if defined (Q_OS_WIN32) |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
56 QTerminal *terminal = new QWinTerminalImpl (oct_qobj, p); |
16639
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
57 #else |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
58 QTerminal *terminal = new QUnixTerminalImpl (oct_qobj, p); |
16639
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
59 #endif |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
60 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
61 // FIXME: this function should probably be called from or part of the |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
62 // QTerminal constructor, but I think that would mean some major |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
63 // surgery because then the constructor for QTerminal and the derived |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
64 // Unix- and Windows-specific versions would need access to the |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
65 // base_qobject object, or the design would have to change significantly. |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
66 |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
67 terminal->construct (oct_qobj); |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
68 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
69 return terminal; |
16639
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
70 } |
ba808cd9d86c
simplify QTerminal inheritance scheme
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
71 |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
72 // slot for the terminal's context menu |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
73 void |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
74 QTerminal::handleCustomContextMenuRequested (const QPoint& at) |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
75 { |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
76 QClipboard * cb = QApplication::clipboard (); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
77 QString selected_text = selectedText(); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
78 bool has_selected_text = ! selected_text.isEmpty (); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
79 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
80 _edit_action->setVisible (false); |
27288
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
81 m_edit_selected_action->setVisible (false); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
82 m_help_selected_action->setVisible (false); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
83 m_doc_selected_action->setVisible (false); |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
84 |
23404
314ac710f2ae
highlight error messages in gui and provide links to open files (bug #35619)
Torsten <mttl@mailbox.org>
parents:
23403
diff
changeset
|
85 #if defined (Q_OS_WIN32) |
314ac710f2ae
highlight error messages in gui and provide links to open files (bug #35619)
Torsten <mttl@mailbox.org>
parents:
23403
diff
changeset
|
86 // include this when in windows because there is no filter for |
314ac710f2ae
highlight error messages in gui and provide links to open files (bug #35619)
Torsten <mttl@mailbox.org>
parents:
23403
diff
changeset
|
87 // detecting links and error messages yet |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
88 if (has_selected_text) |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
89 { |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
90 QRegExp file ("(?:[ \\t]+)(\\S+) at line (\\d+) column (?:\\d+)"); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
91 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
92 int pos = file.indexIn (selected_text); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
93 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
94 if (pos > -1) |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
95 { |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
96 QString file_name = file.cap (1); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
97 QString line = file.cap (2); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
98 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
99 _edit_action->setVisible (true); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
100 _edit_action->setText (tr ("Edit %1 at line %2") |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
101 .arg (file_name).arg (line)); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
102 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
103 QStringList data; |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
104 data << file_name << line; |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
105 _edit_action->setData (data); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
106 } |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
107 } |
23404
314ac710f2ae
highlight error messages in gui and provide links to open files (bug #35619)
Torsten <mttl@mailbox.org>
parents:
23403
diff
changeset
|
108 #endif |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
109 |
27288
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
110 if (has_selected_text) |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
111 { |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
112 QRegExp expr (".*\b*(\\w+)\b*.*"); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
113 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
114 int pos = expr.indexIn (selected_text); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
115 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
116 if (pos > -1) |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
117 { |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
118 QString expr_found = expr.cap (1); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
119 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
120 m_edit_selected_action->setVisible (true); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
121 m_edit_selected_action->setText (tr ("Edit %1").arg (expr_found)); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
122 m_edit_selected_action->setData (expr_found); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
123 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
124 m_help_selected_action->setVisible (true); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
125 m_help_selected_action->setText (tr ("Help on %1").arg (expr_found)); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
126 m_help_selected_action->setData (expr_found); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
127 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
128 m_doc_selected_action->setVisible (true); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
129 m_doc_selected_action->setText (tr ("Documentation on %1") |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
130 .arg (expr_found)); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
131 m_doc_selected_action->setData (expr_found); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
132 } |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
133 } |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
134 |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
135 _paste_action->setEnabled (cb->text().length() > 0); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
136 _copy_action->setEnabled (has_selected_text); |
27288
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
137 _run_selection_action->setVisible (has_selected_text); |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
138 |
23403
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
139 // Get the actions of any hotspots the filters may have found |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
140 QList<QAction*> actions = get_hotspot_actions (at); |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
141 if (actions.length ()) |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
142 _contextMenu->addSeparator (); |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
143 for (int i = 0; i < actions.length (); i++) |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
144 _contextMenu->addAction (actions.at(i)); |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
145 |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
146 // Finally, show the context menu |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
147 _contextMenu->exec (mapToGlobal (at)); |
23403
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
148 |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
149 // Cleaning up, remove actions of the hotspot |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
150 for (int i = 0; i < actions.length (); i++) |
fee531225679
make url in the console window clickable under linux (bug #41076)
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
151 _contextMenu->removeAction (actions.at(i)); |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
152 } |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
153 |
25813
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
154 // slot for running the selected code |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
155 void |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
156 QTerminal::run_selection () |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
157 { |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
158 QStringList commands = selectedText ().split (QRegExp ("[\r\n]"), |
29049
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27818
diff
changeset
|
159 #if defined (HAVE_QT_SPLITBEHAVIOR_ENUM) |
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27818
diff
changeset
|
160 Qt::SkipEmptyParts); |
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27818
diff
changeset
|
161 #else |
25813
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
162 QString::SkipEmptyParts); |
29049
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27818
diff
changeset
|
163 #endif |
25813
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
164 for (int i = 0; i < commands.size (); i++) |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
165 emit execute_command_in_terminal_signal (commands.at (i)); |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
166 |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
167 } |
d98d7df9fd15
updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents:
25054
diff
changeset
|
168 |
20995
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
169 // slot for edit files in error messages |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
170 void |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
171 QTerminal::edit_file () |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
172 { |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
173 QString file = _edit_action->data ().toStringList ().at (0); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
174 int line = _edit_action->data ().toStringList ().at (1).toInt (); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
175 |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
176 emit edit_mfile_request (file,line); |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
177 } |
aab7a3c7168e
edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents:
20987
diff
changeset
|
178 |
27288
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
179 // slot for edit selected function names |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
180 void QTerminal::edit_selected () |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
181 { |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
182 QString file = m_edit_selected_action->data ().toString (); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
183 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
184 emit edit_mfile_request (file,0); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
185 } |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
186 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
187 // slot for showing help on selected epxression |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
188 void QTerminal::help_on_expression () |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
189 { |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
190 QString expr = m_help_selected_action->data ().toString (); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
191 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
192 emit execute_command_in_terminal_signal ("help " + expr); |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
193 } |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
194 |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
195 // slot for showing documentation on selected epxression |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
196 void QTerminal::doc_on_expression () |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
197 { |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
198 QString expr = m_doc_selected_action->data ().toString (); |
29691
67eccd062618
fix calling documentations from terminal and editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29535
diff
changeset
|
199 m_octave_qobj.show_documentation_window (expr); |
27288
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
200 } |
0a2e5c808709
allow editing and showing help on selected text in console (bug #41276)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27276
diff
changeset
|
201 |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
202 void |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
203 QTerminal::notice_settings (void) |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
204 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
205 octave::gui_settings settings; |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
206 |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
207 // Set terminal font: |
16640
0ee7b4d1b940
* QTerminal.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents:
16639
diff
changeset
|
208 QFont term_font = QFont (); |
17508
a28c3fb15ad8
Set style hint to ensure a monospaced font in the gui terminal
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
209 term_font.setStyleHint (QFont::TypeWriter); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
210 QString default_font = settings.value (global_mono_font).toString (); |
16640
0ee7b4d1b940
* QTerminal.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents:
16639
diff
changeset
|
211 term_font.setFamily |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
212 (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
|
213 term_font.setPointSize |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
214 (settings.value (cs_font_size).toInt ()); |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
215 setTerminalFont (term_font); |
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
216 |
25869
462066384af3
fix minimum size of console widget in gui (bug54620)
Torsten <mttl@mailbox.org>
parents:
25813
diff
changeset
|
217 QFontMetrics metrics (term_font); |
462066384af3
fix minimum size of console widget in gui (bug54620)
Torsten <mttl@mailbox.org>
parents:
25813
diff
changeset
|
218 setMinimumSize (metrics.maxWidth ()*16, metrics.height ()*3); |
462066384af3
fix minimum size of console widget in gui (bug54620)
Torsten <mttl@mailbox.org>
parents:
25813
diff
changeset
|
219 |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
220 QString cursor_type |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
221 = settings.value (cs_cursor).toString (); |
16640
0ee7b4d1b940
* QTerminal.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents:
16639
diff
changeset
|
222 |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
223 bool cursor_blinking; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
224 if (settings.contains (global_cursor_blinking.key)) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
225 cursor_blinking = settings.value (global_cursor_blinking).toBool (); |
23810
9c24aae7515f
allow cursor flashing to be configured globally in gui (bug #51460)
Torsten <mttl@mailbox.org>
parents:
23404
diff
changeset
|
226 else |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
227 cursor_blinking = settings.value (cs_cursor_blinking).toBool (); |
16640
0ee7b4d1b940
* QTerminal.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents:
16639
diff
changeset
|
228 |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
229 for (int ct = IBeamCursor; ct <= UnderlineCursor; ct++) |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
230 { |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
231 if (cursor_type.toStdString () == cs_cursor_types[ct]) |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
232 { |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
233 setCursorType ((CursorType) ct, cursor_blinking); |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
234 break; |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
235 } |
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
236 } |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
237 |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
238 bool cursorUseForegroundColor |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
239 = settings.value (cs_cursor_use_fgcol).toBool (); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
240 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
241 int mode = settings.value (cs_color_mode).toInt (); |
29484
bed2fd5b8263
allow a second color theme for the console window (dark mode)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29393
diff
changeset
|
242 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
243 setForegroundColor (settings.color_value (cs_colors[0], mode)); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
244 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
245 setBackgroundColor (settings.color_value (cs_colors[1], mode)); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
246 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
247 setSelectionColor (settings.color_value (cs_colors[2], mode)); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
248 |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
249 setCursorColor (cursorUseForegroundColor, |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
250 settings.color_value (cs_colors[3], mode)); |
27583
315c35e6037c
use symbolic constants for command widget preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27560
diff
changeset
|
251 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
252 setScrollBufferSize (settings.value (cs_hist_buffer).toInt ()); |
19690
bd1369a2a651
add extra action for interrupting with Ctrl-C (bug #44204)
Torsten <ttl@justmail.de>
parents:
18678
diff
changeset
|
253 |
27724
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
254 // If the Copy shortcut is Ctrl+C, then the Copy action also emits |
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
255 // a signal for interrupting the current code executed by the worker. |
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
256 // If the Copy shortcut is not Ctrl+C, an extra interrupt action is |
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
257 // set up for emitting the interrupt signal. |
19690
bd1369a2a651
add extra action for interrupting with Ctrl-C (bug #44204)
Torsten <ttl@justmail.de>
parents:
18678
diff
changeset
|
258 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
259 QString sc = settings.sc_value (sc_main_edit_copy); |
20146
f5e65f806123
fix checking copy shortcut in terminal when no setting available (bug #44968)
Torsten <ttl@justmail.de>
parents:
19943
diff
changeset
|
260 |
29393
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
261 // Dis- or enable extra interrupt action: We need an extra option when |
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
262 // copy shortcut is not Ctrl-C or when global shortcuts (like copy) are |
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
263 // disabled. |
27724
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
264 bool extra_ir_action |
29393
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
265 = (sc != QKeySequence (Qt::ControlModifier | Qt::Key_C).toString ()) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
266 || settings.value (sc_prevent_rl_conflicts).toBool (); |
27724
19e80f22aa47
provide structure and settings value method for shortcut key sequences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27686
diff
changeset
|
267 |
19690
bd1369a2a651
add extra action for interrupting with Ctrl-C (bug #44204)
Torsten <ttl@justmail.de>
parents:
18678
diff
changeset
|
268 _interrupt_action->setEnabled (extra_ir_action); |
bd1369a2a651
add extra action for interrupting with Ctrl-C (bug #44204)
Torsten <ttl@justmail.de>
parents:
18678
diff
changeset
|
269 has_extra_interrupt (extra_ir_action); |
20987
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20146
diff
changeset
|
270 |
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20146
diff
changeset
|
271 // check whether shortcut Ctrl-D is in use by the main-window |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
29783
diff
changeset
|
272 bool ctrld = settings.value (sc_main_ctrld).toBool (); |
20987
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20146
diff
changeset
|
273 _nop_action->setEnabled (! ctrld); |
16413
28136851099a
remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
diff
changeset
|
274 } |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
275 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
276 void |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
277 QTerminal::construct (octave::base_qobject& oct_qobj) |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
278 { |
31621
0645ea65ca6b
handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents:
31619
diff
changeset
|
279 octave::gui_settings settings; |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
280 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
281 // context menu |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
282 setContextMenuPolicy (Qt::CustomContextMenu); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
283 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
284 _contextMenu = new QMenu (this); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
285 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
286 _copy_action |
31621
0645ea65ca6b
handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents:
31619
diff
changeset
|
287 = _contextMenu->addAction (settings.icon ("edit-copy"), tr ("Copy"), this, |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
288 SLOT (copyClipboard ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
289 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
290 _paste_action |
31621
0645ea65ca6b
handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents:
31619
diff
changeset
|
291 = _contextMenu->addAction (settings.icon ("edit-paste"), tr ("Paste"), this, |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
292 SLOT (pasteClipboard ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
293 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
294 _contextMenu->addSeparator (); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
295 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
296 _selectall_action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
297 = _contextMenu->addAction (tr ("Select All"), this, SLOT (selectAll ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
298 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
299 _run_selection_action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
300 = _contextMenu->addAction (tr ("Run Selection"), this, |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
301 SLOT (run_selection ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
302 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
303 m_edit_selected_action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
304 = _contextMenu->addAction (tr ("Edit selection"), this, |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
305 SLOT (edit_selected ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
306 m_help_selected_action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
307 = _contextMenu->addAction (tr ("Help on selection"), this, |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
308 SLOT (help_on_expression ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
309 m_doc_selected_action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
310 = _contextMenu->addAction (tr ("Documentation on selection"), this, |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
311 SLOT (doc_on_expression ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
312 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
313 _edit_action = _contextMenu->addAction (tr (""), this, SLOT (edit_file ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
314 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
315 _contextMenu->addSeparator (); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
316 |
29783
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
317 _contextMenu->addAction (tr ("Clear Window"), this, |
5154c91e0d98
eliminate some connections to parent objects in octave_dock_widget classes
John W. Eaton <jwe@octave.org>
parents:
29691
diff
changeset
|
318 SIGNAL (clear_command_window_request ())); |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
319 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
320 connect (this, SIGNAL (customContextMenuRequested (QPoint)), |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
321 this, SLOT (handleCustomContextMenuRequested (QPoint))); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
322 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
323 // extra interrupt action |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
324 _interrupt_action = new QAction (this); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
325 addAction (_interrupt_action); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
326 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
327 _interrupt_action->setShortcut |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
328 (QKeySequence (Qt::ControlModifier + Qt::Key_C)); |
29393
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
329 _interrupt_action->setShortcutContext (Qt::WidgetWithChildrenShortcut); |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
330 |
29393
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
331 bool ok = connect (_interrupt_action, SIGNAL (triggered ()), |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
332 this, SLOT (terminal_interrupt ())); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
333 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
334 // dummy (nop) action catching Ctrl-D in terminal, no connection |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
335 _nop_action = new QAction (this); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
336 addAction (_nop_action); |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
337 |
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
338 _nop_action->setShortcut (QKeySequence (Qt::ControlModifier + Qt::Key_D)); |
29393
ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29150
diff
changeset
|
339 _nop_action->setShortcutContext (Qt::WidgetWithChildrenShortcut); |
27648
2952471e29a7
eliminate global access to resource_manager in qterminal widget
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
340 } |