annotate libgui/src/m-editor/file-editor.cc @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents d4d83344d653
children 2f6904439d3c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30398
diff changeset
3 // Copyright (C) 2011-2022 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
25
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21650
diff changeset
26 #if defined (HAVE_CONFIG_H)
21301
40de9f8f23a6 Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents: 21203
diff changeset
27 # include "config.h"
15286
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
28 #endif
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
29
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21650
diff changeset
30 #if defined (HAVE_QSCINTILLA)
15873
7d300b85ee25 allow build to proceed if either Qt or QScintilla is missing
John W. Eaton <jwe@octave.org>
parents: 15861
diff changeset
31
28836
d0a64e67749e avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents: 28382
diff changeset
32 #include <algorithm>
d0a64e67749e avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents: 28382
diff changeset
33
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
34 #include <QApplication>
29469
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
35 #include <QClipboard>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
36 #include <QFile>
22250
2fd4f1a3f4a8 allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 22179
diff changeset
37 #include <QFileDialog>
13584
e76a22bfe406 editor: added bookmark feature
ttl <ttl@justmail.de>
parents: 13566
diff changeset
38 #include <QFont>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
39 #include <QMessageBox>
22250
2fd4f1a3f4a8 allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 22179
diff changeset
40 #include <QMimeData>
2fd4f1a3f4a8 allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 22179
diff changeset
41 #include <QProcess>
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents: 24731
diff changeset
42 #include <QPushButton>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
43 #include <QStyle>
22250
2fd4f1a3f4a8 allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 22179
diff changeset
44 #include <QTabBar>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
45 #include <QTextStream>
22250
2fd4f1a3f4a8 allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 22179
diff changeset
46 #include <QVBoxLayout>
18656
1b289f45187f add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents: 18651
diff changeset
47 #include <Qsci/qscicommandset.h>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
48
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27404
diff changeset
49 #include "file-editor.h"
27560
3fcc650de22f split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
50 #include "gui-preferences-ed.h"
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
51 #include "gui-preferences-sc.h"
27560
3fcc650de22f split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
52 #include "gui-preferences-global.h"
23479
06bf3a0b08bf maint: Use "" instead of <> for our own include files.
John W. Eaton <jwe@octave.org>
parents: 23457
diff changeset
53 #include "main-window.h"
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
54 #include "octave-qobject.h"
29560
5b7e721844df provide QOverload template if it is not in <QtGlobal> (bug #60416)
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
55 #include "octave-qtutils.h"
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27404
diff changeset
56 #include "shortcut-manager.h"
15848
424edeca3c66 Redo portions of file editor to use more signals/slots rather than casting.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15552
diff changeset
57
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
58 #include "oct-env.h"
27404
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
59
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
60 #include "event-manager.h"
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
61 #include "interpreter.h"
23479
06bf3a0b08bf maint: Use "" instead of <> for our own include files.
John W. Eaton <jwe@octave.org>
parents: 23457
diff changeset
62 #include "oct-map.h"
27404
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
63 #include "pt-eval.h"
16546
c1e90c7cfd30 try harder to find editor tab widgets for files with multiple names
John W. Eaton <jwe@octave.org>
parents: 16525
diff changeset
64 #include "utils.h"
15848
424edeca3c66 Redo portions of file editor to use more signals/slots rather than casting.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15552
diff changeset
65
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
66 namespace octave
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
67 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
68 // Functions of the the reimplemented tab widget
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
69
29713
7b4b7e2a524d fix signal connection to grand parent
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29707
diff changeset
70 file_editor_tab_widget::file_editor_tab_widget (QWidget *p, file_editor *fe)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
71 : QTabWidget (p)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
72 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
73 tab_bar *bar = new tab_bar (this);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
74
29713
7b4b7e2a524d fix signal connection to grand parent
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29707
diff changeset
75 connect (bar, &tab_bar::close_current_tab_signal,
7b4b7e2a524d fix signal connection to grand parent
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29707
diff changeset
76 fe, &file_editor::request_close_file);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
77
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
78 this->setTabBar (bar);
24713
36cd70fc2d63 style fixes for file editor
Torsten <mttl@mailbox.org>
parents: 24679
diff changeset
79
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
80 setTabsClosable (true);
27054
1e70f1fe7c0e always use scroll buttons in case of too many tabs (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27053
diff changeset
81 setUsesScrollButtons (true);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
82 setMovable (true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
83 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
84
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
85 tab_bar *file_editor_tab_widget::get_tab_bar (void) const
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
86 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
87 return qobject_cast<tab_bar *> (tabBar ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
88 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
89
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
90 std::list<file_editor_tab *>
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
91 file_editor_tab_widget::tab_list (void) const
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
92 {
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
93 std::list<file_editor_tab *> retval;
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
94 for (int i = 0; i < count (); i++)
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
95 retval.push_back (static_cast<file_editor_tab *> (widget (i)));
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
96 return retval;
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
97 }
24713
36cd70fc2d63 style fixes for file editor
Torsten <mttl@mailbox.org>
parents: 24679
diff changeset
98
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
99
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
100 // File editor
24713
36cd70fc2d63 style fixes for file editor
Torsten <mttl@mailbox.org>
parents: 24679
diff changeset
101
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
102 file_editor::file_editor (QWidget *p, base_qobject& oct_qobj)
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
103 : file_editor_interface (p, oct_qobj)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
104 {
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
105 // Set current editing directory before construction because loaded
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
106 // files will change ced accordingly.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
107 m_ced = QDir::currentPath ();
15848
424edeca3c66 Redo portions of file editor to use more signals/slots rather than casting.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15552
diff changeset
108
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
109 // Set actions that are later added by the main window to null,
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
110 // preventing access to them when they are still undefined.
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
111 m_undo_action = nullptr;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
112 m_copy_action = nullptr;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
113 m_paste_action = nullptr;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
114 m_selectall_action = nullptr;
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
115
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
116 m_find_dialog = nullptr;
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
117
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
118 m_closed = false;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
119 m_no_focus = false;
29715
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
120 m_editor_ready = false;
20986
00835323fb44 prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents: 20955
diff changeset
121
27075
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
122 m_copy_action_enabled = false;
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
123 m_undo_action_enabled = false;
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
124 m_current_tab_modified = false;
27075
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
125
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
126 construct ();
22169
b3ced5e3cebb Enable shortcuts for find next / find previous
Lachlan Andrew <lachlanbis@gmail.com>
parents: 22022
diff changeset
127
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
128 setVisible (false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
129 setAcceptDrops (true);
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
130 setFocusPolicy (Qt::StrongFocus);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
131 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
132
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
133 void file_editor::focusInEvent (QFocusEvent *e)
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
134 {
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
135 // The focus is transferred to the active tab and its edit
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
136 // area in this focus in event handler. This is to avoid
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
137 // using focus proxies with conflicts in the proxy change
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
138 // presumably introduced by bug
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
139 // https://bugreports.qt.io/browse/QTBUG-61092
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
140 reset_focus (); // Make sure editor tab with edit area get focus
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
141
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
142 QDockWidget::focusInEvent (e);
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
143 }
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
144
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
145 // insert global actions, that should also be displayed in the editor window,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
146 // into the editor's menu and/or toolbar
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
147 void file_editor::insert_global_actions (QList<QAction *> shared_actions)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
148 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
149 // actions/menus that have to be added to the toolbar or the menu
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
150 QAction *open_action = shared_actions.at (OPEN_ACTION);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
151 QAction *new_action = shared_actions.at (NEW_SCRIPT_ACTION);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
152 QAction *new_fcn_action = shared_actions.at (NEW_FUNCTION_ACTION);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
153 m_fileMenu->insertAction (m_mru_file_menu->menuAction (), open_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
154 m_fileMenu->insertAction (open_action, new_fcn_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
155 m_fileMenu->insertAction (new_fcn_action, new_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
156 m_tool_bar->insertAction (m_popdown_mru_action, open_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
157 m_tool_bar->insertAction (open_action, new_action);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
158
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
159 // actions that are additionally enabled/disabled later by the editor
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
160 // undo
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
161 m_undo_action = shared_actions.at (UNDO_ACTION);
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
162 m_tool_bar->insertAction (m_redo_action, m_undo_action);
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
163 m_edit_menu->insertAction (m_redo_action, m_undo_action);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
164 // select all
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
165 m_selectall_action = shared_actions.at (SELECTALL_ACTION);
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
166 m_edit_menu->insertAction (m_find_action, m_selectall_action);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
167 m_edit_menu->insertSeparator (m_find_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
168 // paste
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
169 m_paste_action = shared_actions.at (PASTE_ACTION);
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
170 m_tool_bar->insertAction (m_find_action, m_paste_action);
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
171 m_edit_menu->insertAction (m_selectall_action, m_paste_action);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
172 m_edit_menu->insertSeparator (m_selectall_action);
27074
d302dfa0c572 fix order of cut, copy paste actions in editor menu and toolbar (bug #56230)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27055
diff changeset
173 // copy
d302dfa0c572 fix order of cut, copy paste actions in editor menu and toolbar (bug #56230)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27055
diff changeset
174 m_copy_action = shared_actions.at (COPY_ACTION);
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
175 m_tool_bar->insertAction (m_paste_action, m_copy_action);
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
176 m_edit_menu->insertAction (m_paste_action, m_copy_action);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
177 // find files
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
178 m_find_files_action = shared_actions.at (FIND_FILES_ACTION);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
179 m_edit_menu->insertAction (m_find_action, m_find_files_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
180 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
181
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
182 void file_editor::handle_enter_debug_mode (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
183 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
184 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
185 gui_settings *settings = rmgr.get_settings ();
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
186 QString sc_run = settings->sc_value (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
187 QString sc_cont = settings->sc_value (sc_main_debug_continue);
26875
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
188
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
189 if (sc_run == sc_cont)
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
190 m_run_action->setShortcut (QKeySequence ()); // prevent ambiguous shortcuts
26875
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
191
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
192 m_run_action->setToolTip (tr ("Continue")); // update tool tip
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28788
diff changeset
193
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28788
diff changeset
194 emit enter_debug_mode_signal ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
195 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
196
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
197 void file_editor::handle_exit_debug_mode (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
198 {
27630
262cdd0f7619 don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents: 27629
diff changeset
199 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager ();
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
200 scmgr.set_shortcut (m_run_action, sc_edit_run_run_file);
26875
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
201 m_run_action->setToolTip (tr ("Save File and Run")); // update tool tip
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28788
diff changeset
202
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28788
diff changeset
203 emit exit_debug_mode_signal ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
204 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
205
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
206 void file_editor::check_actions (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
207 {
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
208 // Do not include shared actions not only related to the editor
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
209 bool have_tabs = m_tab_widget->count () > 0;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
210
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
211 m_edit_cmd_menu->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
212 m_edit_fmt_menu->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
213 m_edit_nav_menu->setEnabled (have_tabs);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
214
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
215 m_comment_selection_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
216 m_uncomment_selection_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
217 m_comment_var_selection_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
218 m_indent_selection_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
219 m_unindent_selection_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
220 m_smart_indent_line_or_selection_action->setEnabled (have_tabs);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
221
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
222 m_context_help_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
223 m_context_doc_action->setEnabled (have_tabs);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
224
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
225 m_view_editor_menu->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
226 m_zoom_in_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
227 m_zoom_out_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
228 m_zoom_normal_action->setEnabled (have_tabs);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
229
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
230 m_find_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
231 m_find_next_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
232 m_find_previous_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
233 m_print_action->setEnabled (have_tabs);
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
234
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
235 m_run_action->setEnabled (have_tabs && m_is_octave_file);
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
236
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
237 m_toggle_breakpoint_action->setEnabled (have_tabs && m_is_octave_file);
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
238 m_next_breakpoint_action->setEnabled (have_tabs && m_is_octave_file);
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
239 m_previous_breakpoint_action->setEnabled (have_tabs && m_is_octave_file);
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
240 m_remove_all_breakpoints_action->setEnabled (have_tabs && m_is_octave_file);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
241
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
242 m_edit_function_action->setEnabled (have_tabs);
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
243 m_save_action->setEnabled (have_tabs && m_current_tab_modified);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
244 m_save_as_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
245 m_close_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
246 m_close_all_action->setEnabled (have_tabs);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
247 m_close_others_action->setEnabled (have_tabs && m_tab_widget->count () > 1);
27330
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
248 m_sort_tabs_action->setEnabled (have_tabs && m_tab_widget->count () > 1);
26873
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26561
diff changeset
249
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
250 emit editor_tabs_changed_signal (have_tabs, m_is_octave_file);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
251 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
252
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
253 // empty_script determines whether we have to create an empty script
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
254 // 1. At startup, when the editor has to be (really) visible
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
255 // (Here we can not use the visibility changed signal)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
256 // 2. When the editor becomes visible when octave is running
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
257 void file_editor::empty_script (bool startup, bool visible)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
258 {
29715
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
259
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
260 if (startup)
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
261 m_editor_ready = true;
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
262 else
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
263 {
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
264 if (! m_editor_ready)
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
265 return; // not yet ready but got visibility changed signals
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
266 }
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
267
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
268 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
269 gui_settings *settings = rmgr.get_settings ();
27805
dccc551aa83b replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27787
diff changeset
270 if (settings->value (global_use_custom_editor.key,
dccc551aa83b replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27787
diff changeset
271 global_use_custom_editor.def).toBool ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
272 return; // do not open an empty script in the external editor
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
273
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
274 bool real_visible;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
275
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
276 if (startup)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
277 real_visible = isVisible ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
278 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
279 real_visible = visible;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
280
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
281 if (! real_visible || m_tab_widget->count () > 0)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
282 return;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
283
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
284 if (startup && ! isFloating ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
285 {
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
286 // check if editor is really visible or hidden between tabbed widgets
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
287 QWidget *parent = parentWidget ();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
288
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
289 if (parent)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
290 {
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
291 QList<QTabBar *> tab_list = parent->findChildren<QTabBar *>();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
292
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
293 bool in_tab = false;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
294 int i = 0;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
295 while ((i < tab_list.count ()) && (! in_tab))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
296 {
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
297 QTabBar *tab = tab_list.at (i);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
298 i++;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
299
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
300 int j = 0;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
301 while ((j < tab->count ()) && (! in_tab))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
302 {
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
303 // check all tabs for the editor
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
304 if (tab->tabText (j) == windowTitle ())
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
305 {
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
306 // editor is in this tab widget
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
307 in_tab = true;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
308 int top = tab->currentIndex ();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
309 if (! (top > -1 && tab->tabText (top) == windowTitle ()))
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
310 return; // not current tab -> not visible
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
311 }
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
312 j++;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
313 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
314 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
315 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
316 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
317
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
318 request_new_file ("");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
319 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
320
27611
0495b64288f7 use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents: 27605
diff changeset
321 void file_editor::restore_session (gui_settings *settings)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
322 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
323 //restore previous session
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
324 if (! settings->value (ed_restore_session).toBool ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
325 return;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
326
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
327 // get the data from the settings file
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
328 QStringList sessionFileNames
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
329 = settings->value (ed_session_names).toStringList ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
330
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
331 QStringList session_encodings
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
332 = settings->value (ed_session_enc).toStringList ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
333
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
334 QStringList session_index
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
335 = settings->value (ed_session_ind).toStringList ();
25748
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
336
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
337 QStringList session_lines
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
338 = settings->value (ed_session_lines).toStringList ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
339
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
340 // fill a list of the struct and sort it (depending on index)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
341 QList<session_data> s_data;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
342
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
343 bool do_encoding = (session_encodings.count () == sessionFileNames.count ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
344 bool do_index = (session_index.count () == sessionFileNames.count ());
25748
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
345 bool do_lines = (session_lines.count () == sessionFileNames.count ());
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
346
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
347 for (int n = 0; n < sessionFileNames.count (); ++n)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
348 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
349 QFileInfo file = QFileInfo (sessionFileNames.at (n));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
350 if (! file.exists ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
351 continue;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
352
25748
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
353 session_data item = { 0, -1, sessionFileNames.at (n),
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
354 QString (), QString ()};
25748
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
355 if (do_lines)
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
356 item.line = session_lines.at (n).toInt ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
357 if (do_index)
25293
ae0518976e2b open files in correct order when restoring editor session (bug #53711)
Torsten <mttl@mailbox.org>
parents: 25274
diff changeset
358 item.index = session_index.at (n).toInt ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
359 if (do_encoding)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
360 item.encoding = session_encodings.at (n);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
361
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
362 s_data << item;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
363 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
364
28836
d0a64e67749e avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents: 28382
diff changeset
365 std::sort (s_data.begin (), s_data.end ());
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
366
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
367 // finally open the files with the desired encoding in the desired order
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
368 for (int n = 0; n < s_data.count (); ++n)
25748
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
369 request_open_file (s_data.at (n).file_name, s_data.at (n).encoding,
f3aa4a90b91f also restore cursor line numbers when restoring previous editor session_data
Torsten <mttl@mailbox.org>
parents: 25743
diff changeset
370 s_data.at (n).line);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
371 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
372
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
373 void file_editor::activate (void)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
374 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
375 if (m_no_focus)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
376 return; // No focus for the editor if external open/close request
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
377
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
378 octave_dock_widget::activate ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
379
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
380 // set focus to current tab
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
381 reset_focus ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
382 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
383
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
384 void file_editor::set_focus (QWidget *fet)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
385 {
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
386 setFocus ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
387
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
388 // set focus to desired tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
389 if (fet)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
390 m_tab_widget->setCurrentWidget (fet);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
391 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
392
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
393 // function enabling/disabling the menu accelerators depending on the
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
394 // focus of the editor
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
395 void file_editor::enable_menu_shortcuts (bool enable)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
396 {
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
397 // Hide or show the find dialog together with the focus of the
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
398 // editor widget depending on the overall visibility of the find dialog.
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
399 // Do not change internal visibility state.
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
400 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
401 m_find_dialog->set_visible (enable);
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
402
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
403 // Take care of the shortcuts
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
404 QHash<QMenu *, QStringList>::const_iterator i = m_hash_menu_text.constBegin ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
405
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
406 while (i != m_hash_menu_text.constEnd ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
407 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
408 i.key ()->setTitle (i.value ().at (! enable));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
409 ++i;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
410 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
411
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
412 // when editor loses focus, enable the actions, which are always active
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
413 // in the main window due to missing info on selected text and undo actions
27075
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
414 if (m_copy_action && m_undo_action)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
415 {
27075
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
416 if (enable)
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
417 {
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
418 m_copy_action->setEnabled (m_copy_action_enabled);
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
419 m_undo_action->setEnabled (m_undo_action_enabled);
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
420 }
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
421 else
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
422 {
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
423 m_copy_action_enabled = m_copy_action->isEnabled ();
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
424 m_undo_action_enabled = m_undo_action->isEnabled ();
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
425 m_copy_action->setEnabled (true);
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
426 m_undo_action->setEnabled (true);
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
427 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
428 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
429 }
19411
ed0df431631b allow to cancel exiting if editor tabs are modified and exit is requested in gui
Torsten <ttl@justmail.de>
parents: 19314
diff changeset
430
29372
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
431 // Save open files for restoring in next session
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
432 // (even if last session will not be restored next time)
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
433 // together with encoding and the tab index
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
434 void file_editor::save_session (void)
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
435 {
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
436 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
437 gui_settings *settings = rmgr.get_settings ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
438
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
439 QStringList fetFileNames;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
440 QStringList fet_encodings;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
441 QStringList fet_index;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
442 QStringList fet_lines;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
443
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
444 std::list<file_editor_tab *> editor_tab_lst = m_tab_widget->tab_list ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
445
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
446 for (auto editor_tab : editor_tab_lst)
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
447 {
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
448 QString file_name = editor_tab->file_name ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
449
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
450 // Don't append unnamed files.
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
451
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
452 if (! file_name.isEmpty ())
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
453 {
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
454 fetFileNames.append (file_name);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
455 fet_encodings.append (editor_tab->encoding ());
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
456
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
457 QString index;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
458 fet_index.append (index.setNum (m_tab_widget->indexOf (editor_tab)));
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
459
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
460 int l, c;
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
461 editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
462 fet_lines.append (index.setNum (l + 1));
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
463 }
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
464 }
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
465
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
466 settings->setValue (ed_session_names.key, fetFileNames);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
467 settings->setValue (ed_session_enc.key, fet_encodings);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
468 settings->setValue (ed_session_ind.key, fet_index);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
469 settings->setValue (ed_session_lines.key, fet_lines);
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
470 settings->sync ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
471 }
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
472
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
473 bool file_editor::check_closing (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
474 {
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
475 // When the application or the editor is closing and the user wants to
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
476 // close all files, in the latter case all editor tabs are checked whether
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
477 // they need to be saved. During these checks tabs are not closed since
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
478 // the user might cancel closing Octave during one of these saving dialogs.
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
479 // Therefore, saving the session for restoring at next start is not done
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
480 // before the application is definitely closing.
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
481
29372
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
482 // Save the session. Even is closing is cancelled, this would be
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
483 // overwritten by the next attempt to close the editor
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
484 save_session ();
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
485
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
486 std::list<file_editor_tab *> fe_tab_lst = m_tab_widget->tab_list ();
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
487 m_number_of_tabs = fe_tab_lst.size ();
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
488
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
489 for (auto fe_tab : fe_tab_lst)
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
490 {
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
491 // Wait for all editor tabs to have saved their files if required
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
492
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
493 connect (fe_tab, &file_editor_tab::tab_ready_to_close,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
494 this, &file_editor::handle_tab_ready_to_close,
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
495 Qt::UniqueConnection);
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
496 }
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
497
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
498 m_closing_canceled = false;
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
499
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
500 for (auto fe_tab : fe_tab_lst)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
501 {
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
502 // If there was a cancellation, make the already saved/discarded tabs
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
503 // recover from the exit by removing the read-only state and by
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
504 // recovering the debugger breakpoints. Finally return false in order
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
505 // to cancel closing the application or the editor.
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
506
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
507 if (fe_tab->check_file_modified (false) == QMessageBox::Cancel)
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
508 {
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
509 emit fetab_recover_from_exit ();
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
510
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
511 m_closing_canceled = true;
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
512
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
513 for (auto fet : fe_tab_lst)
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
514 disconnect (fet, &file_editor_tab::tab_ready_to_close, 0, 0);
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
515
27633
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
516 return false;
fd009322dd9f eliminate static variable in file_editor_tab class
John W. Eaton <jwe@octave.org>
parents: 27630
diff changeset
517 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
518 }
21054
221847e5f488 fix issues when restoring breakpoints and closing tabs or whole application
Torsten <ttl@justmail.de>
parents: 21002
diff changeset
519
27605
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
520 return true;
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
521 }
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
522
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
523 void file_editor::handle_tab_ready_to_close (void)
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
524 {
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
525 if (m_closing_canceled)
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
526 return;
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
527
29747
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
528 // FIXME: Why count down to zero here before doing anything? Why
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
529 // not remove and delete each tab that is ready to be closed, one
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
530 // per invocation?
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
531
27605
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
532 m_number_of_tabs--;
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
533
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
534 if (m_number_of_tabs > 0)
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
535 return;
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
536
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
537 // Here, the application or the editor will be closed -> store the session
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
538
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
539 // Take care of the find dialog
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
540 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
541 m_find_dialog->close ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
542
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
543 // Finally close all the tabs and return indication that we can exit
25357
7aeafec2b102 keep editor hidden at next startup when it was hidden (bug #53830)
Torsten <mttl@mailbox.org>
parents: 25354
diff changeset
544 // the application or close the editor.
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
545 // Closing and deleting the tabs makes the editor visible. In case it was
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
546 // hidden before, this state has to be restored afterwards.
25357
7aeafec2b102 keep editor hidden at next startup when it was hidden (bug #53830)
Torsten <mttl@mailbox.org>
parents: 25354
diff changeset
547 bool vis = isVisible ();
7aeafec2b102 keep editor hidden at next startup when it was hidden (bug #53830)
Torsten <mttl@mailbox.org>
parents: 25354
diff changeset
548
29372
fd1c45b62ba9 fix restoring editor session after having closed all tabs (bug #60051)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
549 std::list<file_editor_tab *> editor_tab_lst = m_tab_widget->tab_list ();
27636
dc319e1ea4a3 simplify loop over tabs in file_editor::handle_tab_ready_to_close
John W. Eaton <jwe@octave.org>
parents: 27635
diff changeset
550 for (auto editor_tab : editor_tab_lst)
29747
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
551 editor_tab->deleteLater ();
27636
dc319e1ea4a3 simplify loop over tabs in file_editor::handle_tab_ready_to_close
John W. Eaton <jwe@octave.org>
parents: 27635
diff changeset
552
dc319e1ea4a3 simplify loop over tabs in file_editor::handle_tab_ready_to_close
John W. Eaton <jwe@octave.org>
parents: 27635
diff changeset
553 m_tab_widget->clear ();
17903
de8591a19bc6 check for custom editor when opening a new file from the gui (bug #40496)
Torsten <ttl@justmail.de>
parents: 17901
diff changeset
554
25357
7aeafec2b102 keep editor hidden at next startup when it was hidden (bug #53830)
Torsten <mttl@mailbox.org>
parents: 25354
diff changeset
555 setVisible (vis);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
556 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
557
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
558 void file_editor::request_new_file (const QString& commands)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
559 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
560 // Custom editor? If yes, we can only call the editor without passing
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
561 // some initial contents and even without being sure a new file is opened
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
562 if (call_custom_editor ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
563 return;
15848
424edeca3c66 Redo portions of file editor to use more signals/slots rather than casting.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15552
diff changeset
564
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
565 // New file isn't a file_editor_tab function since the file
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
566 // editor tab has yet to be created and there is no object to
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
567 // pass a signal to. Hence, functionality is here.
14676
35512b788af2 Editor can now handle multiple files in tabs.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14674
diff changeset
568
27400
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
569 file_editor_tab *fileEditorTab = make_file_editor_tab (m_ced);
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
570 add_file_editor_tab (fileEditorTab, ""); // new tab with empty title
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
571 fileEditorTab->new_file (commands); // title is updated here
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
572 activate (); // focus editor and new tab
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
573 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
574
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
575 void file_editor::request_close_file (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
576 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
577 file_editor_tab *editor_tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
578 = static_cast<file_editor_tab *> (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
579 editor_tab->conditional_close ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
580 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
581
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
582 void file_editor::request_close_all_files (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
583 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
584 file_editor_tab *editor_tab;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
585
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
586 // loop over all tabs starting from last one otherwise deletion changes index
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
587 for (int index = m_tab_widget->count ()-1; index >= 0; index--)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
588 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
589 editor_tab = static_cast<file_editor_tab *> (m_tab_widget->widget (index));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
590 editor_tab->conditional_close ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
591 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
592 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
593
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
594 void file_editor::request_close_other_files (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
595 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
596 file_editor_tab *editor_tab;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
597 QWidget *tabID = m_tab_widget->currentWidget ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
598
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
599 // loop over all tabs starting from last one otherwise deletion changes index
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
600 for (int index = m_tab_widget->count ()-1; index >= 0; index--)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
601 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
602 if (tabID != m_tab_widget->widget (index))
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
603 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
604 editor_tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
605 = static_cast<file_editor_tab *> (m_tab_widget->widget (index));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
606 editor_tab->conditional_close ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
607 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
608 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
609 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
610
29469
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
611 void file_editor::copy_full_file_path (bool)
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
612 {
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
613 file_editor_tab *editor_tab
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
614 = static_cast<file_editor_tab *> (m_tab_widget->currentWidget ());
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
615
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
616 if (editor_tab)
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
617 QGuiApplication::clipboard ()->setText (editor_tab->file_name ());
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
618 }
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
619
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
620 // open a file from the mru list
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
621 void file_editor::request_mru_open_file (QAction *action)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
622 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
623 if (action)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
624 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
625 request_open_file (action->data ().toStringList ().at (0),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
626 action->data ().toStringList ().at (1));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
627 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
628 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
629
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
630 void file_editor::request_print_file (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
631 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
632 emit fetab_print_file (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
633 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
634
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
635 void file_editor::request_redo (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
636 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
637 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
638 QsciScintillaBase::SCI_REDO);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
639 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
640
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
641 void file_editor::request_cut (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
642 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
643 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
644 QsciScintillaBase::SCI_CUT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
645 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
646
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
647 void file_editor::request_context_help (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
648 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
649 emit fetab_context_help (m_tab_widget->currentWidget (), false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
650 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
651
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
652 void file_editor::request_context_doc (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
653 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
654 emit fetab_context_help (m_tab_widget->currentWidget (), true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
655 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
656
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
657 void file_editor::request_context_edit (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
658 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
659 emit fetab_context_edit (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
660 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
661
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
662 void file_editor::request_save_file (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
663 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
664 emit fetab_save_file (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
665 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
666
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
667 void file_editor::request_save_file_as (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
668 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
669 emit fetab_save_file_as (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
670 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
671
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
672 void file_editor::request_run_file (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
673 {
27404
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
674 emit interpreter_event
28851
1ac5a76ae91d use [=] capture default specification where possible
John W. Eaton <jwe@octave.org>
parents: 28847
diff changeset
675 ([=] (interpreter& interp)
27404
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
676 {
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
677 // INTERPRETER THREAD
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
678
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
679 tree_evaluator& tw = interp.get_evaluator ();
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
680
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
681 if (tw.in_debug_repl ())
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
682 emit request_dbcont_signal ();
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
683 else
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
684 emit fetab_run_file (m_tab_widget->currentWidget ());
a3ec8c75ece3 avoid possible threading issue when running file from GUI editor
John W. Eaton <jwe@octave.org>
parents: 27400
diff changeset
685 });
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
686 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
687
26873
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26561
diff changeset
688 void file_editor::request_step_into_file ()
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26561
diff changeset
689 {
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26561
diff changeset
690 emit fetab_run_file (m_tab_widget->currentWidget (), true);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
691 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
692
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
693 void file_editor::request_context_run (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
694 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
695 emit fetab_context_run (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
696 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
697
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
698 void file_editor::request_toggle_bookmark (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
699 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
700 emit fetab_toggle_bookmark (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
701 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
702
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
703 void file_editor::request_next_bookmark (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
704 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
705 emit fetab_next_bookmark (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
706 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
707
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
708 void file_editor::request_previous_bookmark (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
709 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
710 emit fetab_previous_bookmark (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
711 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
712
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
713 void file_editor::request_remove_bookmark (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
714 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
715 emit fetab_remove_bookmark (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
716 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
717
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
718 void file_editor::request_move_match_brace (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
719 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
720 emit fetab_move_match_brace (m_tab_widget->currentWidget (), false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
721 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
722
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
723 void file_editor::request_sel_match_brace (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
724 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
725 emit fetab_move_match_brace (m_tab_widget->currentWidget (), true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
726 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
727
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
728 // FIXME: What should this do with conditional breakpoints?
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
729 void file_editor::request_toggle_breakpoint (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
730 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
731 emit fetab_toggle_breakpoint (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
732 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
733
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
734 void file_editor::request_next_breakpoint (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
735 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
736 emit fetab_next_breakpoint (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
737 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
738
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
739 void file_editor::request_previous_breakpoint (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
740 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
741 emit fetab_previous_breakpoint (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
742 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
743
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
744 void file_editor::request_remove_breakpoint (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
745 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
746 emit fetab_remove_all_breakpoints (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
747 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
748
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
749 // slots for Edit->Commands actions
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
750 void file_editor::request_delete_start_word (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
751 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
752 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
753 QsciScintillaBase::SCI_DELWORDLEFT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
754 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
755
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
756 void file_editor::request_delete_end_word (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
757 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
758 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
759 QsciScintillaBase::SCI_DELWORDRIGHT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
760 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
761
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
762 void file_editor::request_delete_start_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
763 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
764 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
765 QsciScintillaBase::SCI_DELLINELEFT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
766 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
767
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
768 void file_editor::request_delete_end_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
769 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
770 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
771 QsciScintillaBase::SCI_DELLINERIGHT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
772 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
773
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
774 void file_editor::request_delete_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
775 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
776 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
777 QsciScintillaBase::SCI_LINEDELETE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
778 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
779
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
780 void file_editor::request_copy_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
781 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
782 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
783 QsciScintillaBase::SCI_LINECOPY);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
784 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
785
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
786 void file_editor::request_cut_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
787 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
788 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
789 QsciScintillaBase::SCI_LINECUT);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
790 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
791
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
792 void file_editor::request_duplicate_selection (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
793 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
794 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
795 QsciScintillaBase::SCI_SELECTIONDUPLICATE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
796 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
797
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
798 void file_editor::request_transpose_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
799 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
800 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
801 QsciScintillaBase::SCI_LINETRANSPOSE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
802 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
803
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
804 void file_editor::request_comment_selected_text (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
805 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
806 emit fetab_comment_selected_text (m_tab_widget->currentWidget (), false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
807 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
808
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
809 void file_editor::request_uncomment_selected_text (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
810 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
811 emit fetab_uncomment_selected_text (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
812 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
813
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
814 void file_editor::request_comment_var_selected_text (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
815 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
816 emit fetab_comment_selected_text (m_tab_widget->currentWidget (), true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
817 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
818
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
819 // slots for Edit->Format actions
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
820 void file_editor::request_upper_case (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
821 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
822 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
823 QsciScintillaBase::SCI_UPPERCASE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
824 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
825
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
826 void file_editor::request_lower_case (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
827 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
828 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
829 QsciScintillaBase::SCI_LOWERCASE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
830 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
831
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
832 void file_editor::request_indent_selected_text (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
833 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
834 emit fetab_indent_selected_text (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
835 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
836
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
837 void file_editor::request_unindent_selected_text (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
838 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
839 emit fetab_unindent_selected_text (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
840 }
24484
abb075ada761 Allow commenting with manually selected comment strings (bug #52695):
Torsten <mttl@mailbox.org>
parents: 24232
diff changeset
841
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
842 void file_editor::request_smart_indent_line_or_selected_text ()
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
843 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
844 emit fetab_smart_indent_line_or_selected_text (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
845 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
846
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
847 void file_editor::request_conv_eol_windows (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
848 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
849 emit fetab_convert_eol (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
850 QsciScintilla::EolWindows);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
851 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
852 void
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
853 file_editor::request_conv_eol_unix (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
854 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
855 emit fetab_convert_eol (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
856 QsciScintilla::EolUnix);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
857 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
858
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
859 void file_editor::request_conv_eol_mac (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
860 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
861 emit fetab_convert_eol (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
862 QsciScintilla::EolMac);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
863 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
864
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
865 // Slot for initially creating and showing the find dialog
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
866 void file_editor::request_find (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
867 {
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
868 // Create the dialog
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
869 find_create ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
870
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
871 // Since find_create shows the dialog without activating the widget
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
872 // (which is reuqired in other cases) do this manually here
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
873 m_find_dialog->activateWindow ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
874
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
875 // Initiate search text from possible selection and save the initial
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
876 // data from the dialog on the defined structure
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
877 m_find_dialog->init_search_text ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
878 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
879
27971
ec769a7ab9fb fix more spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents: 27957
diff changeset
880 // This method creates the find dialog.
ec769a7ab9fb fix more spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents: 27957
diff changeset
881
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
882 void file_editor::find_create ()
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
883 {
27835
8b514b304be8 fix multiple editor find dialogs
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27818
diff changeset
884 if (m_find_dialog)
8b514b304be8 fix multiple editor find dialogs
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27818
diff changeset
885 m_find_dialog->close ();
8b514b304be8 fix multiple editor find dialogs
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27818
diff changeset
886
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
887 if (isFloating ())
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
888 m_find_dialog = new find_dialog (m_octave_qobj, this, this);
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
889 else
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
890 m_find_dialog = new find_dialog (m_octave_qobj, this, parentWidget ());
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
891
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
892 // Add required actions
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
893 m_find_dialog->addAction (m_find_next_action);
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
894 m_find_dialog->addAction (m_find_previous_action);
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
895
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
896 // Update edit area
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
897 file_editor_tab *fet
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
898 = static_cast<file_editor_tab *> (m_tab_widget->currentWidget ());
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
899 m_find_dialog->update_edit_area (fet->qsci_edit_area ());
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
900
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
901 // Icon is the same as the editor
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
902 m_find_dialog->setWindowIcon (windowIcon ());
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
903
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
904 // Position: lower right of editor's position
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
905 int xp = x () + frameGeometry ().width ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
906 int yp = y () + frameGeometry ().height ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
907
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
908 if (! isFloating ())
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
909 {
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
910 // Fix position if editor is docked
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
911
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
912 QWidget *parent = parentWidget ();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
913
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
914 if (parent)
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
915 {
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
916 xp = xp + parent->x ();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
917 yp = yp + parent->y ();
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
918 }
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
919 }
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
920
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
921 if (yp < 0)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
922 yp = 0;
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
923
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
924 // The size of the find dialog is considered in restore_settings
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
925 // since its size might change depending on the options
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
926 m_find_dialog->restore_settings (QPoint (xp, yp));
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
927
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
928 // Set visible
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
929 m_find_dialog->set_visible (true);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
930 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
931
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
932 void file_editor::request_find_next (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
933 {
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
934 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
935 m_find_dialog->find_next ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
936 }
24232
e0bcd17ac070 smart indentation for selections or current line in code editor
John W. Eaton <jwe@octave.org>
parents: 24130
diff changeset
937
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
938 void file_editor::request_find_previous (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
939 {
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
940 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
941 m_find_dialog->find_prev ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
942 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
943
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
944 void file_editor::request_goto_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
945 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
946 emit fetab_goto_line (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
947 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
948
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
949 void file_editor::request_completion (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
950 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
951 emit fetab_completion (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
952 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
953
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
954 void file_editor::handle_file_name_changed (const QString& fname,
27053
1bdfd2b523c9 use tab icon for indicating a modified editor file (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27051
diff changeset
955 const QString& tip,
1bdfd2b523c9 use tab icon for indicating a modified editor file (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27051
diff changeset
956 bool modified)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
957 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
958 QObject *fileEditorTab = sender ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
959 if (fileEditorTab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
960 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
961 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
962
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
963 for (int i = 0; i < m_tab_widget->count (); i++)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
964 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
965 if (m_tab_widget->widget (i) == fileEditorTab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
966 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
967 m_tab_widget->setTabText (i, fname);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
968 m_tab_widget->setTabToolTip (i, tip);
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
969
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
970 m_save_action->setEnabled (modified);
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
971 m_current_tab_modified = modified;
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
972
27053
1bdfd2b523c9 use tab icon for indicating a modified editor file (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27051
diff changeset
973 if (modified)
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
974 m_tab_widget->setTabIcon (i, rmgr.icon ("document-save"));
27053
1bdfd2b523c9 use tab icon for indicating a modified editor file (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27051
diff changeset
975 else
1bdfd2b523c9 use tab icon for indicating a modified editor file (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27051
diff changeset
976 m_tab_widget->setTabIcon (i, QIcon ());
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
977 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
978 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
979 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
980 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
981
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
982 void file_editor::handle_tab_close_request (int index)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
983 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
984 file_editor_tab *editor_tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
985 = static_cast<file_editor_tab *> (m_tab_widget->widget (index));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
986 editor_tab->conditional_close ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
987 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
988
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
989 void
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
990 file_editor::handle_tab_remove_request (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
991 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
992 QObject *fileEditorTab = sender ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
993 if (fileEditorTab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
994 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
995 for (int i = 0; i < m_tab_widget->count (); i++)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
996 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
997 if (m_tab_widget->widget (i) == fileEditorTab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
998 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
999 m_tab_widget->removeTab (i);
29747
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
1000
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
1001 // Deleting the sender (even with deleteLater) seems a
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
1002 // bit strange. Is there a better way?
c0466e8ab704 avoid crash when closing GUI with open editor tabs (bug #60500)
John W. Eaton <jwe@octave.org>
parents: 29573
diff changeset
1003 fileEditorTab->deleteLater ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1004 break;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1005 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1006 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1007 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1008 check_actions ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1009
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
1010 activate (); // focus stays in editor when tab is closed
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1011
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1012 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1013
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1014 // context menu of edit area
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1015 void file_editor::active_tab_changed (int index)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1016 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1017 emit fetab_change_request (m_tab_widget->widget (index));
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
1018 activate ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1019 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1020
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1021 void file_editor::handle_editor_state_changed (bool copy_available,
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1022 bool is_octave_file,
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1023 bool is_modified)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1024 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1025 // In case there is some scenario where traffic could be coming from
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1026 // all the file editor tabs, just process info from the current active tab.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1027 if (sender () == m_tab_widget->currentWidget ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1028 {
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1029 m_save_action->setEnabled (is_modified);
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1030 m_current_tab_modified = is_modified;
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1031
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1032 if (m_copy_action)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1033 m_copy_action->setEnabled (copy_available);
29698
bbf5d4ea616c fix enabled state of editor save action depending on modification state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29691
diff changeset
1034
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1035 m_cut_action->setEnabled (copy_available);
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
1036
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1037 m_run_selection_action->setEnabled (copy_available);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1038 m_run_action->setEnabled (is_octave_file);
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
1039 m_is_octave_file = is_octave_file;
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
1040
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29374
diff changeset
1041 emit editor_tabs_changed_signal (true, m_is_octave_file);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1042 }
27075
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
1043
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
1044 m_copy_action_enabled = m_copy_action->isEnabled ();
fb427fafd494 fix enabled copy action in editor without selected text
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27074
diff changeset
1045 m_undo_action_enabled = m_undo_action->isEnabled ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1046 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1047
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1048 void file_editor::handle_mru_add_file (const QString& file_name,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1049 const QString& encoding)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1050 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1051 int index;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1052 while ((index = m_mru_files.indexOf (file_name)) >= 0)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1053 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1054 m_mru_files.removeAt (index);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1055 m_mru_files_encodings.removeAt (index);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1056 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1057
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1058 m_mru_files.prepend (file_name);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1059 m_mru_files_encodings.prepend (encoding);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1060
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1061 mru_menu_update ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1062 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1063
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1064 void file_editor::check_conflict_save (const QString& saveFileName,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1065 bool remove_on_success)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1066 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1067 // Check whether this file is already open in the editor.
27637
d16336646e18 return pointer to file_editor_tab from file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27636
diff changeset
1068 file_editor_tab *tab = find_tab_widget (saveFileName);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1069
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1070 if (tab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1071 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1072 // Note: to overwrite the contents of some other file editor tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1073 // with the same name requires identifying which file editor tab
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1074 // that is (not too difficult) then closing that tab. Of course,
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1075 // that could trigger another dialog box if the file editor tab
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1076 // with the same name has modifications in it. This could become
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1077 // somewhat confusing to the user. For now, opt to do nothing.
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1078
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1079 // Create a NonModal message about error.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1080 QMessageBox *msgBox
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1081 = new QMessageBox (QMessageBox::Critical, tr ("Octave Editor"),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1082 tr ("File not saved! A file with the selected name\n%1\n"
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1083 "is already open in the editor").
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1084 arg (saveFileName),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1085 QMessageBox::Ok, nullptr);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1086
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1087 msgBox->setWindowModality (Qt::NonModal);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1088 msgBox->setAttribute (Qt::WA_DeleteOnClose);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1089 msgBox->show ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1090
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1091 return;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1092 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1093
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1094 QObject *saveFileObject = sender ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1095 QWidget *saveFileWidget = nullptr;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1096
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1097 for (int i = 0; i < m_tab_widget->count (); i++)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1098 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1099 if (m_tab_widget->widget (i) == saveFileObject)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1100 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1101 saveFileWidget = m_tab_widget->widget (i);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1102 break;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1103 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1104 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1105 if (! saveFileWidget)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1106 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1107 // Create a NonModal message about error.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1108 QMessageBox *msgBox
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1109 = new QMessageBox (QMessageBox::Critical, tr ("Octave Editor"),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1110 tr ("The associated file editor tab has disappeared."),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1111 QMessageBox::Ok, nullptr);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1112
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1113 msgBox->setWindowModality (Qt::NonModal);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1114 msgBox->setAttribute (Qt::WA_DeleteOnClose);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1115 msgBox->show ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1116
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1117 return;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1118 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1119
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1120 // Can save without conflict, have the file editor tab do so.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1121 emit fetab_save_file (saveFileWidget, saveFileName, remove_on_success);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1122 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1123
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1124 void file_editor::handle_insert_debugger_pointer_request (const QString& file,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1125 int line)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1126 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1127 request_open_file (file, QString (), line, true); // default encoding
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1128 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1129
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1130 void file_editor::handle_delete_debugger_pointer_request (const QString& file,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1131 int line)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1132 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1133 if (! file.isEmpty ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1134 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1135 // Check whether this file is already open in the editor.
27637
d16336646e18 return pointer to file_editor_tab from file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27636
diff changeset
1136 file_editor_tab *tab = find_tab_widget (file);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1137
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1138 if (tab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1139 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1140 m_tab_widget->setCurrentWidget (tab);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1141
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1142 if (line > 0)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1143 emit fetab_delete_debugger_pointer (tab, line);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1144
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1145 emit fetab_set_focus (tab);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1146 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1147 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1148 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1149
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1150 void file_editor::handle_update_breakpoint_marker_request (bool insert,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1151 const QString& file,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1152 int line,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1153 const QString& cond)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1154 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1155 request_open_file (file, QString (), line, false, true, insert, cond);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1156 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1157
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1158 void file_editor::handle_edit_file_request (const QString& file)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1159 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1160 request_open_file (file);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1161 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1162
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1163 // Slot used for signals indicating that a file was changed/renamed or
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1164 // is going to be deleted/renamed
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1165 void file_editor::handle_file_remove (const QString& old_name,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1166 const QString& new_name)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1167 {
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1168 // Clear old list of file data and declare a structure for file data
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1169 m_tmp_closed_files.clear ();
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1170 session_data f_data;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1171
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1172 // Preprocessing old name(s)
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1173 QString old_name_clean = old_name.trimmed ();
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1174 int s = old_name_clean.size ();
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1175
29573
6fc423987872 avoid crash in GUI for rmdir("") (bug #60473)
John W. Eaton <jwe@octave.org>
parents: 29372
diff changeset
1176 if (s > 1 && old_name_clean.at (0) == QChar ('\"')
27277
db687716fed6 style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
1177 && old_name_clean.at (s - 1) == QChar ('\"'))
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1178 old_name_clean = old_name_clean.mid (1, s - 2);
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1179
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1180 QStringList old_names = old_name_clean.split ("\" \"");
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1181
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1182 // Check if new name is a file or directory
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1183 QFileInfo newf (new_name);
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1184 bool new_is_dir = newf.isDir ();
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1185
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1186 // Now loop over all old files/dirs (several files by movefile ())
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1187 for (int i = 0; i < old_names.count (); i++)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1188 {
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1189 // Check if old name is a file or directory
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1190 QFileInfo old (old_names.at (i));
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1191
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1192 if (old.isDir ())
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1193 {
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1194 // Call the function which handles directories and return
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1195 handle_dir_remove (old_names.at (i), new_name);
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1196 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1197 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1198 {
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
1199 // It is a single file. Is it open?
27637
d16336646e18 return pointer to file_editor_tab from file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27636
diff changeset
1200 file_editor_tab *editor_tab = find_tab_widget (old_names.at (i));
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1201
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1202 if (editor_tab)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1203 {
27638
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1204 // Get index and line.
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1205
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1206 f_data.encoding = editor_tab->encoding ();
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1207 f_data.index = m_tab_widget->indexOf (editor_tab);
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1208 int l, c;
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1209 editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
95534a0ad14c eliminate redundant loop over tabs in file_editor::handle_file_remove
John W. Eaton <jwe@octave.org>
parents: 27637
diff changeset
1210 f_data.line = l + 1;
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1211
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1212 // Close it silently
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1213 m_no_focus = true; // Remember for not focussing editor
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1214 editor_tab->file_has_changed (QString (), true); // Close the tab
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1215 m_no_focus = false; // Back to normal
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1216
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1217 // For reloading old file if error while removing
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1218 f_data.file_name = old_names.at (i);
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1219 // For reloading new file (if new_file is not empty)
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1220 if (new_is_dir)
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1221 {
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1222 std::string ndir = new_name.toStdString ();
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1223 std::string ofile = old.fileName ().toStdString ();
27276
7455523fdf01 style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
1224 f_data.new_file_name
7455523fdf01 style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
1225 = QString::fromStdString (sys::env::make_absolute (ofile, ndir));
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1226 }
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1227 else
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1228 f_data.new_file_name = new_name;
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1229
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1230 // Add file data to list
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
1231 m_tmp_closed_files << f_data;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1232 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1233 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1234 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1235 }
24082
0052d47ddc3e Backed out changeset ba164db1c4a4
Torsten <mttl@mailbox.org>
parents: 24048
diff changeset
1236
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1237 // Slot for signal indicating that a file was renamed
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1238 void file_editor::handle_file_renamed (bool load_new)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1239 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1240 m_no_focus = true; // Remember for not focussing editor
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1241
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
1242 // Loop over all files that have to be reloaded. Start at the end of the
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1243 // list, otherwise the stored indexes are not correct.
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1244 for (int i = m_tmp_closed_files.count () - 1; i >= 0; i--)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1245 {
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1246 // Load old or new file
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1247 if (load_new)
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1248 {
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1249 if (! m_tmp_closed_files.at (i).new_file_name.isEmpty ())
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1250 request_open_file (m_tmp_closed_files.at (i).new_file_name,
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1251 m_tmp_closed_files.at (i).encoding,
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1252 m_tmp_closed_files.at (i).line,
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1253 false, false, true, "",
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1254 m_tmp_closed_files.at (i).index);
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1255 }
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1256 else
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1257 {
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1258 request_open_file (m_tmp_closed_files.at (i).file_name,
27935
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1259 m_tmp_closed_files.at (i).encoding,
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1260 m_tmp_closed_files.at (i).line,
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1261 false, false, true, "",
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1262 m_tmp_closed_files.at (i).index);
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1263 }
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1264
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1265 }
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1266
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1267 m_no_focus = false; // Back to normal focus
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1268
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1269 // Clear the list of file data
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1270 m_tmp_closed_files.clear ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1271 }
24082
0052d47ddc3e Backed out changeset ba164db1c4a4
Torsten <mttl@mailbox.org>
parents: 24048
diff changeset
1272
27611
0495b64288f7 use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents: 27605
diff changeset
1273 void file_editor::notice_settings (const gui_settings *settings)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1274 {
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
1275 int size_idx = settings->value (global_icon_size).toInt ();
26058
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 25923
diff changeset
1276 size_idx = (size_idx > 0) - (size_idx < 0) + 1; // Make valid index from 0 to 2
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 25923
diff changeset
1277
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1278 QStyle *st = style ();
26058
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 25923
diff changeset
1279 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 25923
diff changeset
1280 m_tool_bar->setIconSize (QSize (icon_size, icon_size));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1281
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1282 // Tab position and rotation
27276
7455523fdf01 style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
1283 QTabWidget::TabPosition pos
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
1284 = static_cast<QTabWidget::TabPosition> (settings->value (ed_tab_position).toInt ());
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1285 bool rotated = settings->value (ed_tabs_rotated).toBool ();
27276
7455523fdf01 style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
1286
27090
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1287 m_tab_widget->setTabPosition (pos);
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1288
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1289 if (rotated)
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1290 m_tab_widget->setTabsClosable (false); // No close buttons
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1291 // FIXME: close buttons can not be correctly placed in rotated tabs
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1292
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1293 // Get the tab bar and set the rotation
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1294 int rotation = rotated;
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1295 if (pos == QTabWidget::West)
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1296 rotation = -rotation;
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1297
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1298 tab_bar *bar = m_tab_widget->get_tab_bar ();
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1299 bar->set_rotated (rotation);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1300
27090
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1301 // Get suitable height of a tab related to font and icon size
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1302 int height = 1.5*QFontMetrics (m_tab_widget->font ()).height ();
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1303 int is = 1.5*m_tab_widget->iconSize ().height ();
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1304 if (is > height)
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1305 height = is;
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1306
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1307 // Calculate possibly limited width and set the elide mode
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1308 int chars = settings->value (ed_tabs_max_width).toInt ();
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1309 int width = 9999;
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1310 if (chars > 0)
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1311 width = chars * QFontMetrics (m_tab_widget->font ()).averageCharWidth ();
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1312
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1313 // Get tab bar size properties for style sheet depending on rotation
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1314 QString width_str ("width");
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1315 QString height_str ("height");
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1316 if ((pos == QTabWidget::West) || (pos == QTabWidget::East))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1317 {
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1318 width_str = QString ("height");
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1319 height_str = QString ("width");
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1320 }
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1321
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1322 QString style_sheet
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1323 = QString ("QTabBar::tab {max-" + height_str + ": %1px;\n"
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1324 "max-" + width_str + ": %2px; }")
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1325 .arg (height).arg (width);
27120
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1326
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1327 #if defined (Q_OS_MAC)
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1328 // FIXME: This is a workaround for missing tab close buttons on MacOS
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1329 // in several Qt versions (https://bugreports.qt.io/browse/QTBUG-61092)
29467
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1330 if (! rotated)
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1331 {
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1332 QString close_button_css_mac (
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1333 "QTabBar::close-button"
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1334 " { width: 6px; image: url(:/actions/icons/widget-close.png);"
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1335 " subcontrol-position: button; }\n"
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1336 "QTabBar::close-button:hover"
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1337 " { background-color: #cccccc; }");
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1338
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1339 style_sheet = style_sheet + close_button_css_mac;
80457383d5e1 allow rotated tabs in the file editor (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29465
diff changeset
1340 }
27120
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1341 #endif
c2a8365c73fc add workaround for missing editor tab close buttons on macos (bug #56158)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27102
diff changeset
1342
27090
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
1343 m_tab_widget->setStyleSheet (style_sheet);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1344
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1345 bool show_it;
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1346 show_it = settings->value (ed_show_line_numbers).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1347 m_show_linenum_action->setChecked (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1348 show_it = settings->value (ed_show_white_space).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1349 m_show_whitespace_action->setChecked (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1350 show_it = settings->value (ed_show_eol_chars).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1351 m_show_eol_action->setChecked (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1352 show_it = settings->value (ed_show_indent_guides).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1353 m_show_indguide_action->setChecked (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1354 show_it = settings->value (ed_long_line_marker).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1355 m_show_longline_action->setChecked (show_it);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1356
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1357 show_it = settings->value (ed_show_toolbar).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1358 m_show_toolbar_action->setChecked (show_it);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1359 m_tool_bar->setVisible (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1360 show_it = settings->value (ed_show_edit_status_bar).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1361 m_show_statusbar_action->setChecked (show_it);
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1362 show_it = settings->value (ed_show_hscroll_bar).toBool ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1363 m_show_hscrollbar_action->setChecked (show_it);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1364
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1365 set_shortcuts ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1366
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1367 // Find dialog with the same icon as the editor
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1368 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1369 m_find_dialog->setWindowIcon (windowIcon ());
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1370
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1371 // Relay signal to file editor tabs.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1372 emit fetab_settings_changed (settings);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1373 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1374
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1375 void file_editor::set_shortcuts (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1376 {
27956
2310164737b3 fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents: 27047
diff changeset
1377 // Shortcuts also available in the main window, as well as the related
2310164737b3 fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents: 27047
diff changeset
1378 // shortcuts, are defined in main_window and added to the editor
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1379
27630
262cdd0f7619 don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents: 27629
diff changeset
1380 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager ();
262cdd0f7619 don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents: 27629
diff changeset
1381
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1382 // File menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1383 scmgr.set_shortcut (m_edit_function_action, 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
1384 scmgr.set_shortcut (m_save_action, sc_edit_file_save);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1385 scmgr.set_shortcut (m_save_as_action, 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
1386 scmgr.set_shortcut (m_close_action, sc_edit_file_close);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1387 scmgr.set_shortcut (m_close_all_action, 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
1388 scmgr.set_shortcut (m_close_others_action, 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
1389 scmgr.set_shortcut (m_print_action, sc_edit_file_print);
17903
de8591a19bc6 check for custom editor when opening a new file from the gui (bug #40496)
Torsten <ttl@justmail.de>
parents: 17901
diff changeset
1390
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1391 // Edit menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1392 scmgr.set_shortcut (m_redo_action, sc_edit_edit_redo);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1393 scmgr.set_shortcut (m_cut_action, sc_edit_edit_cut);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1394 scmgr.set_shortcut (m_find_action, 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
1395 scmgr.set_shortcut (m_find_next_action, 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
1396 scmgr.set_shortcut (m_find_previous_action, 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
1397
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1398 scmgr.set_shortcut (m_delete_start_word_action, 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
1399 scmgr.set_shortcut (m_delete_end_word_action, 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
1400 scmgr.set_shortcut (m_delete_start_line_action, 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
1401 scmgr.set_shortcut (m_delete_end_line_action, 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
1402 scmgr.set_shortcut (m_delete_line_action, 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
1403 scmgr.set_shortcut (m_copy_line_action, 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
1404 scmgr.set_shortcut (m_cut_line_action, 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
1405 scmgr.set_shortcut (m_duplicate_selection_action, 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
1406 scmgr.set_shortcut (m_transpose_line_action, 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
1407 scmgr.set_shortcut (m_comment_selection_action, 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
1408 scmgr.set_shortcut (m_uncomment_selection_action, 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
1409 scmgr.set_shortcut (m_comment_var_selection_action, 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
1410
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1411 scmgr.set_shortcut (m_upper_case_action, 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
1412 scmgr.set_shortcut (m_lower_case_action, sc_edit_edit_lower_case);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1413 scmgr.set_shortcut (m_indent_selection_action, 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
1414 scmgr.set_shortcut (m_unindent_selection_action, sc_edit_edit_unindent_selection);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1415 scmgr.set_shortcut (m_smart_indent_line_or_selection_action, sc_edit_edit_smart_indent_line_or_selection);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1416 scmgr.set_shortcut (m_completion_action, sc_edit_edit_completion_list);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1417 scmgr.set_shortcut (m_goto_line_action, 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
1418 scmgr.set_shortcut (m_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
1419 scmgr.set_shortcut (m_sel_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
1420 scmgr.set_shortcut (m_toggle_bookmark_action, 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
1421 scmgr.set_shortcut (m_next_bookmark_action, 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
1422 scmgr.set_shortcut (m_previous_bookmark_action, 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
1423 scmgr.set_shortcut (m_remove_bookmark_action, sc_edit_edit_remove_bookmark);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1424 scmgr.set_shortcut (m_preferences_action, sc_edit_edit_preferences);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1425 scmgr.set_shortcut (m_styles_preferences_action, sc_edit_edit_styles_preferences);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1426
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1427 scmgr.set_shortcut (m_conv_eol_windows_action, 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
1428 scmgr.set_shortcut (m_conv_eol_unix_action, 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
1429 scmgr.set_shortcut (m_conv_eol_mac_action, sc_edit_edit_conv_eol_mac);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1430
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1431 // View menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1432 scmgr.set_shortcut (m_show_linenum_action, 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
1433 scmgr.set_shortcut (m_show_whitespace_action, 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
1434 scmgr.set_shortcut (m_show_eol_action, 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
1435 scmgr.set_shortcut (m_show_indguide_action, 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
1436 scmgr.set_shortcut (m_show_longline_action, 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
1437 scmgr.set_shortcut (m_show_toolbar_action, 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
1438 scmgr.set_shortcut (m_show_statusbar_action, 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
1439 scmgr.set_shortcut (m_show_hscrollbar_action, 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
1440 scmgr.set_shortcut (m_zoom_in_action, 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
1441 scmgr.set_shortcut (m_zoom_out_action, sc_edit_view_zoom_out);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1442 scmgr.set_shortcut (m_zoom_normal_action, sc_edit_view_zoom_normal);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1443 scmgr.set_shortcut (m_sort_tabs_action, sc_edit_view_sort_tabs);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1444
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1445 // Debug menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1446 scmgr.set_shortcut (m_toggle_breakpoint_action, 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
1447 scmgr.set_shortcut (m_next_breakpoint_action, 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
1448 scmgr.set_shortcut (m_previous_breakpoint_action, 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
1449 scmgr.set_shortcut (m_remove_all_breakpoints_action, sc_edit_debug_remove_breakpoints);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1450
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1451 // Run menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1452 scmgr.set_shortcut (m_run_action, 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
1453 scmgr.set_shortcut (m_run_selection_action, sc_edit_run_run_selection);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1454
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1455 // Help menu
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1456 scmgr.set_shortcut (m_context_help_action, 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
1457 scmgr.set_shortcut (m_context_doc_action, sc_edit_help_doc_keyword);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1458
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1459 // Tab navigation without menu entries
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27805
diff changeset
1460 scmgr.set_shortcut (m_switch_left_tab_action, 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
1461 scmgr.set_shortcut (m_switch_right_tab_action, 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
1462 scmgr.set_shortcut (m_move_tab_left_action, 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
1463 scmgr.set_shortcut (m_move_tab_right_action, sc_edit_tabs_move_tab_right);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1464
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1465 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1466
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1467 // This slot is a reimplementation of the virtual slot in octave_dock_widget.
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1468 // We need this for creating an empty script when the editor has no open
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1469 // files and is made visible.
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1470 void file_editor::handle_visibility (bool visible)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1471 {
29199
0b18887bc997 simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28851
diff changeset
1472 octave_dock_widget::handle_visibility (visible);
0b18887bc997 simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28851
diff changeset
1473
29715
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
1474 if (! m_editor_ready)
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
1475 return;
82e45c11da7d fix auto completion in default empty script of GUI editor (bug #60689)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29713
diff changeset
1476
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1477 if (m_closed && visible)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1478 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1479 m_closed = false;
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1480 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1481 gui_settings *settings = rmgr.get_settings ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1482 restore_session (settings);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1483 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1484
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1485 empty_script (false, visible);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1486 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1487
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1488 // This slot is a reimplementation of the virtual slot in octave_dock_widget.
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1489 // We need this for updating the parent of the find dialog
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1490 void file_editor::toplevel_change (bool)
27089
9326c2258e60 fix visibility of find dialog when editor is docked/undocked (bug #5)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27075
diff changeset
1491 {
27787
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1492 if (m_find_dialog)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1493 {
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1494 // close current dialog
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1495 m_find_dialog->close ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1496
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1497 // re-create dialog with the new parent (editor or main-win)
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1498 find_create ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1499 m_find_dialog->activateWindow ();
5169ed0ff0f0 only one find dialog for all editor tabs (bug #57238)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27691
diff changeset
1500 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1501 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1502
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1503 void file_editor::update_octave_directory (const QString& dir)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1504 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1505 m_ced = dir;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1506 emit fetab_set_directory (m_ced); // for save dialog
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1507 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1508
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1509 void file_editor::copyClipboard (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1510 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1511 if (editor_tab_has_focus ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1512 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1513 QsciScintillaBase::SCI_COPY);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1514 }
18545
17baa684892c fix flashing while debuggung and editor is tabbed behind console (bug #41757)
Torsten <ttl@justmail.de>
parents: 18472
diff changeset
1515
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1516 void file_editor::pasteClipboard (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1517 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1518 if (editor_tab_has_focus ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1519 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1520 QsciScintillaBase::SCI_PASTE);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1521 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1522
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1523 void file_editor::selectAll (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1524 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1525 if (editor_tab_has_focus ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1526 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1527 QsciScintillaBase::SCI_SELECTALL);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1528 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1529
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1530 void file_editor::do_undo (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1531 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1532 if (editor_tab_has_focus ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1533 emit fetab_scintilla_command (m_tab_widget->currentWidget (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1534 QsciScintillaBase::SCI_UNDO);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1535 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1536
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1537 // Open a file, if not already open, and mark the current execution location
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1538 // and/or a breakpoint with condition cond.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1539 void file_editor::request_open_file (const QString& openFileName,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1540 const QString& encoding,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1541 int line, bool debug_pointer,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1542 bool breakpoint_marker, bool insert,
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
1543 const QString& cond, int index)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1544 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1545 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1546 gui_settings *settings = rmgr.get_settings ();
29934
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1547
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1548 if (settings->value (global_use_custom_editor).toBool ())
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1549 {
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1550 // Custom editor
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1551 if (debug_pointer || breakpoint_marker)
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1552 return; // Do not call custom editor during debugging
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1553
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1554 if (call_custom_editor (openFileName, line))
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1555 return; // Custom editor called
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1556 }
116dbaba5a74 fix opening a file in a custom editor (bug #60990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29747
diff changeset
1557
25622
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1558 bool show_dbg_file
27672
a36443e94f8a simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents: 27651
diff changeset
1559 = settings->value (ed_show_dbg_file).toBool ();
25622
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1560
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1561 if (openFileName.isEmpty ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1562 {
27956
2310164737b3 fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents: 27047
diff changeset
1563 // This happens if edit is called without an argument
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1564 // Open editor with empty edit area instead (as new file would do)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1565 request_new_file ("");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1566 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1567 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1568 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1569 // Check whether this file is already open in the editor.
27637
d16336646e18 return pointer to file_editor_tab from file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27636
diff changeset
1570 file_editor_tab *tab = find_tab_widget (openFileName);
18545
17baa684892c fix flashing while debuggung and editor is tabbed behind console (bug #41757)
Torsten <ttl@justmail.de>
parents: 18472
diff changeset
1571
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1572 if (tab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1573 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1574 m_tab_widget->setCurrentWidget (tab);
16407
4d438dffbfac gui: call external editor when opening a file and custom editor is selected
Torsten <ttl@justmail.de>
parents: 16399
diff changeset
1575
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1576 if (line > 0)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1577 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1578 if (insert)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1579 emit fetab_goto_line (tab, line);
16546
c1e90c7cfd30 try harder to find editor tab widgets for files with multiple names
John W. Eaton <jwe@octave.org>
parents: 16525
diff changeset
1580
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1581 if (debug_pointer)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1582 emit fetab_insert_debugger_pointer (tab, line);
16377
8430ea8c1594 open editor tab and insert marker for debugging with gui
John W. Eaton <jwe@octave.org>
parents: 16375
diff changeset
1583
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1584 if (breakpoint_marker)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1585 emit fetab_do_breakpoint_marker (insert, tab, line, cond);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1586 }
16377
8430ea8c1594 open editor tab and insert marker for debugging with gui
John W. Eaton <jwe@octave.org>
parents: 16375
diff changeset
1587
27935
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1588 if (show_dbg_file && ! ((breakpoint_marker || debug_pointer)
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
1589 && is_editor_console_tabbed ()))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1590 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1591 emit fetab_set_focus (tab);
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
1592 activate ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1593 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1594 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1595 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1596 {
25622
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1597 if (! show_dbg_file && (breakpoint_marker || debug_pointer))
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1598 return; // Do not open a file for showing dbg markers
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1599
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1600 if (breakpoint_marker && ! insert)
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1601 return; // Never open a file when removing breakpoints
a7ee69d23f32 add a gui preference for opening files when debugging in console (bug #49119)
Torsten <mttl@mailbox.org>
parents: 25508
diff changeset
1602
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1603 file_editor_tab *fileEditorTab = nullptr;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1604 // Reuse <unnamed> tab if it hasn't yet been modified.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1605 bool reusing = false;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1606 tab = find_tab_widget ("");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1607 if (tab)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1608 {
27637
d16336646e18 return pointer to file_editor_tab from file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27636
diff changeset
1609 fileEditorTab = tab;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1610 if (fileEditorTab->qsci_edit_area ()->isModified ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1611 fileEditorTab = nullptr;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1612 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1613 reusing = true;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1614 }
21565
08baf0ebc9a9 Reappropriate <unnamed> editor tab when opening a new file (bug #47529)
Lachlan Andrew <lachlanbis@gmail.com>
parents: 21562
diff changeset
1615
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1616 // If <unnamed> was absent or modified, create a new tab.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1617 if (! fileEditorTab)
27400
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
1618 fileEditorTab = make_file_editor_tab ();
21565
08baf0ebc9a9 Reappropriate <unnamed> editor tab when opening a new file (bug #47529)
Lachlan Andrew <lachlanbis@gmail.com>
parents: 21562
diff changeset
1619
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1620 fileEditorTab->set_encoding (encoding);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1621 QString result = fileEditorTab->load_file (openFileName);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1622 if (result == "")
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1623 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1624 // Supply empty title then have the file_editor_tab update
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1625 // with full or short name.
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1626 if (! reusing)
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1627 add_file_editor_tab (fileEditorTab, "", index);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1628 fileEditorTab->update_window_title (false);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1629 // file already loaded, add file to mru list here
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1630 QFileInfo file_info = QFileInfo (openFileName);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1631 handle_mru_add_file (file_info.canonicalFilePath (),
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1632 encoding);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1633
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1634 if (line > 0)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1635 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1636 if (insert)
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1637 emit fetab_goto_line (fileEditorTab, line);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1638
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1639 if (debug_pointer)
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1640 emit fetab_insert_debugger_pointer (fileEditorTab,
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1641 line);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1642 if (breakpoint_marker)
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1643 emit fetab_do_breakpoint_marker (insert, fileEditorTab,
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1644 line, cond);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1645 }
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1646 }
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1647 else
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1648 {
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1649 delete fileEditorTab;
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1650 fileEditorTab = nullptr;
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1651
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1652 if (QFile::exists (openFileName))
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1653 {
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1654 // File not readable:
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1655 // create a NonModal message about error.
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1656 QMessageBox *msgBox
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1657 = new QMessageBox (QMessageBox::Critical,
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1658 tr ("Octave Editor"),
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1659 tr ("Could not open file\n%1\nfor read: %2.").
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1660 arg (openFileName).arg (result),
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1661 QMessageBox::Ok, this);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1662
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1663 msgBox->setWindowModality (Qt::NonModal);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1664 msgBox->setAttribute (Qt::WA_DeleteOnClose);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1665 msgBox->show ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1666 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1667 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1668 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1669 // File does not exist, should it be created?
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1670 bool create_file = true;
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1671 QMessageBox *msgBox;
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1672
27849
28d7ec92bae6 replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27835
diff changeset
1673 if (! settings->value (ed_create_new_file).toBool ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1674 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1675 msgBox = new QMessageBox (QMessageBox::Question,
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1676 tr ("Octave Editor"),
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1677 tr ("File\n%1\ndoes not exist. "
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1678 "Do you want to create it?").arg (openFileName),
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
1679 QMessageBox::NoButton, nullptr);
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1680 QPushButton *create_button =
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1681 msgBox->addButton (tr ("Create"), QMessageBox::YesRole);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1682 msgBox->addButton (tr ("Cancel"), QMessageBox::RejectRole);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1683 msgBox->setDefaultButton (create_button);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1684 msgBox->exec ();
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1685
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1686 QAbstractButton *clicked_button = msgBox->clickedButton ();
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1687 if (clicked_button != create_button)
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1688 create_file = false;
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1689
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1690 delete msgBox;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1691 }
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1692
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1693 if (create_file)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1694 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1695 // create the file and call the editor again
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1696 QFile file (openFileName);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1697 if (! file.open (QIODevice::WriteOnly))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1698 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1699 // error opening the file
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1700 msgBox = new QMessageBox (QMessageBox::Critical,
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1701 tr ("Octave Editor"),
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1702 tr ("Could not open file\n%1\nfor write: %2.").
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1703 arg (openFileName).arg (file.errorString ()),
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1704 QMessageBox::Ok, this);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1705
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1706 msgBox->setWindowModality (Qt::NonModal);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1707 msgBox->setAttribute (Qt::WA_DeleteOnClose);
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1708 msgBox->show ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1709 }
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1710 else
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1711 {
26369
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1712 file.close ();
0249ba4c9589 Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents: 26109
diff changeset
1713 request_open_file (openFileName);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1714 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1715 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1716 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1717 }
16377
8430ea8c1594 open editor tab and insert marker for debugging with gui
John W. Eaton <jwe@octave.org>
parents: 16375
diff changeset
1718
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1719 if (! ((breakpoint_marker || debug_pointer) && is_editor_console_tabbed ()))
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1720 {
25923
a7511a1489b8 call octave functions with return value from GUI (bug #47585)
Torsten <mttl@mailbox.org>
parents: 25914
diff changeset
1721 // update breakpoint pointers, really show editor
a7511a1489b8 call octave functions with return value from GUI (bug #47585)
Torsten <mttl@mailbox.org>
parents: 25914
diff changeset
1722 // and the current editor tab
26080
13d11afc8122 fix crash after editor dialog about creation of non-existing file
Torsten <mttl@mailbox.org>
parents: 26058
diff changeset
1723 if (fileEditorTab)
13d11afc8122 fix crash after editor dialog about creation of non-existing file
Torsten <mttl@mailbox.org>
parents: 26058
diff changeset
1724 fileEditorTab->update_breakpoints ();
27281
0915fec3d3a9 prevent gui from catching focus when its desktop workspace becomes active
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27277
diff changeset
1725 activate ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1726 emit file_loaded_signal ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1727 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1728 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1729 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1730 }
14676
35512b788af2 Editor can now handle multiple files in tabs.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14674
diff changeset
1731
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1732 void file_editor::request_preferences (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1733 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1734 emit request_settings_dialog ("editor");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1735 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1736
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1737 void file_editor::request_styles_preferences (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1738 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1739 emit request_settings_dialog ("editor_styles");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1740 }
17676
c060ad097056 add menu entries to the editor for directly accessing the editor's settings
Torsten <ttl@justmail.de>
parents: 17639
diff changeset
1741
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1742 void file_editor::show_line_numbers (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1743 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1744 toggle_preference (ed_show_line_numbers);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1745 }
17676
c060ad097056 add menu entries to the editor for directly accessing the editor's settings
Torsten <ttl@justmail.de>
parents: 17639
diff changeset
1746
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1747 void file_editor::show_white_space (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1748 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1749 toggle_preference (ed_show_white_space);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1750 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1751
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1752 void file_editor::show_eol_chars (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1753 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1754 toggle_preference (ed_show_eol_chars);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1755 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1756
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1757 void file_editor::show_indent_guides (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1758 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1759 toggle_preference (ed_show_indent_guides);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1760 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1761
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1762 void file_editor::show_long_line (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1763 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1764 toggle_preference (ed_long_line_marker);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1765 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1766
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1767 void file_editor::show_toolbar (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1768 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1769 toggle_preference (ed_show_toolbar);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1770 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1771
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1772 void file_editor::show_statusbar (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1773 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1774 toggle_preference (ed_show_edit_status_bar);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1775 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1776
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1777 void file_editor::show_hscrollbar (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1778 {
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1779 toggle_preference (ed_show_hscroll_bar);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1780 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1781
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1782 void file_editor::zoom_in (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1783 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1784 emit fetab_zoom_in (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1785 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1786
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1787 void file_editor::zoom_out (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1788 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1789 emit fetab_zoom_out (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1790 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1791
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1792 void file_editor::zoom_normal (bool)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1793 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1794 emit fetab_zoom_normal (m_tab_widget->currentWidget ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1795 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1796
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1797 void file_editor::create_context_menu (QMenu *menu)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1798 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1799 // remove all standard actions from scintilla
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1800 QList<QAction *> all_actions = menu->actions ();
27676
ea7d36e9f197 use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents: 27672
diff changeset
1801
ea7d36e9f197 use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents: 27672
diff changeset
1802 for (auto *a : all_actions)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1803 menu->removeAction (a);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1804
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1805 // add editor's actions with icons and customized shortcuts
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1806 menu->addAction (m_cut_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1807 menu->addAction (m_copy_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1808 menu->addAction (m_paste_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1809 menu->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1810 menu->addAction (m_selectall_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1811 menu->addSeparator ();
25274
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1812 menu->addAction (m_find_files_action);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1813 menu->addAction (m_find_action);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1814 menu->addAction (m_find_next_action);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1815 menu->addAction (m_find_previous_action);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1816 menu->addSeparator ();
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1817 menu->addMenu (m_edit_cmd_menu);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1818 menu->addMenu (m_edit_fmt_menu);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1819 menu->addMenu (m_edit_nav_menu);
1f1e1e72e958 make file editor context menu more like menu bar edit menu
John W. Eaton <jwe@octave.org>
parents: 25064
diff changeset
1820 menu->addSeparator ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1821 menu->addAction (m_run_selection_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1822 }
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
1823
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1824 void file_editor::edit_status_update (bool undo, bool redo)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1825 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1826 if (m_undo_action)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1827 m_undo_action->setEnabled (undo);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1828 m_redo_action->setEnabled (redo);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1829 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1830
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1831 // handler for the close event
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1832 void file_editor::closeEvent (QCloseEvent *e)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1833 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1834 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1835 gui_settings *settings = rmgr.get_settings ();
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1836 if (settings->value (ed_hiding_closes_files).toBool ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1837 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1838 if (check_closing ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1839 {
27651
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
1840 // All tabs are closed without cancelling,
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
1841 // store closing state for restoring session when shown again.
c9ebcb9050b4 fix broken storing of editor session data at shutdown
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27640
diff changeset
1842 // Editor is closing when session data is stored in preferences
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1843 m_closed = true;
27605
60cecb3fed04 fix saving modified files when closing editor tabs or octave
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27560
diff changeset
1844 e->ignore ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1845 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1846 else
25623
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1847 {
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1848 e->ignore ();
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1849 return;
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1850 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1851 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1852 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1853 e->accept ();
25623
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1854
331f46b9ee6c fix close events of some main dock widgets (bug #54185)
Torsten <mttl@mailbox.org>
parents: 25622
diff changeset
1855 octave_dock_widget::closeEvent (e);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1856 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1857
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1858 void file_editor::dragEnterEvent (QDragEnterEvent *e)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1859 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1860 if (e->mimeData ()->hasUrls ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1861 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1862 e->acceptProposedAction ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1863 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1864 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1865
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1866 void file_editor::dropEvent (QDropEvent *e)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1867 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1868 if (e->mimeData ()->hasUrls ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1869 {
27676
ea7d36e9f197 use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents: 27672
diff changeset
1870 for (const auto& url : e->mimeData ()->urls ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1871 request_open_file (url.toLocalFile ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1872 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1873 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1874
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1875 bool file_editor::is_editor_console_tabbed (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1876 {
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1877 // FIXME: is there a way to do this job that doesn't require casting
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1878 // the parent to a main_window object?
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1879
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1880 main_window *w = dynamic_cast<main_window *> (parentWidget ());
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1881
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1882 if (w)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1883 {
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1884 QList<QDockWidget *> w_list = w->tabifiedDockWidgets (this);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1885 QDockWidget *console =
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1886 static_cast<QDockWidget *> (w->get_dock_widget_list ().at (0));
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1887
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1888 for (int i = 0; i < w_list.count (); i++)
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1889 {
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1890 if (w_list.at (i) == console)
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1891 return true;
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
1892 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1893 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1894
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1895 return false;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1896 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1897
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1898 void file_editor::construct (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1899 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1900 QWidget *editor_widget = new QWidget (this);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1901
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1902 // FIXME: what was the intended purpose of this unused variable?
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1903 // QStyle *editor_style = QApplication::style ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1904
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
1905 // Menu bar: do not set it native, required in macOS and Ubuntu Unity (Qt5)
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
1906 // for a visible menu bar in the editor widget. This property is ignored
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1907 // on other platforms.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1908 m_menu_bar = new QMenuBar (editor_widget);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1909 m_menu_bar->setNativeMenuBar (false);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1910
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1911 m_tool_bar = new QToolBar (editor_widget);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1912 m_tool_bar->setMovable (true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1913
29713
7b4b7e2a524d fix signal connection to grand parent
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29707
diff changeset
1914 m_tab_widget = new file_editor_tab_widget (editor_widget, this);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1915
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1916 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1917
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1918 // the mru-list and an empty array of actions
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1919 gui_settings *settings = rmgr.get_settings ();
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1920 m_mru_files = settings->value (ed_mru_file_list).toStringList ();
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
1921 m_mru_files_encodings = settings->value (ed_mru_file_encodings)
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents: 24731
diff changeset
1922 .toStringList ();
18944
b2c4d6d461f0 fix conflict between main and editor menus when using alt keys (bug #42659)
Torsten <ttl@justmail.de>
parents: 18767
diff changeset
1923
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1924 if (m_mru_files_encodings.count () != m_mru_files.count ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1925 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1926 // encodings don't have the same count -> do not use them!
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1927 m_mru_files_encodings = QStringList ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1928 for (int i = 0; i < m_mru_files.count (); i++)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1929 m_mru_files_encodings << QString ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1930 }
24130
6fdbdb66d7cb set editor menu bar as non-native menu bar on all platforms
Torsten <mttl@mailbox.org>
parents: 24123
diff changeset
1931
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1932 for (int i = 0; i < MaxMRUFiles; ++i)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1933 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1934 m_mru_file_actions[i] = new QAction (this);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1935 m_mru_file_actions[i]->setVisible (false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1936 }
24130
6fdbdb66d7cb set editor menu bar as non-native menu bar on all platforms
Torsten <mttl@mailbox.org>
parents: 24123
diff changeset
1937
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1938 // menu bar
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1939
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1940 // file menu
13562
a89aa9e05e19 editor: menu bar, run editor file in octave
ttl <ttl@justmail.de>
parents: 13558
diff changeset
1941
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1942 m_fileMenu = add_menu (m_menu_bar, tr ("&File"));
20814
2da4058d65c7 store the encoding of recent editor files in the mru list
Torsten <ttl@justmail.de>
parents: 20796
diff changeset
1943
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1944 // new and open menus are inserted later by the main window
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1945 m_mru_file_menu = new QMenu (tr ("&Recent Editor Files"), m_fileMenu);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1946 for (int i = 0; i < MaxMRUFiles; ++i)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1947 m_mru_file_menu->addAction (m_mru_file_actions[i]);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1948 m_fileMenu->addMenu (m_mru_file_menu);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1949
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1950 m_fileMenu->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1951
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1952 m_edit_function_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1953 = add_action (m_fileMenu,
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1954 tr ("&Edit Function"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1955 SLOT (request_context_edit (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1956
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1957 m_fileMenu->addSeparator ();
20814
2da4058d65c7 store the encoding of recent editor files in the mru list
Torsten <ttl@justmail.de>
parents: 20796
diff changeset
1958
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1959 m_save_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1960 = add_action (m_fileMenu, rmgr.icon ("document-save"),
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1961 tr ("&Save File"), SLOT (request_save_file (bool)));
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1962
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1963 m_save_as_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1964 = add_action (m_fileMenu, rmgr.icon ("document-save-as"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1965 tr ("Save File &As..."),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1966 SLOT (request_save_file_as (bool)));
15860
feba9ff6e6a8 editor: add list of recently used files to the file menu
Torsten <ttl@justmail.de>
parents: 15848
diff changeset
1967
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1968 m_fileMenu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
1969
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1970 m_close_action
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
1971 = add_action (m_fileMenu, rmgr.icon ("window-close", false),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1972 tr ("&Close"), SLOT (request_close_file (bool)));
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1973
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1974 m_close_all_action
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
1975 = add_action (m_fileMenu, rmgr.icon ("window-close", false),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1976 tr ("Close All"), SLOT (request_close_all_files (bool)));
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1977
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1978 m_close_others_action
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
1979 = add_action (m_fileMenu, rmgr.icon ("window-close", false),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1980 tr ("Close Other Files"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1981 SLOT (request_close_other_files (bool)));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
1982
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1983 m_fileMenu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1984
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1985 m_print_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1986 = add_action (m_fileMenu, rmgr.icon ("document-print"),
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1987 tr ("Print..."), SLOT (request_print_file (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1988
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1989 // edit menu (undo, copy, paste and select all later via main window)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1990
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1991 m_edit_menu = add_menu (m_menu_bar, tr ("&Edit"));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
1992
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
1993 m_redo_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1994 = add_action (m_edit_menu, rmgr.icon ("edit-redo"),
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
1995 tr ("&Redo"), SLOT (request_redo (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1996 m_redo_action->setEnabled (false);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
1997
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
1998 m_edit_menu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
1999
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2000 m_cut_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2001 = add_action (m_edit_menu, rmgr.icon ("edit-cut"),
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2002 tr ("Cu&t"), SLOT (request_cut (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2003 m_cut_action->setEnabled (false);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2004
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2005 m_find_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2006 = add_action (m_edit_menu, rmgr.icon ("edit-find-replace"),
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2007 tr ("&Find and Replace..."), SLOT (request_find (bool)));
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2008
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2009 m_find_next_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2010 = add_action (m_edit_menu, tr ("Find &Next..."),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2011 SLOT (request_find_next (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2012
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2013 m_find_previous_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2014 = add_action (m_edit_menu, tr ("Find &Previous..."),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2015 SLOT (request_find_previous (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2016
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2017 m_edit_menu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2018
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2019 m_edit_cmd_menu = m_edit_menu->addMenu (tr ("&Commands"));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2020
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2021 m_delete_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2022 = add_action (m_edit_cmd_menu, tr ("Delete Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2023 SLOT (request_delete_line (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2024
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2025 m_copy_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2026 = add_action (m_edit_cmd_menu, tr ("Copy Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2027 SLOT (request_copy_line (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2028
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2029 m_cut_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2030 = add_action (m_edit_cmd_menu, tr ("Cut Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2031 SLOT (request_cut_line (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2032
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2033 m_edit_cmd_menu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2034
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2035 m_delete_start_word_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2036 = add_action (m_edit_cmd_menu, tr ("Delete to Start of Word"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2037 SLOT (request_delete_start_word (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2038
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2039 m_delete_end_word_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2040 = add_action (m_edit_cmd_menu, tr ("Delete to End of Word"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2041 SLOT (request_delete_end_word (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2042
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2043 m_delete_start_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2044 = add_action (m_edit_cmd_menu, tr ("Delete to Start of Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2045 SLOT (request_delete_start_line (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2046
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2047 m_delete_end_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2048 = add_action (m_edit_cmd_menu, tr ("Delete to End of Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2049 SLOT (request_delete_end_line (bool)));
22169
b3ced5e3cebb Enable shortcuts for find next / find previous
Lachlan Andrew <lachlanbis@gmail.com>
parents: 22022
diff changeset
2050
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2051 m_edit_cmd_menu->addSeparator ();
22169
b3ced5e3cebb Enable shortcuts for find next / find previous
Lachlan Andrew <lachlanbis@gmail.com>
parents: 22022
diff changeset
2052
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2053 m_duplicate_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2054 = add_action (m_edit_cmd_menu, tr ("Duplicate Selection/Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2055 SLOT (request_duplicate_selection (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2056
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2057 m_transpose_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2058 = add_action (m_edit_cmd_menu, tr ("Transpose Line"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2059 SLOT (request_transpose_line (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2060
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2061 m_edit_cmd_menu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2062
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2063 m_completion_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2064 = add_action (m_edit_cmd_menu, tr ("&Show Completion List"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2065 SLOT (request_completion (bool)));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2066
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2067 m_edit_fmt_menu = m_edit_menu->addMenu (tr ("&Format"));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2068
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2069 m_upper_case_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2070 = add_action (m_edit_fmt_menu, tr ("&Uppercase Selection"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2071 SLOT (request_upper_case (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2072
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2073 m_lower_case_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2074 = add_action (m_edit_fmt_menu, tr ("&Lowercase Selection"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2075 SLOT (request_lower_case (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2076
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2077 m_edit_fmt_menu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2078
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2079 m_comment_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2080 = add_action (m_edit_fmt_menu, tr ("&Comment"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2081 SLOT (request_comment_selected_text (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2082
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2083 m_uncomment_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2084 = add_action (m_edit_fmt_menu, tr ("&Uncomment"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2085 SLOT (request_uncomment_selected_text (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2086
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2087 m_comment_var_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2088 = add_action (m_edit_fmt_menu, tr ("Comment (Choosing String)"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2089 SLOT (request_comment_var_selected_text (bool)));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2090
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2091 m_edit_fmt_menu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2092
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2093 m_indent_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2094 = add_action (m_edit_fmt_menu, tr ("&Indent Selection Rigidly"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2095 SLOT (request_indent_selected_text (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2096
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2097 m_unindent_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2098 = add_action (m_edit_fmt_menu, tr ("&Unindent Selection Rigidly"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2099 SLOT (request_unindent_selected_text (bool)));
19247
9582fad68730 add actions for converting the eol characters of the editor file
Torsten <ttl@justmail.de>
parents: 19246
diff changeset
2100
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2101 m_smart_indent_line_or_selection_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2102 = add_action (m_edit_fmt_menu, tr ("Indent Code"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2103 SLOT (request_smart_indent_line_or_selected_text (void)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2104
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2105 m_edit_fmt_menu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2106
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2107 m_conv_eol_windows_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2108 = add_action (m_edit_fmt_menu,
25064
27ade14df345 Some minor string changes (bug #53526).
Markus Mützel <markus.muetzel@gmx.de>
parents: 25062
diff changeset
2109 tr ("Convert Line Endings to &Windows (CRLF)"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2110 SLOT (request_conv_eol_windows (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2111
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2112 m_conv_eol_unix_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2113 = add_action (m_edit_fmt_menu, tr ("Convert Line Endings to &Unix (LF)"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2114 SLOT (request_conv_eol_unix (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2115
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2116 m_conv_eol_mac_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2117 = add_action (m_edit_fmt_menu,
26524
027f3c884763 Change EOL format label from "Mac (CR)" to "Legacy Mac (CR)" in GUI
Andrew Janke <andrew@apjanke.net>
parents: 26376
diff changeset
2118 tr ("Convert Line Endings to Legacy &Mac (CR)"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2119 SLOT (request_conv_eol_mac (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2120
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2121 m_edit_nav_menu = m_edit_menu->addMenu (tr ("Navi&gation"));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2122
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2123 m_goto_line_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2124 = add_action (m_edit_nav_menu, tr ("Go &to Line..."),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2125 SLOT (request_goto_line (bool)));
24232
e0bcd17ac070 smart indentation for selections or current line in code editor
John W. Eaton <jwe@octave.org>
parents: 24130
diff changeset
2126
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2127 m_edit_cmd_menu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2128
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2129 m_move_to_matching_brace
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2130 = add_action (m_edit_nav_menu, tr ("Move to Matching Brace"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2131 SLOT (request_move_match_brace (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2132
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2133 m_sel_to_matching_brace
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2134 = add_action (m_edit_nav_menu, tr ("Select to Matching Brace"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2135 SLOT (request_sel_match_brace (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2136
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2137 m_edit_nav_menu->addSeparator ();
19247
9582fad68730 add actions for converting the eol characters of the editor file
Torsten <ttl@justmail.de>
parents: 19246
diff changeset
2138
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2139 m_next_bookmark_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2140 = add_action (m_edit_nav_menu, tr ("&Next Bookmark"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2141 SLOT (request_next_bookmark (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2142
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2143 m_previous_bookmark_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2144 = add_action (m_edit_nav_menu, tr ("Pre&vious Bookmark"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2145 SLOT (request_previous_bookmark (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2146
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2147 m_toggle_bookmark_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2148 = add_action (m_edit_nav_menu, tr ("Toggle &Bookmark"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2149 SLOT (request_toggle_bookmark (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2150
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2151 m_remove_bookmark_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2152 = add_action (m_edit_nav_menu, tr ("&Remove All Bookmarks"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2153 SLOT (request_remove_bookmark (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2154
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2155 m_edit_menu->addSeparator ();
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2156
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2157 m_preferences_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2158 = add_action (m_edit_menu, rmgr.icon ("preferences-system"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2159 tr ("&Preferences..."),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2160 SLOT (request_preferences (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2161
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2162 m_styles_preferences_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2163 = add_action (m_edit_menu, rmgr.icon ("preferences-system"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2164 tr ("&Styles Preferences..."),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2165 SLOT (request_styles_preferences (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2166
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2167 // view menu
19629
8ef79bc61d8a add actions for moving/selecting to matching brace
Torsten <ttl@justmail.de>
parents: 19608
diff changeset
2168
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2169 QMenu *view_menu = add_menu (m_menu_bar, tr ("&View"));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2170
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2171 m_view_editor_menu = view_menu->addMenu (tr ("&Editor"));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2172
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2173 m_show_linenum_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2174 = add_action (m_view_editor_menu, tr ("Show &Line Numbers"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2175 SLOT (show_line_numbers (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2176 m_show_linenum_action->setCheckable (true);
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2177
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2178 m_show_whitespace_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2179 = add_action (m_view_editor_menu, tr ("Show &Whitespace Characters"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2180 SLOT (show_white_space (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2181 m_show_whitespace_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2182
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2183 m_show_eol_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2184 = add_action (m_view_editor_menu, tr ("Show Line &Endings"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2185 SLOT (show_eol_chars (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2186 m_show_eol_action->setCheckable (true);
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2187
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2188 m_show_indguide_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2189 = add_action (m_view_editor_menu, tr ("Show &Indentation Guides"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2190 SLOT (show_indent_guides (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2191 m_show_indguide_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2192
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2193 m_show_longline_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2194 = add_action (m_view_editor_menu, tr ("Show Long Line &Marker"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2195 SLOT (show_long_line (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2196 m_show_longline_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2197
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2198 m_view_editor_menu->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2199
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2200 m_show_toolbar_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2201 = add_action (m_view_editor_menu, tr ("Show &Toolbar"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2202 SLOT (show_toolbar (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2203 m_show_toolbar_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2204
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2205 m_show_statusbar_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2206 = add_action (m_view_editor_menu, tr ("Show &Statusbar"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2207 SLOT (show_statusbar (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2208 m_show_statusbar_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2209
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2210 m_show_hscrollbar_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2211 = add_action (m_view_editor_menu, tr ("Show &Horizontal Scrollbar"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2212 SLOT (show_hscrollbar (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2213 m_show_hscrollbar_action->setCheckable (true);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2214
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2215 view_menu->addSeparator ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2216
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2217 m_zoom_in_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2218 = add_action (view_menu, rmgr.icon ("zoom-in"), tr ("Zoom &In"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2219 SLOT (zoom_in (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2220
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2221 m_zoom_out_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2222 = add_action (view_menu, rmgr.icon ("zoom-out"), tr ("Zoom &Out"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2223 SLOT (zoom_out (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2224
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2225 m_zoom_normal_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2226 = add_action (view_menu, tr ("&Normal Size"), SLOT (zoom_normal (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2227
27330
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2228 view_menu->addSeparator ();
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2229
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2230 m_sort_tabs_action
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2231 = add_action (view_menu, tr ("&Sort Tabs Alphabetically"),
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2232 SLOT (sort_tabs_alph (void)),
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2233 m_tab_widget->get_tab_bar ());
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2234
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2235 m_menu_bar->addMenu (view_menu);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2236
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2237 // debug menu
21002
314245afff3a add a menu entry for showing/hiding the editor horizontal scrollbar
Torsten <ttl@justmail.de>
parents: 21001
diff changeset
2238
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2239 m_debug_menu = add_menu (m_menu_bar, tr ("&Debug"));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2240
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2241 m_toggle_breakpoint_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2242 = add_action (m_debug_menu, rmgr.icon ("bp-toggle"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2243 tr ("Toggle &Breakpoint"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2244 SLOT (request_toggle_breakpoint (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2245
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2246 m_next_breakpoint_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2247 = add_action (m_debug_menu, rmgr.icon ("bp-next"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2248 tr ("&Next Breakpoint"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2249 SLOT (request_next_breakpoint (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2250
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2251 m_previous_breakpoint_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2252 = add_action (m_debug_menu, rmgr.icon ("bp-prev"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2253 tr ("Pre&vious Breakpoint"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2254 SLOT (request_previous_breakpoint (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2255
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2256 m_remove_all_breakpoints_action
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2257 = add_action (m_debug_menu, rmgr.icon ("bp-rm-all"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2258 tr ("&Remove All Breakpoints"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2259 SLOT (request_remove_breakpoint (bool)));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2260
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2261 m_debug_menu->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2262
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2263 // The other debug actions will be added by the main window.
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2264
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2265 // run menu
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2266
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2267 QMenu *_run_menu = add_menu (m_menu_bar, tr ("&Run"));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2268
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2269 m_run_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2270 = add_action (_run_menu,
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2271 rmgr.icon ("system-run"),
26875
ce972086bfd6 save & run action in editor now also continues in debug mode (bug #44730)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26873
diff changeset
2272 tr ("Save File and Run / Continue"),
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2273 SLOT (request_run_file (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2274
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2275 m_run_selection_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2276 = add_action (_run_menu,
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2277 tr ("Run &Selection"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2278 SLOT (request_context_run (bool)));
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2279 m_run_selection_action->setEnabled (false);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2280
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2281 // help menu
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2282
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2283 QMenu *_help_menu = add_menu (m_menu_bar, tr ("&Help"));
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2284
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2285 m_context_help_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2286 = add_action (_help_menu,
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2287 tr ("&Help on Keyword"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2288 SLOT (request_context_help (bool)));
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2289
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2290 m_context_doc_action
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2291 = add_action (_help_menu,
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2292 tr ("&Documentation on Keyword"),
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2293 SLOT (request_context_doc (bool)));
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2294
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2295 // tab navigation (no menu, only actions; slots in tab_bar)
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2296
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2297 m_switch_left_tab_action
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2298 = add_action (nullptr, "", SLOT (switch_left_tab (void)),
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2299 m_tab_widget->get_tab_bar ());
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2300
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2301 m_switch_right_tab_action
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2302 = add_action (nullptr, "", SLOT (switch_right_tab (void)),
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2303 m_tab_widget->get_tab_bar ());
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2304
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2305 m_move_tab_left_action
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2306 = add_action (nullptr, "", SLOT (move_tab_left (void)),
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2307 m_tab_widget->get_tab_bar ());
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2308
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2309 m_move_tab_right_action
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2310 = add_action (nullptr, "", SLOT (move_tab_right (void)),
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2311 m_tab_widget->get_tab_bar ());
20693
7751bd56d0be added actions and shortcuts for switching editor tabs
Torsten <ttl@justmail.de>
parents: 20630
diff changeset
2312
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2313 // toolbar
20693
7751bd56d0be added actions and shortcuts for switching editor tabs
Torsten <ttl@justmail.de>
parents: 20630
diff changeset
2314
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2315 // popdown menu with mru files
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2316 QToolButton *popdown_button = new QToolButton ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2317 popdown_button->setToolTip (tr ("Recent Files"));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2318 popdown_button->setMenu (m_mru_file_menu);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2319 popdown_button->setPopupMode (QToolButton::InstantPopup);
26108
ed2339e64a57 Place down-arrow icon on most-recently-used popdown menu in editor (bug #55032).
Rik <rik@octave.org>
parents: 25293
diff changeset
2320 popdown_button->setArrowType (Qt::DownArrow);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2321 popdown_button->setToolButtonStyle (Qt::ToolButtonTextOnly);
18665
777281eeb3d4 add all editor actions to the shortcut manager and fix their shortcut context
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
2322
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2323 // new and open actions are inserted later from main window
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2324 m_popdown_mru_action = m_tool_bar->addWidget (popdown_button);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2325 m_tool_bar->addAction (m_save_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2326 m_tool_bar->addAction (m_save_as_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2327 m_tool_bar->addAction (m_print_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2328 m_tool_bar->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2329 // m_undo_action: later via main window
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2330 m_tool_bar->addAction (m_redo_action);
25813
d98d7df9fd15 updated context menus in editor and console window (bug #46884)
Torsten <mttl@mailbox.org>
parents: 25790
diff changeset
2331 m_tool_bar->addSeparator ();
27074
d302dfa0c572 fix order of cut, copy paste actions in editor menu and toolbar (bug #56230)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27055
diff changeset
2332 m_tool_bar->addAction (m_cut_action);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2333 // m_copy_action: later via the main window
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2334 // m_paste_action: later via the main window
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2335 m_tool_bar->addAction (m_find_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2336 //m_tool_bar->addAction (m_find_next_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2337 //m_tool_bar->addAction (m_find_previous_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2338 m_tool_bar->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2339 m_tool_bar->addAction (m_run_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2340 m_tool_bar->addSeparator ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2341 m_tool_bar->addAction (m_toggle_breakpoint_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2342 m_tool_bar->addAction (m_previous_breakpoint_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2343 m_tool_bar->addAction (m_next_breakpoint_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2344 m_tool_bar->addAction (m_remove_all_breakpoints_action);
20754
e6ccc8ae9e41 add list of mru files to the toolbar of the editor
Torsten <ttl@justmail.de>
parents: 20720
diff changeset
2345
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2346 // layout
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2347 QVBoxLayout *vbox_layout = new QVBoxLayout ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2348 vbox_layout->addWidget (m_menu_bar);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2349 vbox_layout->addWidget (m_tool_bar);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2350 vbox_layout->addWidget (m_tab_widget);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2351 vbox_layout->setMargin (0);
27090
e83d3161b256 make editor toolbar, tabs and statusbar more comapct (bug #53902)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27089
diff changeset
2352 vbox_layout->setSpacing (0);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2353 editor_widget->setLayout (vbox_layout);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2354 setWidget (editor_widget);
16981
e86df0d43309 make ctrl-w available for readline in the gui terminal
Torsten <ttl@justmail.de>
parents: 16970
diff changeset
2355
29465
0e9319d40977 add all open tabs to the context menu of the editor tabs (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29439
diff changeset
2356 // Create the basic context menu of the tab bar with editor actions.
0e9319d40977 add all open tabs to the context menu of the editor tabs (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29439
diff changeset
2357 // Actions for selecting an tab are added when the menu is activated.
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2358 tab_bar *bar = m_tab_widget->get_tab_bar ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2359 QMenu *ctx_men = bar->get_context_menu ();
29465
0e9319d40977 add all open tabs to the context menu of the editor tabs (bug #60276)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29439
diff changeset
2360 ctx_men->addSeparator ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2361 ctx_men->addAction (m_close_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2362 ctx_men->addAction (m_close_all_action);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2363 ctx_men->addAction (m_close_others_action);
27330
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2364 ctx_men->addSeparator ();
e449134870fb allow to sort editor tabs alphabetically (bug #42602)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
2365 ctx_men->addAction (m_sort_tabs_action);
29469
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
2366 add_action (ctx_men, tr ("Copy Full File &Path"),
b4906d3eeb63 provide a tab context menu entry for copying the full path of an editor file
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29468
diff changeset
2367 SLOT (copy_full_file_path (bool)), this);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2368
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2369 // signals
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2370 connect (m_mru_file_menu, &QMenu::triggered,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2371 this, &file_editor::request_mru_open_file);
23321
ac4d0a72927a provide a context menu for the tab bar of the editor (bug #44605)
Torsten <mttl@mailbox.org>
parents: 23304
diff changeset
2372
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2373 mru_menu_update ();
23150
d133d90b495a connect execute command signal in editor constructor (bug #50171)
Torsten <mttl@mailbox.org>
parents: 23146
diff changeset
2374
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2375 connect (m_tab_widget, &file_editor_tab_widget::tabCloseRequested,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2376 this, &file_editor::handle_tab_close_request);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2377
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2378 connect (m_tab_widget, &file_editor_tab_widget::currentChanged,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2379 this, &file_editor::active_tab_changed);
17676
c060ad097056 add menu entries to the editor for directly accessing the editor's settings
Torsten <ttl@justmail.de>
parents: 17639
diff changeset
2380
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2381 resize (500, 400);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2382 setWindowIcon (QIcon (":/actions/icons/logo.png"));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2383 set_title (tr ("Editor"));
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2384
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2385 check_actions ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2386 }
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2387
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2388 // Slot when autocompletion list was cancelled
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2389 void file_editor::handle_autoc_cancelled (void)
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2390 {
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2391 // List was cancelled but somehow still active and blocking the
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2392 // edit area from accepting shortcuts. Only after another keypress
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2393 // shortcuts and lists are working againnas expected. This is
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2394 // probably caused by qt bug https://bugreports.qt.io/browse/QTBUG-83720
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2395 // Hack: Accept the list, which is hidden but still active
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2396 // and undo the text insertion, if any
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2397
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2398 file_editor_tab *f = reset_focus ();
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2399 octave_qscintilla *qsci = f->qsci_edit_area ();
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2400
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2401 int line, col;
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2402 qsci->getCursorPosition (&line, &col);
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2403 int l1 = qsci->lineLength (line); // Current line length
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2404
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2405 // Accept autocompletion
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2406 qsci->SendScintilla (QsciScintillaBase::SCI_AUTOCCOMPLETE);
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2407
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2408 // Was text inserted? If yes, undo
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2409 if (qsci->text (line).length () - l1)
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2410 qsci->undo ();
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2411 }
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2412
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2413 file_editor_tab *file_editor::reset_focus (void)
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2414 {
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2415 // Reset the focus of the tab and the related edit area
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2416 file_editor_tab *f
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2417 = static_cast<file_editor_tab *> (m_tab_widget->currentWidget ());
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2418 emit fetab_set_focus (f);
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2419 return f;
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2420 }
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2421
27400
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2422 file_editor_tab *
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2423 file_editor::make_file_editor_tab (const QString& directory)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2424 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2425 file_editor_tab *f = new file_editor_tab (m_octave_qobj, directory);
14676
35512b788af2 Editor can now handle multiple files in tabs.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14674
diff changeset
2426
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2427 // signals from the qscintilla edit area
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2428 connect (f->qsci_edit_area (), &octave_qscintilla::status_update,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2429 this, &file_editor::edit_status_update);
15356
842ab161c10a GUI: new setting to restore tabs from previous session; allow silent load file
Thorsten Liebig <Thorsten.Liebig@gmx.de>
parents: 15321
diff changeset
2430
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2431 connect (f->qsci_edit_area (), &octave_qscintilla::create_context_menu_signal,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2432 this, &file_editor::create_context_menu);
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27467
diff changeset
2433
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2434 connect (f->qsci_edit_area (),
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2435 SIGNAL (SCN_AUTOCCOMPLETED (const char *, int, int, int)),
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2436 this, SLOT (reset_focus (void)));
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2437
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2438 connect (f->qsci_edit_area (), SIGNAL (SCN_AUTOCCANCELLED (void)),
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2439 this, SLOT (handle_autoc_cancelled (void)));
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2440
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28788
diff changeset
2441 // signals from the qscintilla edit area
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2442 connect (this, &file_editor::enter_debug_mode_signal,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2443 f->qsci_edit_area (), &octave_qscintilla::handle_enter_debug_mode);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2444
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2445 connect (this, &file_editor::exit_debug_mode_signal,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2446 f->qsci_edit_area (), &octave_qscintilla::handle_exit_debug_mode);
28382
2b52e473b6ef fix focus issues in editor due to qt bug with focus proxy chains (bug #57635)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27971
diff changeset
2447
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2448 // Signals from the file editor_tab
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2449 connect (f, &file_editor_tab::autoc_closed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2450 this, &file_editor::reset_focus);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2451
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2452 connect (f, &file_editor_tab::file_name_changed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2453 this, &file_editor::handle_file_name_changed);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2454
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2455 connect (f, &file_editor_tab::editor_state_changed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2456 this, &file_editor::handle_editor_state_changed);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2457
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2458 connect (f, &file_editor_tab::tab_remove_request,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2459 this, &file_editor::handle_tab_remove_request);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2460
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2461 connect (f, &file_editor_tab::editor_check_conflict_save,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2462 this, &file_editor::check_conflict_save);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2463
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2464 connect (f, &file_editor_tab::mru_add_file,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2465 this, &file_editor::handle_mru_add_file);
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2466
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2467 connect (f, &file_editor_tab::request_open_file,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2468 this, [=] (const QString& fname, const QString& encoding) { request_open_file (fname, encoding); });
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2469
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2470 connect (f, &file_editor_tab::edit_area_changed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2471 this, &file_editor::edit_area_changed);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2472
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2473 connect (f, &file_editor_tab::set_focus_editor_signal,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2474 this, &file_editor::set_focus);
20995
aab7a3c7168e edit a file from an error message in the terminal (bug #35619)
Torsten <ttl@justmail.de>
parents: 20992
diff changeset
2475
28788
aba2c4eadb83 add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28567
diff changeset
2476 // Signals from the file_editor or main-win non-trivial operations
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2477 connect (this, &file_editor::fetab_settings_changed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2478 f, [=] (const gui_settings *settings) { f->notice_settings (settings); });
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2479
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2480 connect (this, &file_editor::fetab_change_request,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2481 f, &file_editor_tab::change_editor_state);
23177
0b59e37dd83e unhide editor when a file was changed by an external application (bug #50106)
Torsten <mttl@mailbox.org>
parents: 23152
diff changeset
2482
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2483 connect (this, QOverload<const QWidget *, const QString&, bool>::of (&file_editor::fetab_save_file),
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2484 f, QOverload<const QWidget *, const QString&, bool>::of (&file_editor_tab::save_file));
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2485
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2486 // Signals from the file_editor trivial operations
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2487 connect (this, &file_editor::fetab_recover_from_exit,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2488 f, &file_editor_tab::recover_from_exit);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2489
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2490 connect (this, &file_editor::fetab_set_directory,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2491 f, &file_editor_tab::set_current_directory);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2492
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2493 connect (this, &file_editor::fetab_zoom_in,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2494 f, &file_editor_tab::zoom_in);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2495 connect (this, &file_editor::fetab_zoom_out,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2496 f, &file_editor_tab::zoom_out);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2497 connect (this, &file_editor::fetab_zoom_normal,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2498 f, &file_editor_tab::zoom_normal);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2499
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2500 connect (this, &file_editor::fetab_context_help,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2501 f, &file_editor_tab::context_help);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2502
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2503 connect (this, &file_editor::fetab_context_edit,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2504 f, &file_editor_tab::context_edit);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2505
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2506 connect (this, QOverload<const QWidget *>::of (&file_editor::fetab_save_file),
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2507 f, QOverload<const QWidget *>::of (&file_editor_tab::save_file));
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2508
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2509 connect (this, &file_editor::fetab_save_file_as,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2510 f, QOverload<const QWidget *>::of (&file_editor_tab::save_file_as));
17628
99ffa521ecec Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents: 17627
diff changeset
2511
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2512 connect (this, &file_editor::fetab_print_file,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2513 f, &file_editor_tab::print_file);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2514
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2515 connect (this, &file_editor::fetab_run_file,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2516 f, &file_editor_tab::run_file);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2517
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2518 connect (this, &file_editor::fetab_context_run,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2519 f, &file_editor_tab::context_run);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2520
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2521 connect (this, &file_editor::fetab_toggle_bookmark,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2522 f, &file_editor_tab::toggle_bookmark);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2523
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2524 connect (this, &file_editor::fetab_next_bookmark,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2525 f, &file_editor_tab::next_bookmark);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2526
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2527 connect (this, &file_editor::fetab_previous_bookmark,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2528 f, &file_editor_tab::previous_bookmark);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2529
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2530 connect (this, &file_editor::fetab_remove_bookmark,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2531 f, &file_editor_tab::remove_bookmark);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2532
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2533 connect (this, &file_editor::fetab_toggle_breakpoint,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2534 f, &file_editor_tab::toggle_breakpoint);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2535
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2536 connect (this, &file_editor::fetab_next_breakpoint,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2537 f, &file_editor_tab::next_breakpoint);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2538
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2539 connect (this, &file_editor::fetab_previous_breakpoint,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2540 f, &file_editor_tab::previous_breakpoint);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2541
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2542 connect (this, &file_editor::fetab_remove_all_breakpoints,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2543 f, &file_editor_tab::remove_all_breakpoints);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2544
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2545 connect (this, &file_editor::fetab_scintilla_command,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2546 f, &file_editor_tab::scintilla_command);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2547
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2548 connect (this, &file_editor::fetab_comment_selected_text,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2549 f, &file_editor_tab::comment_selected_text);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2550
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2551 connect (this, &file_editor::fetab_uncomment_selected_text,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2552 f, &file_editor_tab::uncomment_selected_text);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2553
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2554 connect (this, &file_editor::fetab_indent_selected_text,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2555 f, &file_editor_tab::indent_selected_text);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2556
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2557 connect (this, &file_editor::fetab_unindent_selected_text,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2558 f, &file_editor_tab::unindent_selected_text);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2559
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2560 connect (this, &file_editor::fetab_smart_indent_line_or_selected_text,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2561 f, &file_editor_tab::smart_indent_line_or_selected_text);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2562
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2563 connect (this, &file_editor::fetab_convert_eol,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2564 f, &file_editor_tab::convert_eol);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2565
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2566 connect (this, &file_editor::fetab_goto_line,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2567 f, &file_editor_tab::goto_line);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2568
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2569 connect (this, &file_editor::fetab_move_match_brace,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2570 f, &file_editor_tab::move_match_brace);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2571
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2572 connect (this, &file_editor::fetab_completion,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2573 f, &file_editor_tab::show_auto_completion);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2574
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2575 connect (this, &file_editor::fetab_set_focus,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2576 f, &file_editor_tab::set_focus);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2577
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2578 connect (this, &file_editor::fetab_insert_debugger_pointer,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2579 f, &file_editor_tab::insert_debugger_pointer);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2580
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2581 connect (this, &file_editor::fetab_delete_debugger_pointer,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2582 f, &file_editor_tab::delete_debugger_pointer);
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2583
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2584 connect (this, &file_editor::fetab_do_breakpoint_marker,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2585 f, &file_editor_tab::do_breakpoint_marker);
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2586
29597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2587 connect (this, &file_editor::update_gui_lexer_signal,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2588 f, &file_editor_tab::update_lexer_settings);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2589
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2590 // Convert other signals from the edit area and tab to editor signals.
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2591
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2592 connect (f->qsci_edit_area (), &octave_qscintilla::execute_command_in_terminal_signal,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2593 this, &file_editor::execute_command_in_terminal_signal);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2594
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2595 connect (f->qsci_edit_area (), &octave_qscintilla::focus_console_after_command_signal,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2596 this, &file_editor::focus_console_after_command_signal);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2597
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2598 connect (f, &file_editor_tab::run_file_signal,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2599 this, &file_editor::run_file_signal);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2600
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2601 connect (f, &file_editor_tab::edit_mfile_request,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2602 this, &file_editor::edit_mfile_request);
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2603
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2604 connect (f, &file_editor_tab::debug_quit_signal,
07591becbc40 eliminate more child to parent signal/slot connections
John W. Eaton <jwe@octave.org>
parents: 29574
diff changeset
2605 this, &file_editor::debug_quit_signal);
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2606
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27281
diff changeset
2607 // Any interpreter_event signal from a file_editor_tab_widget is
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27281
diff changeset
2608 // handled the same as for the parent main_window object.
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27281
diff changeset
2609
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2610 connect (f, QOverload<const fcn_callback&>::of (&file_editor_tab::interpreter_event),
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2611 this, QOverload<const fcn_callback&>::of (&file_editor::interpreter_event));
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2612
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2613 connect (f, QOverload<const meth_callback&>::of (&file_editor_tab::interpreter_event),
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29469
diff changeset
2614 this, QOverload<const meth_callback&>::of (&file_editor::interpreter_event));
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27281
diff changeset
2615
27400
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2616 return f;
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2617 }
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2618
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2619 void file_editor::add_file_editor_tab (file_editor_tab *f, const QString& fn,
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2620 int index)
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2621 {
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2622 if (index == -1)
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2623 m_tab_widget->addTab (f, fn);
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2624 else
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2625 m_tab_widget->insertTab (index, f, fn);
7cf857166440 connect signals when creating file_editor_tab in file editor
John W. Eaton <jwe@octave.org>
parents: 27330
diff changeset
2626
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2627 m_tab_widget->setCurrentWidget (f);
16558
5fc1ce2947bd style fixes
John W. Eaton <jwe@octave.org>
parents: 16547
diff changeset
2628
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2629 check_actions ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2630 }
15848
424edeca3c66 Redo portions of file editor to use more signals/slots rather than casting.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15552
diff changeset
2631
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2632 void file_editor::mru_menu_update (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2633 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2634 int num_files = qMin (m_mru_files.size (), int (MaxMRUFiles));
15873
7d300b85ee25 allow build to proceed if either Qt or QScintilla is missing
John W. Eaton <jwe@octave.org>
parents: 15861
diff changeset
2635
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2636 // configure and show active actions of mru-menu
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2637 for (int i = 0; i < num_files; ++i)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2638 {
25062
32a7222d637a [mq]: tr
Rik <rik@octave.org>
parents: 25054
diff changeset
2639 QString text = QString ("&%1 %2").
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2640 arg ((i+1) % int (MaxMRUFiles)).arg (m_mru_files.at (i));
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2641 m_mru_file_actions[i]->setText (text);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2642
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2643 QStringList action_data;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2644 action_data << m_mru_files.at (i) << m_mru_files_encodings.at (i);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2645 m_mru_file_actions[i]->setData (action_data);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2646
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2647 m_mru_file_actions[i]->setVisible (true);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2648 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2649
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2650 // hide unused mru-menu entries
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2651 for (int j = num_files; j < MaxMRUFiles; ++j)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2652 m_mru_file_actions[j]->setVisible (false);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2653
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2654 // delete entries in string-list beyond MaxMRUFiles
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2655 while (m_mru_files.size () > MaxMRUFiles)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2656 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2657 m_mru_files.removeLast ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2658 m_mru_files_encodings.removeLast ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2659 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2660
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2661 // save actual mru-list in settings
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2662 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2663 gui_settings *settings = rmgr.get_settings ();
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2664
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2665 settings->setValue (ed_mru_file_list.key, m_mru_files);
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2666 settings->setValue (ed_mru_file_encodings.key, m_mru_files_encodings);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2667 settings->sync ();
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2668 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2669
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2670 bool file_editor::call_custom_editor (const QString& file_name, int line)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2671 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2672 // Check if the user wants to use a custom file editor.
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2673 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2674 gui_settings *settings = rmgr.get_settings ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2675
27805
dccc551aa83b replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27787
diff changeset
2676 if (settings->value (global_use_custom_editor.key,
dccc551aa83b replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27787
diff changeset
2677 global_use_custom_editor.def).toBool ())
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2678 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2679 // use the external editor interface for handling the call
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2680 emit request_open_file_external (file_name, line);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2681
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2682 if (line < 0 && ! file_name.isEmpty ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2683 handle_mru_add_file (QFileInfo (file_name).canonicalFilePath (),
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2684 QString ());
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2685
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2686 return true;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2687 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2688
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2689 return false;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2690 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2691
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2692 void file_editor::toggle_preference (const gui_pref& preference)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2693 {
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2694 resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
2695 gui_settings *settings = rmgr.get_settings ();
27861
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2696
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2697 bool old = settings->value (preference).toBool ();
3fada47cc58a replacing literals for editor prefs by symbolic constants
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27849
diff changeset
2698 settings->setValue (preference.key, ! old);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2699 notice_settings (settings);
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2700 }
19945
f7a805f02723 link undo in main window to editor if the latter has focus (bug #44402)
Torsten <ttl@justmail.de>
parents: 19930
diff changeset
2701
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2702 // Function for closing the files in a removed directory
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2703 void file_editor::handle_dir_remove (const QString& old_name,
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2704 const QString& new_name)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2705 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2706 QDir old_dir (old_name);
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2707 session_data f_data;
20693
7751bd56d0be added actions and shortcuts for switching editor tabs
Torsten <ttl@justmail.de>
parents: 20630
diff changeset
2708
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2709 std::list<file_editor_tab *> editor_tab_lst = m_tab_widget->tab_list ();
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2710
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2711 for (auto editor_tab : editor_tab_lst)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2712 {
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2713 QString file_name = editor_tab->file_name ();
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2714
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2715 if (file_name.isEmpty ())
26928
3e6aa7c7bbbb prevent unnamed editor tab from being closed by rmdir (bug #55888)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26554
diff changeset
2716 continue; // Nothing to do, no valid file name
3e6aa7c7bbbb prevent unnamed editor tab from being closed by rmdir (bug #55888)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26554
diff changeset
2717
27047
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2718 // Get abs. file path and its path relative to the removed directory
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2719 QString rel_path_to_file = old_dir.relativeFilePath (file_name);
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2720 QString abs_path_to_file = old_dir.absoluteFilePath (file_name);
27047
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2721
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2722 // Test whether the file is located within the directory that will
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
2723 // be removed. For this, two conditions must be met:
27047
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2724 // 1. The path of the file rel. to the dir is not equal to the
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2725 // its absolute one.
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2726 // If both are equal, then there is no relative path and removed
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27861
diff changeset
2727 // directory and file are on different drives (e.g. on windows)
27047
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2728 // 2. The (real) relative path does not start with "../", i.e.,
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2729 // the file can be reached from the directory by descending only
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2730 if ((rel_path_to_file != abs_path_to_file)
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2731 && (rel_path_to_file.left (3) != QString ("../")))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2732 {
27047
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2733 // The currently considered file is included in the
66fa9ebb0c3e prevent editor from closing files that are not affected by rmdir (bug #55823)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26928
diff changeset
2734 // removed/renamed diectory: Delete it.
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2735 m_no_focus = true; // Remember for not focussing editor
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2736
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2737 if (editor_tab)
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2738 {
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2739 // Get index and line
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2740 int l, c;
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2741 editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2742 f_data.line = l + 1;
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2743 f_data.index = m_tab_widget->indexOf (editor_tab);
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2744 // Close
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2745 editor_tab->file_has_changed (QString (), true);
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2746 }
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2747 m_no_focus = false; // Back to normal
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2748
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2749 // Store file for possible later reload
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2750 f_data.file_name = file_name;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2751
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2752 // Add the new file path and the encoding for later reloading
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2753 // if new_name is given
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2754 if (! new_name.isEmpty ())
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2755 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2756 QDir new_dir (new_name);
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2757 QString append_to_new_dir;
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2758 if (new_dir.exists ())
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2759 {
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2760 // The new directory already exists (movefile was used).
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2761 // This means, we have to add the name (not the path)
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2762 // of the old dir and the relative path to the file
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2763 // to new dir.
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2764 append_to_new_dir
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2765 = old_dir.dirName () + "/" + rel_path_to_file;
25790
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2766 }
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2767 else
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2768 append_to_new_dir = rel_path_to_file;
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2769
872111558bc0 reload editor files when their path changes by using movefile (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25748
diff changeset
2770 f_data.new_file_name
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2771 = new_dir.absoluteFilePath (append_to_new_dir);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2772 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2773 else
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2774 f_data.new_file_name = ""; // no new name, just removing this file
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2775
27635
a10b3e56d678 simplify loop over tabs in file_editor::handle_dir_remove
John W. Eaton <jwe@octave.org>
parents: 27634
diff changeset
2776 f_data.encoding = editor_tab->encoding (); // store the encoding
25743
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2777
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2778 // Store data in list for later reloading
c2a703df0215 preserve tab position and line when reloading renamed editor file (bug #49322)
Torsten <mttl@mailbox.org>
parents: 25742
diff changeset
2779 m_tmp_closed_files << f_data;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2780 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2781 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2782 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2783
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2784 bool file_editor::editor_tab_has_focus (void)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2785 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2786 QWidget *foc_w = focusWidget ();
24730
05c9f42512cb * file-editor.cc: fix broken copy/cut/past/undo actions
Torsten <mttl@mailbox.org>
parents: 24717
diff changeset
2787 if (foc_w && foc_w->inherits ("octave::octave_qscintilla"))
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2788 return true;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2789 return false;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2790 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2791
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2792 // Check whether this file is already open in the editor.
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29935
diff changeset
2793 file_editor_tab *file_editor::find_tab_widget (const QString& file)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2794 {
27634
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2795 std::string std_file = file.toStdString ();
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2796
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2797 std::list<file_editor_tab *> fe_tab_lst = m_tab_widget->tab_list ();
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2798
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2799 for (auto fe_tab : fe_tab_lst)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2800 {
27634
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2801 QString tab_file = fe_tab->file_name ();
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2802
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2803 // We check file == tab_file because
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2804 //
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2805 // same_file ("", "")
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2806 //
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2807 // is false
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2808
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2809 if (same_file (std_file, tab_file.toStdString ()) || file == tab_file)
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2810 return fe_tab;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2811 }
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2812
27634
57b9cf9d8796 simplify loop over tabs in file_editor::find_tab_widget
John W. Eaton <jwe@octave.org>
parents: 27633
diff changeset
2813 return nullptr;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2814 }
23321
ac4d0a72927a provide a context menu for the tab bar of the editor (bug #44605)
Torsten <mttl@mailbox.org>
parents: 23304
diff changeset
2815
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2816 QAction * file_editor::add_action (QMenu *menu, const QString& text,
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2817 const char *member,
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2818 QWidget *receiver)
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2819 {
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2820 return add_action (menu, QIcon (), text, member, receiver);
24717
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2821 }
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2822
63b5ac6a5ee7 * file-editor.cc: More style fixes.
John W. Eaton <jwe@octave.org>
parents: 24716
diff changeset
2823 QAction * file_editor::add_action (QMenu *menu, const QIcon& icon,
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2824 const QString& text, const char *member,
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2825 QWidget *receiver)
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2826 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2827 QAction *a;
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2828 QWidget *r = this;
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2829
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2830 if (receiver != nullptr)
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2831 r = receiver;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2832
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2833 if (menu)
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2834 a = menu->addAction (icon, text, r, member);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2835 else
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2836 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2837 a = new QAction (this);
24731
a01472d4a170 use tab navigation from tab_bar in file editor
Torsten <mttl@mailbox.org>
parents: 24730
diff changeset
2838 connect (a, SIGNAL (triggered ()), r, member);
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2839 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2840
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2841 addAction (a); // important for shortcut context
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2842 a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2843
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2844 return a;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2845 }
23276
ea143f4f76a5 Allow to close an editor tab with the middle mouse button (bug #44605)
Torsten <mttl@mailbox.org>
parents: 23223
diff changeset
2846
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2847 QMenu* file_editor::add_menu (QMenuBar *p, QString name)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2848 {
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2849 QMenu *menu = p->addMenu (name);
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2850
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2851 QString base_name = name; // get a copy
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2852 // replace intended '&' ("&&") by a temp. string
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2853 base_name.replace ("&&", "___octave_amp_replacement___");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2854 // remove single '&' (shortcut)
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2855 base_name.remove ("&");
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2856 // restore intended '&'
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2857 base_name.replace ("___octave_amp_replacement___", "&&");
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2858
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2859 // remember names with and without shortcut
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2860 m_hash_menu_text[menu] = QStringList () << name << base_name;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23920
diff changeset
2861
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2862 return menu;
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24715
diff changeset
2863 }
23304
fb495c47e82d allow double left click for closing tabs in the file editor (bug #44605)
Torsten <mttl@mailbox.org>
parents: 23300
diff changeset
2864 }
fb495c47e82d allow double left click for closing tabs in the file editor (bug #44605)
Torsten <mttl@mailbox.org>
parents: 23300
diff changeset
2865
15873
7d300b85ee25 allow build to proceed if either Qt or QScintilla is missing
John W. Eaton <jwe@octave.org>
parents: 15861
diff changeset
2866 #endif