Mercurial > octave
annotate libgui/src/shortcut-manager.cc @ 31619:ad014fc78bd6
use individual local gui_settings objects
Previously, we created a single gui_settings object (derived from
QSettings) and accessed it from the resource_manager object. That
design is not necessary and is not the way QSettings was designed to
be used. Instead of managing a single object, we should be using
individual QSettings objects where needed. Each individual QSettings
object manages thread-safe access to a single global collection of
settings. The Qt docs say that operations on QSettings are not thread
safe, but that means that you can't create a QSettings object in one
thread and use it in another without some locking. I'm not sure
whether we were doing that correctly, but with this change it no
longer matters. Each QSettings object does perform locking when
reading or writing the underlying global data.
* resource-manager.h, resource-manager.cc
(resource_manager::m_settings): Delete data member.
(resource_manager::get_settings): Delete.
* annotation-dialog.cc, QTerminal.cc, QTerminal.h, command-widget.cc,
command-widget.h, community-news.cc, dialog.cc,
documentation-bookmarks.cc, documentation-bookmarks.h,
documentation-dock-widget.cc, documentation-dock-widget.h,
documentation.cc, documentation.h, dw-main-window.cc,
dw-main-window.h, external-editor-interface.cc, files-dock-widget.cc,
files-dock-widget.h, find-files-dialog.cc, history-dock-widget.cc,
history-dock-widget.h, file-editor-interface.h, file-editor-tab.cc,
file-editor-tab.h, file-editor.cc, file-editor.h, find-dialog.cc,
octave-qscintilla.cc, main-window.cc, main-window.h, news-reader.cc,
octave-dock-widget.cc, octave-dock-widget.h, qt-interpreter-events.cc,
qt-interpreter-events.h, release-notes.cc, resource-manager.cc,
resource-manager.h, set-path-dialog.cc, settings-dialog.cc,
settings-dialog.h, shortcut-manager.cc, shortcut-manager.h,
terminal-dock-widget.cc, terminal-dock-widget.h, variable-editor.cc,
variable-editor.h, welcome-wizard.cc, workspace-model.cc,
workspace-model.h, workspace-view.cc: Use local gui_settings objects
instead of accessing a pointer to a single gui_settings object owned
by the resource_manager object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 14:23:53 -0500 |
parents | cd833a9baaa7 |
children | ca7d58406f82 |
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:
30432
diff
changeset
|
3 // Copyright (C) 2014-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 //////////////////////////////////////////////////////////////////////// |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21568
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" |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
28 #endif |
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
29 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
30 #include <QAction> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
31 #include <QApplication> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
32 #include <QCheckBox> |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
33 #include <QDebug> |
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
34 #include <QDialogButtonBox> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
35 #include <QFileDialog> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
36 #include <QGridLayout> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
37 #include <QHeaderView> |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
38 #include <QKeySequence> |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
39 #include <QLineEdit> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
40 #include <QMessageBox> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
41 #include <QPushButton> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
42 #include <QVBoxLayout> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
diff
changeset
|
43 #include <QtCore> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27330
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:
27330
diff
changeset
|
46 #include "shortcut-manager.h" |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27630
diff
changeset
|
47 #include "gui-preferences-global.h" |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
48 #include "gui-preferences-sc.h" |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
49 #include "gui-settings.h" |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
50 #include "error.h" |
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
51 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
52 namespace octave |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
53 { |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
54 // enter_shortcut: |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
55 // class derived from QLineEdit for directly entering key sequences which |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
56 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
57 enter_shortcut::enter_shortcut (QWidget *p) : QLineEdit (p) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
58 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
59 m_direct_shortcut = true; // the shortcut is directly entered |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
60 m_shift_modifier = false; // the shift modifier is not added |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
61 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
62 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
63 // new keyPressEvent |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
64 void enter_shortcut::keyPressEvent (QKeyEvent *e) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
65 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
66 if (! m_direct_shortcut) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
67 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
68 QLineEdit::keyPressEvent (e); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
69 return; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
70 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
71 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
72 if (e->type () == QEvent::KeyPress) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
73 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
74 int key = e->key (); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
75 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
76 if (key == Qt::Key_unknown || key == 0) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
77 return; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
78 |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
79 Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers (); //e->modifiers (); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
80 |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
81 if (m_shift_modifier || (modifiers & Qt::ShiftModifier)) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
82 key += Qt::SHIFT; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
83 if (modifiers & Qt::ControlModifier) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
84 key += Qt::CTRL; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
85 if (modifiers & Qt::AltModifier) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
86 key += Qt::ALT; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
87 if (modifiers & Qt::MetaModifier) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
88 key += Qt::META; |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
89 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
90 setText (QKeySequence (key).toString ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
91 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
92 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
93 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
94 // slot for checkbox whether the shortcut is directly entered or not |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
95 void enter_shortcut::handle_direct_shortcut (int state) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
96 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
97 if (state) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
98 m_direct_shortcut = true; // the shortcut is directly entered |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
99 else |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
100 m_direct_shortcut = false; // the shortcut has to be written as text |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
101 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
102 |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
103 // slot for checkbox whether the shift modifier should be added |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
104 void enter_shortcut::handle_shift_modifier (int state) |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
105 { |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
106 if (state) |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
107 m_shift_modifier = true; // the shortcut is directly entered |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
108 else |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
109 m_shift_modifier = false; // the shortcut has to be written as text |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
110 } |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
111 |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
112 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
113 shortcut_manager::shortcut_manager (base_qobject& oct_qobj) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
114 : m_octave_qobj (oct_qobj) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
115 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
116 setObjectName ("Shortcut_Manager"); |
19595
be7ac98fab43
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19251
diff
changeset
|
117 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
118 // Mac: don't let Qt interpret CMD key ("Meta" in Qt terminology) as Ctrl |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
119 #if defined (Q_OS_MAC) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
120 QCoreApplication::setAttribute (Qt::AA_MacDontSwapCtrlAndMeta, true); |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
121 #endif |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
122 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
123 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
124 void shortcut_manager::init_data (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
125 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
126 gui_settings settings; |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
127 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
128 settings.setValue (sc_main_ctrld.key, false); // reset use fo ctrl-d |
20987
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20986
diff
changeset
|
129 |
27937
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
130 // actions not related to specific menus or widgets |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
131 |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
132 // dock widgets |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
133 init (tr ("Undock/Dock Widget"), sc_dock_widget_dock); |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
134 init (tr ("Close Widget"), sc_dock_widget_close); |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
135 |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
136 // actions of the main window |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
137 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
138 // file |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
139 init (tr ("New File"), sc_main_file_new_file); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
140 init (tr ("New Function"), sc_main_file_new_function); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
141 init (tr ("New Figure"), sc_main_file_new_figure); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
142 init (tr ("Open File"), sc_main_file_open_file); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
143 init (tr ("Load Workspace"), sc_main_file_load_workspace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
144 init (tr ("Save Workspace As"), sc_main_file_save_workspace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
145 init (tr ("Exit Octave"), sc_main_file_exit); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
146 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
147 // edit |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
148 init (tr ("Copy"), sc_main_edit_copy); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
149 init (tr ("Paste"), sc_main_edit_paste); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
150 init (tr ("Undo"), sc_main_edit_undo); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
151 init (tr ("Select All"), sc_main_edit_select_all); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
152 init (tr ("Clear Clipboard"), sc_main_edit_clear_clipboard); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
153 init (tr ("Find in Files"), sc_main_edit_find_in_files); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
154 init (tr ("Clear Command Window"), sc_main_edit_clear_command_window); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
155 init (tr ("Clear Command History"), sc_main_edit_clear_history); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
156 init (tr ("Clear Workspace"), sc_main_edit_clear_workspace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
157 init (tr ("Set Path"), sc_main_edit_set_path); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
158 init (tr ("Preferences"), sc_main_edit_preferences); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
159 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
160 // debug |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
161 init (tr ("Step"), sc_main_debug_step_over); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
162 init (tr ("Step Into"), sc_main_debug_step_into); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
163 init (tr ("Step Out"), sc_main_debug_step_out); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
164 init (tr ("Continue"), sc_main_debug_continue); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
165 init (tr ("Quit Debug Mode"), sc_main_debug_quit); |
18697
908523bd79b4
use shortcut manager for the debug menu
Torsten <ttl@justmail.de>
parents:
18685
diff
changeset
|
166 |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
167 // tools |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
168 init (tr ("Start/Stop Profiler Session"), sc_main_tools_start_profiler); |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
169 init (tr ("Resume Profiler Session"), sc_main_tools_resume_profiler); |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
170 init (tr ("Show Profile Data"), sc_main_tools_show_profiler); |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
171 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
172 // window |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
173 init (tr ("Show Command Window"), sc_main_window_show_command); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
174 init (tr ("Show Command History"), sc_main_window_show_history); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
175 init (tr ("Show File Browser"), sc_main_window_show_file_browser); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
176 init (tr ("Show Workspace"), sc_main_window_show_workspace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
177 init (tr ("Show Editor"), sc_main_window_show_editor); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
178 init (tr ("Show Documentation"), sc_main_window_show_doc); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
179 init (tr ("Show Variable Editor"), sc_main_window_show_variable_editor); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
180 init (tr ("Command Window"), sc_main_window_command); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
181 init (tr ("Command History"), sc_main_window_history); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
182 init (tr ("File Browser"), sc_main_window_file_browser); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
183 init (tr ("Workspace"), sc_main_window_workspace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
184 init (tr ("Editor"), sc_main_window_editor); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
185 init (tr ("Documentation"), sc_main_window_doc); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
186 init (tr ("Variable Editor"), sc_main_window_variable_editor); |
27860
cbd4d97100b3
add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27818
diff
changeset
|
187 init (tr ("Previous Widget"), sc_main_window_previous_dock); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
188 init (tr ("Reset Default Window Layout"), sc_main_window_reset); |
18707
f31fde98c872
use shortcut manager for the window menu
Torsten <ttl@justmail.de>
parents:
18697
diff
changeset
|
189 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
190 // help |
30432
db045364dca9
Fixed typos before string freeze
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30398
diff
changeset
|
191 init (tr ("Show On-disk Documentation"), sc_main_help_ondisk_doc); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
192 init (tr ("Show Online Documentation"), sc_main_help_online_doc); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
193 init (tr ("Report Bug"), sc_main_help_report_bug); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
194 init (tr ("Octave Packages"), sc_main_help_packages); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
195 init (tr ("Contribute to Octave"), sc_main_help_contribute); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
196 init (tr ("Octave Developer Resources"), sc_main_help_developer); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
197 init (tr ("About Octave"), sc_main_help_about); |
18710
584b20e9112c
use shortcut manager for the main help menu
Torsten <ttl@justmail.de>
parents:
18707
diff
changeset
|
198 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
199 // news |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
200 init (tr ("Release Notes"), sc_main_news_release_notes); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
201 init (tr ("Community News"), sc_main_news_community_news); |
18711
9ef65c422f53
use shortcut manager for the main news menu
Torsten <ttl@justmail.de>
parents:
18710
diff
changeset
|
202 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
203 // Tab handling |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
204 // The following shortcuts are moved into a separate tab. The key names |
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
205 // are not changed, to preserve compatibility with older versions. |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
206 init (tr ("Close Tab"), sc_edit_file_close); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
207 init (tr ("Close All Tabs"), sc_edit_file_close_all); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
208 init (tr ("Close Other Tabs"), sc_edit_file_close_other); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
209 init (tr ("Switch to Left Tab"), sc_edit_tabs_switch_left_tab); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
210 init (tr ("Switch to Right Tab"), sc_edit_tabs_switch_right_tab); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
211 init (tr ("Move Tab Left"), sc_edit_tabs_move_tab_left); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
212 init (tr ("Move Tab Right"), sc_edit_tabs_move_tab_right); |
24712
95815fc93a3a
move shortcuts for tab closing into a separate global settings-section
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
213 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
214 // Zooming |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
215 init (tr ("Zoom In"), sc_edit_view_zoom_in); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
216 init (tr ("Zoom Out"), sc_edit_view_zoom_out); |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
217 #if defined (Q_OS_MAC) |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
218 init (tr ("Zoom Normal"), sc_edit_view_zoom_normal); |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
219 #else |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
220 init (tr ("Zoom Normal"), sc_edit_view_zoom_normal); |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
221 #endif |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
222 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
223 // actions of the editor |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
224 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
225 // file |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
226 init (tr ("Edit Function"), sc_edit_file_edit_function); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
227 init (tr ("Save File"), sc_edit_file_save); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
228 init (tr ("Save File As"), sc_edit_file_save_as); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
229 init (tr ("Print"), sc_edit_file_print); |
18624
a827fc5fe59d
handle actions from the editors file and edit menu via the shortcut manager
Torsten <ttl@justmail.de>
parents:
18611
diff
changeset
|
230 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
231 // edit |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
232 init (tr ("Redo"), sc_edit_edit_redo); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
233 init (tr ("Cut"), sc_edit_edit_cut); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
234 init (tr ("Find and Replace"), sc_edit_edit_find_replace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
235 init (tr ("Find Next"), sc_edit_edit_find_next); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
236 init (tr ("Find Previous"), sc_edit_edit_find_previous); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
237 init (tr ("Delete to Start of Word"), sc_edit_edit_delete_start_word); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
238 init (tr ("Delete to End of Word"), sc_edit_edit_delete_end_word); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
239 init (tr ("Delete to Start of Line"), sc_edit_edit_delete_start_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
240 init (tr ("Delete to End of Line"), sc_edit_edit_delete_end_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
241 init (tr ("Delete Line"), sc_edit_edit_delete_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
242 init (tr ("Copy Line"), sc_edit_edit_copy_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
243 init (tr ("Cut Line"), sc_edit_edit_cut_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
244 init (tr ("Duplicate Selection/Line"), sc_edit_edit_duplicate_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
245 init (tr ("Transpose Line"), sc_edit_edit_transpose_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
246 init (tr ("Show Completion List"), sc_edit_edit_completion_list); |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18631
diff
changeset
|
247 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
248 init (tr ("Comment Selection"), sc_edit_edit_comment_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
249 init (tr ("Uncomment Selection"), sc_edit_edit_uncomment_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
250 init (tr ("Comment Selection (Choosing String)"), sc_edit_edit_comment_var_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
251 init (tr ("Uppercase Selection"), sc_edit_edit_upper_case); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
252 init (tr ("Lowercase Selection"), sc_edit_edit_lower_case); |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18631
diff
changeset
|
253 |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
254 #if defined (Q_OS_MAC) |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
255 init (tr ("Indent Selection Rigidly"), sc_edit_edit_indent_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
256 init (tr ("Unindent Selection Rigidly"), sc_edit_edit_unindent_selection); |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
257 #else |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
258 init (tr ("Indent Selection Rigidly"), sc_edit_edit_indent_selection); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
259 init (tr ("Unindent Selection Rigidly"), sc_edit_edit_unindent_selection); |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
260 #endif |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
261 init (tr ("Indent Code"), sc_edit_edit_smart_indent_line_or_selection); |
18923
58f1178f49ef
Redefine mac specific default shortcuts (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18922
diff
changeset
|
262 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
263 init (tr ("Convert Line Endings to Windows"), sc_edit_edit_conv_eol_winows); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
264 init (tr ("Convert Line Endings to Unix"), sc_edit_edit_conv_eol_unix); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
265 init (tr ("Convert Line Endings to Mac"), sc_edit_edit_conv_eol_mac); |
19247
9582fad68730
add actions for converting the eol characters of the editor file
Torsten <ttl@justmail.de>
parents:
19246
diff
changeset
|
266 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
267 init (tr ("Goto Line"), sc_edit_edit_goto_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
268 init (tr ("Move to Matching Brace"), sc_edit_edit_move_to_brace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
269 init (tr ("Select to Matching Brace"), sc_edit_edit_select_to_brace); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
270 init (tr ("Toggle Bookmark"), sc_edit_edit_toggle_bookmark); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
271 init (tr ("Next Bookmark"), sc_edit_edit_next_bookmark); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
272 init (tr ("Previous Bookmark"), sc_edit_edit_previous_bookmark); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
273 init (tr ("Remove All Bookmark"), sc_edit_edit_remove_bookmark); |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
274 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
275 init (tr ("Preferences"), sc_edit_edit_preferences); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
276 init (tr ("Styles Preferences"), sc_edit_edit_styles_preferences); |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
277 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
278 // view |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
279 init (tr ("Show Line Numbers"), sc_edit_view_show_line_numbers); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
280 init (tr ("Show Whitespace Characters"), sc_edit_view_show_white_spaces); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
281 init (tr ("Show Line Endings"), sc_edit_view_show_eol_chars); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
282 init (tr ("Show Indentation Guides"), sc_edit_view_show_ind_guides); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
283 init (tr ("Show Long Line Marker"), sc_edit_view_show_long_line); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
284 init (tr ("Show Toolbar"), sc_edit_view_show_toolbar); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
285 init (tr ("Show Statusbar"), sc_edit_view_show_statusbar); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
286 init (tr ("Show Horizontal Scrollbar"), sc_edit_view_show_hscrollbar); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
287 init (tr ("Sort Tabs Alphabetically"), sc_edit_view_sort_tabs); |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
288 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
289 // debug |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
290 init (tr ("Toggle Breakpoint"), sc_edit_debug_toggle_breakpoint); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
291 init (tr ("Next Breakpoint"), sc_edit_debug_next_breakpoint); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
292 init (tr ("Previous Breakpoint"), sc_edit_debug_previous_breakpoint); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
293 init (tr ("Remove All Breakpoints"), sc_edit_debug_remove_breakpoints); |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
294 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
295 // run |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
296 init (tr ("Run File"), sc_edit_run_run_file); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
297 init (tr ("Run Selection"), sc_edit_run_run_selection); |
18665
777281eeb3d4
add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
298 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
299 // help |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
300 init (tr ("Help on Keyword"), sc_edit_help_help_keyword); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
301 init (tr ("Document on Keyword"), sc_edit_help_doc_keyword); |
20693
7751bd56d0be
added actions and shortcuts for switching editor tabs
Torsten <ttl@justmail.de>
parents:
20686
diff
changeset
|
302 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
303 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
304 // Documentation browser |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
305 init (tr ("Go to Homepage"), sc_doc_go_home); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
306 init (tr ("Go Back one Page"), sc_doc_go_back); |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
307 init (tr ("Go Forward one Page"), sc_doc_go_next); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29206
diff
changeset
|
308 init (tr ("Bookmark this Page"), sc_doc_bookmark); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
309 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
310 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
311 // write one or all actual shortcut set(s) into a settings file |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
312 void shortcut_manager::write_shortcuts (gui_settings& settings, |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
313 bool closing) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
314 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
315 bool sc_ctrld = false; |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
316 |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
317 QString sc_main = sc_main_file.mid (0, sc_main_file.indexOf ('_') + 1); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
318 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
319 for (int i = 0; i < m_sc.count (); i++) // loop over all shortcuts |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
320 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
321 settings.setValue (sc_group + "/" + m_sc.at (i).m_settings_key, |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
322 m_sc.at (i).m_actual_sc.toString ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
323 // special: check main-window for Ctrl-D (Terminal) |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
324 if (m_sc.at (i).m_settings_key.startsWith (sc_main) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
325 && m_sc.at (i).m_actual_sc == QKeySequence (Qt::ControlModifier+Qt::Key_D)) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
326 sc_ctrld = true; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
327 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
328 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
329 settings.setValue (sc_main_ctrld.key, sc_ctrld); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
330 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
331 if (closing) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
332 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
333 delete m_dialog; // the dialog for key sequences can be removed now |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
334 m_dialog = nullptr; // make sure it is zero again |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
335 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
336 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
337 settings.sync (); // sync the settings file |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
338 } |
20987
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20986
diff
changeset
|
339 |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
340 void shortcut_manager::set_shortcut (QAction *action, const sc_pref& scpref, |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
341 bool enable) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
342 { |
29206
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
343 if (! enable) |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
344 { |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
345 // Disable => remove existing shortcut from the action |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
346 action->setShortcut (QKeySequence ()); |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
347 return; |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
348 } |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
349 |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
350 // Enable: Is the given key known? If yes, get the value from the |
a0a892829b6d
fix handling global shortcuts when preventing conflicts with readline
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29068
diff
changeset
|
351 // settings file and set it to the action |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
352 int index; |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
353 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
354 index = m_action_hash[scpref.key] - 1; |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
355 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
356 if (index > -1 && index < m_sc.count ()) |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
357 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
358 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
359 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
360 action->setShortcut (QKeySequence (settings.sc_value (scpref))); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
361 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
362 else |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
363 qDebug () << "Key: " << scpref.key << " not found in m_action_hash"; |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
364 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
365 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
366 void shortcut_manager::shortcut (QShortcut *sc, const sc_pref& scpref) |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
367 { |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
368 int index; |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
369 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
370 index = m_action_hash[scpref.key] - 1; |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
371 |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
372 if (index > -1 && index < m_sc.count ()) |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
373 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
374 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
375 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
376 sc->setKey (QKeySequence (settings.sc_value (scpref))); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
377 } |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
378 else |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
379 qDebug () << "Key: " << scpref.key << " not found in m_action_hash"; |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
380 } |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
381 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
382 void shortcut_manager::fill_treewidget (QTreeWidget *tree_view) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
383 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
384 m_dialog = nullptr; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
385 m_level_hash.clear (); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
386 |
24827
1e0718c1867c
eliminate most Qt version checks
John W. Eaton <jwe@octave.org>
parents:
24724
diff
changeset
|
387 tree_view->header ()->setSectionResizeMode (QHeaderView::ResizeToContents); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
388 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
389 QTreeWidgetItem *main = new QTreeWidgetItem (tree_view); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
390 main->setText (0, tr ("Global")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
391 main->setExpanded (true); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
392 QTreeWidgetItem *main_file = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
393 main_file->setText (0, tr ("File Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
394 QTreeWidgetItem *main_edit = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
395 main_edit->setText (0, tr ("Edit Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
396 QTreeWidgetItem *main_debug = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
397 main_debug->setText (0, tr ("Debug Menu")); |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
398 QTreeWidgetItem *main_tools = new QTreeWidgetItem (main); |
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
399 main_tools->setText (0, tr ("Tools Menu")); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
400 QTreeWidgetItem *main_window = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
401 main_window->setText (0, tr ("Window Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
402 QTreeWidgetItem *main_help = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
403 main_help->setText (0, tr ("Help Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
404 QTreeWidgetItem *main_news = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
405 main_news->setText (0, tr ("News Menu")); |
27937
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
406 QTreeWidgetItem *main_dock_widgets = new QTreeWidgetItem (main); |
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
407 main_dock_widgets->setText (0, tr ("Handling of Dock Widgets")); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
408 QTreeWidgetItem *main_tabs = new QTreeWidgetItem (main); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
409 main_tabs->setText (0, tr ("Tab Handling in Dock Widgets")); |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
410 QTreeWidgetItem *main_find = new QTreeWidgetItem (main); |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
411 main_find->setText (0, tr ("Find & Replace in Dock Widgets")); |
25976
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
412 QTreeWidgetItem *main_zoom = new QTreeWidgetItem (main); |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
413 main_zoom->setText (0, tr ("Zooming in Editor and Documentation")); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
414 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
415 m_level_hash[sc_main_file] = main_file; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
416 m_level_hash[sc_main_edit] = main_edit; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
417 m_level_hash[sc_main_debug] = main_debug; |
29068
d8089b13d4d7
add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28499
diff
changeset
|
418 m_level_hash[sc_main_tools] = main_tools; |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
419 m_level_hash[sc_main_window] = main_window; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
420 m_level_hash[sc_main_help] = main_help; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
421 m_level_hash[sc_main_news] = main_news; |
27937
8dc5b36f1245
include new undock/dock actions into the shortcut manager
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27935
diff
changeset
|
422 m_level_hash[sc_dock_widget] = main_dock_widgets; |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
423 m_level_hash[sc_edit_tabs] = main_tabs; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
424 m_level_hash[sc_edit_find] = main_find; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
425 m_level_hash[sc_edit_zoom] = main_zoom; |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
426 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
427 QTreeWidgetItem *editor = new QTreeWidgetItem (tree_view); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
428 editor->setText (0, tr ("Editor")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
429 editor->setExpanded (true); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
430 QTreeWidgetItem *editor_file = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
431 editor_file->setText (0, tr ("File Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
432 QTreeWidgetItem *editor_edit = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
433 editor_edit->setText (0, tr ("Edit Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
434 QTreeWidgetItem *editor_view = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
435 editor_view->setText (0, tr ("View Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
436 QTreeWidgetItem *editor_debug = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
437 editor_debug->setText (0, tr ("Debug Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
438 QTreeWidgetItem *editor_run = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
439 editor_run->setText (0, tr ("Run Menu")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
440 QTreeWidgetItem *editor_help = new QTreeWidgetItem (editor); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
441 editor_help->setText (0, tr ("Help Menu")); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
442 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
443 m_level_hash[sc_edit_file] = editor_file; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
444 m_level_hash[sc_edit_edit] = editor_edit; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
445 m_level_hash[sc_edit_view] = editor_view; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
446 m_level_hash[sc_edit_debug] = editor_debug; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
447 m_level_hash[sc_edit_run] = editor_run; |
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
448 m_level_hash[sc_edit_help] = editor_help; |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
449 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
450 QTreeWidgetItem *doc = new QTreeWidgetItem (tree_view); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
451 doc->setText (0, tr ("Documentation Viewer")); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
452 doc->setExpanded (true); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
453 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
454 QTreeWidgetItem *doc_browser = new QTreeWidgetItem (doc); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
455 doc_browser->setText (0, tr ("Browser")); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
456 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
457 m_level_hash[sc_doc] = doc_browser; |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
458 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
459 connect (tree_view, &QTreeWidget::itemDoubleClicked, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
460 this, &shortcut_manager::handle_double_clicked); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
461 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
462 for (int i = 0; i < m_sc.count (); i++) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
463 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
464 shortcut_t sc = m_sc.at (i); |
24712
95815fc93a3a
move shortcuts for tab closing into a separate global settings-section
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
465 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29542
diff
changeset
|
466 QTreeWidgetItem *section = m_level_hash[sc.m_settings_key.section (':', 0, 0)]; |
24712
95815fc93a3a
move shortcuts for tab closing into a separate global settings-section
Torsten <mttl@mailbox.org>
parents:
24534
diff
changeset
|
467 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
468 // handle sections which have changed and do not correspond to the |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
469 // previously defined keyname |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
470 if (section == editor_file) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
471 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
472 // Closing tabs now in global tab handling section |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
473 if (sc.m_settings_key.contains (sc_edit_file_cl)) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
474 section = main_tabs; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
475 } |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
476 if (section == editor_edit) |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
477 { |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
478 // Find & replace now in global file & replace handling section |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
479 if (sc.m_settings_key.contains (sc_edit_edit_find)) |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
480 section = main_find; |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25189
diff
changeset
|
481 } |
25976
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
482 if (section == editor_view) |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
483 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
484 // Zooming now in global zoom handling section |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
485 if (sc.m_settings_key.contains (sc_edit_view_zoom)) |
25976
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
486 section = main_zoom; |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25883
diff
changeset
|
487 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
488 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
489 QTreeWidgetItem *tree_item = new QTreeWidgetItem (section); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
490 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
491 // set a slightly transparent foreground for default columns |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
492 QColor fg = QColor (tree_item->foreground (1).color ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
493 fg.setAlpha (128); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
494 tree_item->setForeground (1, QBrush (fg)); |
18728
95249367d6fa
provide a second set of shortcuts
Torsten <ttl@justmail.de>
parents:
18711
diff
changeset
|
495 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
496 // write the shortcuts |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
497 tree_item->setText (0, sc.m_description); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
498 tree_item->setText (1, sc.m_default_sc.toString ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
499 tree_item->setText (2, sc.m_actual_sc.toString ()); |
20987
f99cbd86a0f9
Prevent closing GUI by Ctrl+D in terminal (bug #46661)
Torsten <ttl@justmail.de>
parents:
20986
diff
changeset
|
500 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
501 m_item_index_hash[tree_item] = i + 1; // index+1 to avoid 0 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
502 m_index_item_hash[i] = tree_item; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
503 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
504 } |
20702
b6b16d8c8b57
possibility to set all shortcuts to default values and check overwriting
Torsten <ttl@justmail.de>
parents:
20693
diff
changeset
|
505 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
506 // import or export of shortcut sets, |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
507 // called from settings dialog when related buttons are clicked; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
508 // returns true on success, false otherwise |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
509 bool |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
510 shortcut_manager::import_export (int action) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
511 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
512 // ask to save the current shortcuts, maybe abort import |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
513 if (action == OSC_DEFAULT || action == OSC_IMPORT) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
514 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
515 if (! overwrite_all_shortcuts ()) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
516 return false; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
517 } |
20702
b6b16d8c8b57
possibility to set all shortcuts to default values and check overwriting
Torsten <ttl@justmail.de>
parents:
20693
diff
changeset
|
518 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
519 // get the filename to read or write the shortcuts, |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
520 // the default extension is .osc (octave shortcuts) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
521 if (action != OSC_DEFAULT) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
522 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
523 QString file; |
20702
b6b16d8c8b57
possibility to set all shortcuts to default values and check overwriting
Torsten <ttl@justmail.de>
parents:
20693
diff
changeset
|
524 |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
525 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
526 int opts = 0; // No options by default. |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
527 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
528 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
529 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
530 if (! settings.value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
531 opts = QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
532 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
533 if (action == OSC_IMPORT) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
534 file = QFileDialog::getOpenFileName (this, |
25189
d2558ba799d8
Change the GUI Import/Export Shortcuts strings to end with ellipsis.
Rik <rik@octave.org>
parents:
25163
diff
changeset
|
535 tr ("Import shortcuts from file..."), QString (), |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
536 tr ("Octave Shortcut Files (*.osc);;All Files (*)"), |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
537 nullptr, QFileDialog::Option (opts)); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
538 else if (action == OSC_EXPORT) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
539 file = QFileDialog::getSaveFileName (this, |
25189
d2558ba799d8
Change the GUI Import/Export Shortcuts strings to end with ellipsis.
Rik <rik@octave.org>
parents:
25163
diff
changeset
|
540 tr ("Export shortcuts to file..."), QString (), |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
541 tr ("Octave Shortcut Files (*.osc);;All Files (*)"), |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26017
diff
changeset
|
542 nullptr, QFileDialog::Option (opts)); |
20702
b6b16d8c8b57
possibility to set all shortcuts to default values and check overwriting
Torsten <ttl@justmail.de>
parents:
20693
diff
changeset
|
543 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
544 if (file.isEmpty ()) |
20702
b6b16d8c8b57
possibility to set all shortcuts to default values and check overwriting
Torsten <ttl@justmail.de>
parents:
20693
diff
changeset
|
545 return false; |
18822
3f6280d0a36b
allow export and import of shortcut sets
Torsten <ttl@justmail.de>
parents:
18728
diff
changeset
|
546 |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
547 gui_settings osc_settings (file, QSettings::IniFormat); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
548 |
26635
931ace437d5d
fix possible memleak by avoiding bare poointer (bug #55440)
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
549 if (osc_settings.status () != QSettings::NoError) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
550 { |
25163
3aed4f0ba3cd
Update some GUI strings identified as unclear by translators.
Rik <rik@octave.org>
parents:
25128
diff
changeset
|
551 qWarning () << tr ("Failed to open %1 as Octave shortcut file") |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
552 .arg (file); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
553 return false; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
554 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
555 else |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
556 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
557 if (action == OSC_IMPORT) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
558 import_shortcuts (osc_settings); // import (special action) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
559 else if (action == OSC_EXPORT) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
560 write_shortcuts (osc_settings, false); // export, (save settings) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
561 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
562 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
563 else |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
564 reset_default_shortcuts (); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
565 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
566 return true; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
567 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
568 |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
569 void shortcut_manager::handle_double_clicked (QTreeWidgetItem *item, int col) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
570 { |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
571 if (col != 2) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
572 return; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
573 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
574 int i = m_item_index_hash[item]; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
575 if (i == 0) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
576 return; // top-level-item clicked |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
577 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
578 shortcut_dialog (i-1); // correct to index starting at 0 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
579 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
580 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
581 void shortcut_manager::shortcut_dialog_finished (int result) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
582 { |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
583 if (result == QDialog::Rejected) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
584 return; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
585 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
586 // check for duplicate |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
587 int double_index = m_shortcut_hash[m_edit_actual->text ()] - 1; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
588 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
589 if (double_index >= 0 && double_index != m_handled_index) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
590 { |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
591 int ret = QMessageBox::warning (this, tr ("Double Shortcut"), |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
592 tr ("The chosen shortcut\n \"%1\"\n" |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
593 "is already used for the action\n \"%2\".\n" |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
594 "Do you want to use the shortcut anyhow removing it " |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
595 "from the previous action?") |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
596 .arg (m_edit_actual->text ()) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
597 .arg (m_sc.at (double_index).m_description), |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
598 QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
599 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
600 if (ret == QMessageBox::Yes) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
601 { |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
602 shortcut_t double_shortcut = m_sc.at (double_index); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
603 double_shortcut.m_actual_sc = QKeySequence (); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
604 m_sc.replace (double_index, double_shortcut); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
605 m_index_item_hash[double_index]->setText (2, QString ()); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
606 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
607 else |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
608 return; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
609 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
610 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
611 shortcut_t shortcut = m_sc.at (m_handled_index); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
612 if (! shortcut.m_actual_sc.isEmpty ()) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
613 m_shortcut_hash.remove (shortcut.m_actual_sc.toString ()); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
614 shortcut.m_actual_sc = m_edit_actual->text (); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
615 m_sc.replace (m_handled_index, shortcut); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
616 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
617 m_index_item_hash[m_handled_index]->setText (2, shortcut.m_actual_sc.toString ()); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
618 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
619 if (! shortcut.m_actual_sc.isEmpty ()) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
620 m_shortcut_hash[shortcut.m_actual_sc.toString ()] = m_handled_index + 1; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
621 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
622 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
623 void shortcut_manager::shortcut_dialog_set_default (void) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
624 { |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
625 m_edit_actual->setText (m_label_default->text ()); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
626 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
627 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
628 void shortcut_manager::init (const QString& description, const sc_pref& sc) |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
629 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
630 gui_settings settings; |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
631 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
632 QKeySequence actual = QKeySequence (settings.sc_value (sc)); |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
633 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
634 // append the new shortcut to the list |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
635 shortcut_t shortcut_info; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
636 shortcut_info.m_description = description; |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
637 shortcut_info.m_settings_key = sc.key; |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
638 shortcut_info.m_actual_sc = actual; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
639 shortcut_info.m_default_sc = settings.sc_def_value (sc); |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
640 m_sc << shortcut_info; |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
641 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27860
diff
changeset
|
642 // insert shortcut in order to check for duplicates later |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
643 if (! actual.isEmpty ()) |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
644 m_shortcut_hash[actual.toString ()] = m_sc.count (); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
645 m_action_hash[sc.key] = m_sc.count (); |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
646 |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
647 // check whether ctrl+d is used from main window, i.e. is a global shortcut |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
648 QString main_group_prefix |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
649 = sc_main_file.mid (0, sc_main_file.indexOf ('_') + 1); |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
650 if (sc.key.startsWith (main_group_prefix) |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
651 && actual == QKeySequence (Qt::ControlModifier+Qt::Key_D)) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
652 settings.setValue (sc_main_ctrld.key, true); |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
653 } |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
654 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
655 void shortcut_manager::shortcut_dialog (int index) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
656 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
657 if (! m_dialog) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
658 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
659 m_dialog = new QDialog (this); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
660 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
661 m_dialog->setWindowTitle (tr ("Enter new Shortcut")); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
662 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
663 QVBoxLayout *box = new QVBoxLayout (m_dialog); |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
664 box->setSpacing (2); |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
665 box->setContentsMargins (12, 12, 12, 12); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
666 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
667 QLabel *help = new QLabel (tr ("Apply the desired shortcut or click " |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
668 "on the right button to reset the " |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
669 "shortcut to its default.")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
670 help->setWordWrap (true); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
671 box->addWidget (help); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
672 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
673 QCheckBox *direct |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
674 = new QCheckBox (tr ("Enter shortcut directly by performing it")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
675 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
676 QCheckBox *shift |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
677 = new QCheckBox (tr ("Add Shift modifier\n" |
31433
d17ee5e7b66c
Fix typos and grammatical mistakes in text exposed to the user
Rafael Laboissiere <rafael@laboissiere.net>
parents:
30564
diff
changeset
|
678 "(allows one to enter number keys)")); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
679 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
680 shift->setStyleSheet |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26885
diff
changeset
|
681 ("QCheckBox::indicator { subcontrol-position: left top; }"); |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
682 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
683 connect (direct, &QCheckBox::clicked, shift, &QCheckBox::setEnabled); |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
684 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
685 direct->setCheckState (Qt::Checked); |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
686 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
687 box->addWidget (direct); |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
688 box->addWidget (shift); |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
689 |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
690 box->addSpacing (15); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
691 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
692 QGridLayout *grid = new QGridLayout (); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
693 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
694 QLabel *actual = new QLabel (tr ("Actual shortcut")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
695 m_edit_actual = new enter_shortcut (m_dialog); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
696 m_edit_actual->setAlignment (Qt::AlignHCenter); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
697 grid->addWidget (actual, 0, 0); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
698 grid->addWidget (m_edit_actual, 0, 1); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
699 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
700 QLabel *def = new QLabel (tr ("Default shortcut")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
701 m_label_default = new QLabel (m_dialog); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
702 m_label_default->setAlignment (Qt::AlignHCenter); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
703 grid->addWidget (def, 1, 0); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
704 grid->addWidget (m_label_default, 1, 1); |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
705 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
706 QPushButton *set_default = new QPushButton (tr ("Set to default")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
707 grid->addWidget (set_default, 0, 2); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
708 connect (set_default, &QPushButton::clicked, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
709 this, &shortcut_manager::shortcut_dialog_set_default); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
710 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
711 box->addLayout (grid); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
712 |
26830
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
713 box->addSpacing (18); |
e255897f353d
gui: allow entering shorcuts with shift modifier and numbers (bug #50555)
Torsten <mttl@mailbox.org>
parents:
26638
diff
changeset
|
714 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
715 QDialogButtonBox *button_box = new QDialogButtonBox (QDialogButtonBox::Ok |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
716 | QDialogButtonBox::Cancel); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
717 QList<QAbstractButton *> buttons = button_box->buttons (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
718 for (int i = 0; i < buttons.count (); i++) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
719 buttons.at (i)->setShortcut (QKeySequence ()); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
720 connect (button_box, &QDialogButtonBox::accepted, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
721 m_dialog, &QDialog::accept); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
722 connect (button_box, &QDialogButtonBox::rejected, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
723 m_dialog, &QDialog::reject); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
724 box->addWidget (button_box); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
725 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
726 m_dialog->setLayout (box); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
727 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
728 connect (direct, &QCheckBox::stateChanged, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
729 m_edit_actual, &enter_shortcut::handle_direct_shortcut); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
730 connect (shift, &QCheckBox::stateChanged, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
731 m_edit_actual, &enter_shortcut::handle_shift_modifier); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
732 connect (m_dialog, &QDialog::finished, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
733 this, &shortcut_manager::shortcut_dialog_finished); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
734 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
735 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
736 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
737 m_edit_actual->setText (m_sc.at (index).m_actual_sc.toString ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
738 m_label_default->setText (m_sc.at (index).m_default_sc.toString ()); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
739 m_handled_index = index; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
740 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
741 m_edit_actual->setFocus (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
742 m_dialog->setFocusProxy (m_edit_actual); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
743 m_dialog->exec (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
744 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
745 |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
746 // import a shortcut set from a given settings file and refresh the |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
747 // tree view |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
748 void shortcut_manager::import_shortcuts (gui_settings& settings) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
749 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
750 for (int i = 0; i < m_sc.count (); i++) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
751 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
752 // update the list of all shortcuts |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
753 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
754 // make a copy |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
755 shortcut_t sc = m_sc.at (i); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
756 |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
757 // get new shortcut from settings and use the old one as default |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31618
diff
changeset
|
758 sc.m_actual_sc = QKeySequence (settings.value (sc_group + sc.m_settings_key, sc.m_actual_sc).toString ()); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
759 |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
760 // replace the old with the new one |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
761 m_sc.replace (i, sc); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
762 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
763 // update the tree view |
31618
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
764 // get related tree item |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
765 QTreeWidgetItem *tree_item = m_index_item_hash[i]; |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
766 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
767 // display new shortcut |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
768 tree_item->setText (2, sc.m_actual_sc.toString ()); |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
769 } |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
770 } |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
771 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
772 // reset to the defaults and refresh the tree view |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
773 void shortcut_manager::reset_default_shortcuts (void) |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
774 { |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
775 for (int i = 0; i < m_sc.count (); i++) |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
776 { |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
777 // update the list of all shortcuts |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
778 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
779 // make a copy |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
780 shortcut_t sc = m_sc.at (i); |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
781 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
782 // get default shortcut |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
783 sc.m_actual_sc = QKeySequence (sc.m_default_sc); |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
784 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
785 // replace the old with the new one |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
786 m_sc.replace (i, sc); |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
787 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
788 // update the tree view |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
789 // get related tree item |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
790 QTreeWidgetItem *tree_item = m_index_item_hash[i]; |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
791 |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
792 // display new shortcut |
cd833a9baaa7
use separate functions for importing and resetting default shortcuts
John W. Eaton <jwe@octave.org>
parents:
31433
diff
changeset
|
793 tree_item->setText (2, sc.m_actual_sc.toString ()); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
794 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
795 } |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
796 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
797 // ask the user whether to save the current shortcut set; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
798 // returns true to proceed with import action, false to abort it |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
799 bool shortcut_manager::overwrite_all_shortcuts (void) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
800 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
801 QMessageBox msg_box; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
802 msg_box.setWindowTitle (tr ("Overwriting Shortcuts")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
803 msg_box.setIcon (QMessageBox::Warning); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
804 msg_box.setText (tr ("You are about to overwrite all shortcuts.\n" |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
805 "Would you like to save the current shortcut set or cancel the action?")); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
806 msg_box.setStandardButtons (QMessageBox::Save | QMessageBox::Cancel); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
807 QPushButton *discard = msg_box.addButton (tr ("Don't save"), |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
808 QMessageBox::DestructiveRole); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
809 msg_box.setDefaultButton (QMessageBox::Save); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
810 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
811 int ret = msg_box.exec (); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
812 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
813 if (msg_box.clickedButton () == discard) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
814 return true; // do not save and go ahead |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23941
diff
changeset
|
815 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
816 if (ret == QMessageBox::Save) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
817 { |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
818 if (import_export (OSC_EXPORT)) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
819 return true; // go ahead |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
820 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
821 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
822 return false; // abort the import |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24712
diff
changeset
|
823 } |
18611
086093fbdc1a
first implementation of a shortcut manager (bug #41217)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
824 } |