Mercurial > octave
annotate libgui/src/qt-interpreter-events.cc @ 29613:9367cba2a6d5
allow most dock widgets to be used from command line
This change is an initial attempt to allow the documentation, file,
history, variable editor, and workspace widgets to be opened from the
command line. While running in command line mode, some connections
between those widgets and the interpreter or between two widgets may
be missing. The aim is to eventually make those work but this is a
good start.
These dock widgets are now owned by the base_qobject object and shared
with the main_window object. If they exist when the main_window is
created (possible if using the new terminal widget) then a pointer to
the main_window object is passed to the dock_widget so that they may
be docked there. If the desktop is closed and control returns to the
command line, undocked widgets remain available.
* octave-qobject.h, octave-qobject.cc
(base_qobject::m_documentation_widget,
base_qobject::m_file_browser_widget, base_qobject::m_history_widget,
base_qobject::m_workspace_widget, base_qobject::m_editor_widget,
base_qobject::m_variable_editor_widget): New data members.
(base_qobject::documentation_widget, base_qobject::file_browser_widget,
base_qobject::history_widget, base_qobject::workspace_widget,
base_qobject::editor_widget, base_qobject::variable_editor_widget):
New functions to create dock widgets as needed.
(base_qobject::show_documentation_window,
base_qobject::show_file_browser_window,
base_qobject::show_command_history_window,
base_qobject::show_workspace_window, base_qobject::edit_variable,
base_qobject::handle_variable_editor_update): New functions. Make
signal slot connections that do not require the main window here, not
in main_window::construct_octave_qt_link.
* files-dock-widget.cc (files_dock_widget::files_dock_widget):
If no parent, call make_window.
* documentation-dock-widget.cc
(documentation_dock_widget::documentation_dock_widget): Likewise.
* history-dock-widget.cc (history_dock_widget::history_dock_widget):
Likewise.
* workspace-view.cc (workspace_view::workspace_view): Likewise.
* doc.m: Always give the event manager a chance to display the
documentation, not just if the GUI is running.
* documentation.cc (documentation::documentation): Make sub-objects
children of the documentation object, not children of the parent of
the documentation object.
* main-window.h, main-window.cc (main_window::m_command_window,
main_window::m_history_window, main_window::m_file_browser_window,
main_window::m_doc_browser_window, main_window::m_editor_window,
main_window::m_workspace_window,
main_window::m_variable_editor_window): Manage objects with QPointer.
(main_window::main_window): Acquire m_doc_browser_window,
m_history_window, m_workspace_window, and m_variable_editor_window
from octave_qobj.
* octave-dock-widget.cc (octave_dock_widget::octave_dock_widget):
Don't reference m_parent if it is nullptr.
(octave_dock_widget::handle_settings): Likewise. Return immediately
if settings is nullptr.
(octave_dock_widget::set_main_window): New function.
* variable-editor.h, variable-editor.cc
(variable_editor::~variable_editor): Explicitly delete m_tool_bar and
set it to nullptr.
(variable_editor::edit_variable, variable_editor::notice_settings,
variable_editor::variable_destroyed): Avoid referencing m_tool_bar if
it is nullptr.
* qt-interpreter-events.h, qt-interpreter-events.cc
(qt_interpreter_events::show_documentation): Rename from show_doc.
Change all uses.
(qt_interpreter_events::register_documentation): Rename from
register_doc. Change all uses.
(qt_interpreter_events::unregister_documentation): Rename from
unregister_doc. Change all uses.
(qt_interpreter_events::show_file_browser,
qt_interpreter_events::show_command_history,
qt_interpreter_events::show_workspace): New functions.
(qt_interpreter_events::show_documentation_signal):
Rename from show_doc_signal. Change all uses.
qt_interpreter_events::register_documentation_signal):
Rename from register_doc_signal. Change all uses.
qt_interpreter_events::unregister_documentation_signal):
Rename from unregister_doc_signal. Change all uses.
(qt_interpreter_events::show_file_browser_signal,
qt_interpreter_events::show_command_history_signal,
qt_interpreter_events::show_workspace_signal): New signals.
* event-manager.h, event-manager.cc
(F__event_manager_show_file_browser__,
F__event_manager_show_command_history__,
F__event_manager_show_workspace__): New functions.
(F__event_manager_show_documentation__): Rename from
__event_manager_show_doc__. Change all uses.
(F__event_manager_register_documentation__): Rename from
F__event_manager_register_doc__. Change all uses.
(F__event_manager_unregister_documentation__): Rename from
F__event_manager_unregister_doc__. Change all uses.
(Fopenvar): Don't require GUI to be running.
(interpreter_events::show_documentation): Rename from show_doc.
Change all uses.
(interpreter_events::register_documentation): Rename from
register_doc. Change all uses.
(interpreter_events::unregister_documentation): Rename from
unregister_doc. Change all uses.
(interpreter_events::show_file_browser,
interpreter_events::show_command_history,
interpreter_events::show_workspace): New functions.
(event_manager::show_documentation): Rename from show_doc. Change all
uses.
(event_manager::register_documentation): Rename from
register_doc. Change all uses.
(event_manager::register_documentation): Rename from unregister_doc.
Change all uses.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 29 Apr 2021 11:12:40 -0400 |
parents | 3d34b70b5a49 |
children | b4d2fa28d1d4 |
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 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29000
diff
changeset
|
3 // Copyright (C) 2011-2021 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 //////////////////////////////////////////////////////////////////////// |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21717
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" |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 #endif |
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
30 #include <iostream> |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
31 #include <sstream> |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
32 |
17884
766ad9be2966
Prompt for non-existent new file when using edit.m from GUI (bug #40450)
Torsten <ttl@justmail.de>
parents:
17824
diff
changeset
|
33 #include <QDialog> |
766ad9be2966
Prompt for non-existent new file when using edit.m from GUI (bug #40450)
Torsten <ttl@justmail.de>
parents:
17824
diff
changeset
|
34 #include <QDir> |
27600
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
35 #include <QIcon> |
24641
7d177be54c37
pass variable value to variable editor in addition to variable name
John W. Eaton <jwe@octave.org>
parents:
24632
diff
changeset
|
36 #include <QMetaType> |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21148
diff
changeset
|
37 #include <QPushButton> |
24641
7d177be54c37
pass variable value to variable editor in addition to variable name
John W. Eaton <jwe@octave.org>
parents:
24632
diff
changeset
|
38 #include <QStringList> |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16426
diff
changeset
|
39 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
40 #include "dialog.h" |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
41 #include "gui-preferences-ed.h" |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
42 #include "octave-qobject.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
43 #include "qt-interpreter-events.h" |
28566
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
44 #include "qt-utils.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
45 |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27929
diff
changeset
|
46 #include "localcharset-wrapper.h" |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22022
diff
changeset
|
47 #include "oct-env.h" |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16426
diff
changeset
|
48 #include "str-vec.h" |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22022
diff
changeset
|
49 |
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22022
diff
changeset
|
50 #include "builtin-defun-decls.h" |
16547
3cd80afc3509
improve debugging with the GUI
John W. Eaton <jwe@octave.org>
parents:
16528
diff
changeset
|
51 #include "error.h" |
23438
d24d01273bd0
eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
52 #include "interpreter-private.h" |
16635
25e418d23a4b
fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents:
16581
diff
changeset
|
53 #include "load-path.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
54 #include "oct-map.h" |
25557
bb779fc2d0db
do not attempt to open a file when debugging a command line fct (bug #54231)
Torsten <mttl@mailbox.org>
parents:
25407
diff
changeset
|
55 #include "octave.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27409
diff
changeset
|
56 #include "ov.h" |
26117
a6df420457ac
use symbol_info_list instead of symbol_scope to pass workspace info to gui
John W. Eaton <jwe@octave.org>
parents:
25948
diff
changeset
|
57 #include "syminfo.h" |
16635
25e418d23a4b
fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents:
16581
diff
changeset
|
58 #include "utils.h" |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16443
diff
changeset
|
59 |
24645
f61502510d08
restore ability to select variables for editing from workspace widget
John W. Eaton <jwe@octave.org>
parents:
24641
diff
changeset
|
60 Q_DECLARE_METATYPE (octave_value) |
26117
a6df420457ac
use symbol_info_list instead of symbol_scope to pass workspace info to gui
John W. Eaton <jwe@octave.org>
parents:
25948
diff
changeset
|
61 Q_DECLARE_METATYPE (octave::symbol_info_list) |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27284
diff
changeset
|
62 Q_DECLARE_METATYPE (octave::fcn_callback) |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27284
diff
changeset
|
63 Q_DECLARE_METATYPE (octave::meth_callback) |
17884
766ad9be2966
Prompt for non-existent new file when using edit.m from GUI (bug #40450)
Torsten <ttl@justmail.de>
parents:
17824
diff
changeset
|
64 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
65 namespace octave |
24641
7d177be54c37
pass variable value to variable editor in addition to variable name
John W. Eaton <jwe@octave.org>
parents:
24632
diff
changeset
|
66 { |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
67 static QStringList |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
68 make_qstring_list (const std::list<std::string>& lst) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
69 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
70 QStringList retval; |
16512
7f2395651a1c
dialog boxes with Qt widgets
Daniel J Sebald <daniel.sebald@ieee.org>, John W. Eaton <jwe@octave.org>
parents:
16502
diff
changeset
|
71 |
27550
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
72 for (const auto& s : lst) |
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
73 retval.append (QString::fromStdString (s)); |
16512
7f2395651a1c
dialog boxes with Qt widgets
Daniel J Sebald <daniel.sebald@ieee.org>, John W. Eaton <jwe@octave.org>
parents:
16502
diff
changeset
|
74 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
75 return retval; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
76 } |
16512
7f2395651a1c
dialog boxes with Qt widgets
Daniel J Sebald <daniel.sebald@ieee.org>, John W. Eaton <jwe@octave.org>
parents:
16502
diff
changeset
|
77 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
78 static QStringList |
27263
99aa1bcb8848
rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27261
diff
changeset
|
79 make_filter_list (const event_manager::filter_list& lst) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
80 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
81 QStringList retval; |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
82 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
83 // We have pairs of data, first being the list of extensions |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
84 // exta;exb;extc etc second the name to use as filter name |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
85 // (optional). Qt wants a list of filters in the format of |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
86 // 'FilterName (space separated exts)'. |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
87 |
27550
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
88 for (const auto& ext_name : lst) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
89 { |
27550
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
90 QString ext = QString::fromStdString (ext_name.first); |
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
91 QString name = QString::fromStdString (ext_name.second); |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
92 |
27914
a044e50c8dcb
Streamline QRegExp instances in libgu.
Rik <rik@octave.org>
parents:
27849
diff
changeset
|
93 // Strip out extensions from name and replace ';' with spaces in list. |
16580
adc150db1809
style fixes for uigetfile changes
John W. Eaton <jwe@octave.org>
parents:
16579
diff
changeset
|
94 |
27914
a044e50c8dcb
Streamline QRegExp instances in libgu.
Rik <rik@octave.org>
parents:
27849
diff
changeset
|
95 name.replace (QRegExp (R"(\(.*\))"), ""); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
96 ext.replace (";", " "); |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
97 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
98 if (name.isEmpty ()) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
99 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
100 // No name field. Build one from the extensions. |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
101 name = ext.toUpper () + " Files"; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
102 } |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
103 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
104 retval.append (name + " (" + ext + ')'); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
105 } |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
106 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
107 return retval; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
108 } |
16512
7f2395651a1c
dialog boxes with Qt widgets
Daniel J Sebald <daniel.sebald@ieee.org>, John W. Eaton <jwe@octave.org>
parents:
16502
diff
changeset
|
109 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
110 qt_interpreter_events::qt_interpreter_events (base_qobject& oct_qobj) |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
111 : interpreter_events (), m_octave_qobj (oct_qobj), |
27643
337132e66ec2
eliminate need for global access to resource manager in uiwidget objects
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
112 m_uiwidget_creator (oct_qobj), m_result (), m_mutex (), |
337132e66ec2
eliminate need for global access to resource manager in uiwidget objects
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
113 m_waitcondition () |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
114 { |
27551
564bba235594
move some dialog slot functions from octave-qobject.cc to dialog.cc
John W. Eaton <jwe@octave.org>
parents:
27550
diff
changeset
|
115 qRegisterMetaType<QIntList> ("QIntList"); |
564bba235594
move some dialog slot functions from octave-qobject.cc to dialog.cc
John W. Eaton <jwe@octave.org>
parents:
27550
diff
changeset
|
116 qRegisterMetaType<QFloatList> ("QFloatList"); |
564bba235594
move some dialog slot functions from octave-qobject.cc to dialog.cc
John W. Eaton <jwe@octave.org>
parents:
27550
diff
changeset
|
117 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
118 qRegisterMetaType<octave_value> ("octave_value"); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
119 qRegisterMetaType<symbol_info_list> ("symbol_info_list"); |
20091
89d843d6de14
Add mutex lock to shutdown confirmation for proper thread timing (bug #44751).
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
19970
diff
changeset
|
120 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
121 qRegisterMetaType<fcn_callback> ("fcn_callback"); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
122 qRegisterMetaType<meth_callback> ("meth_callback"); |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
123 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
124 connect (this, &qt_interpreter_events::confirm_shutdown_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
125 this, &qt_interpreter_events::confirm_shutdown_octave); |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
126 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
127 connect (this, &qt_interpreter_events::get_named_icon_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
128 this, &qt_interpreter_events::get_named_icon_slot); |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
129 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
130 connect (this, &qt_interpreter_events::gui_preference_signal, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
131 this, &qt_interpreter_events::gui_preference_slot); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
132 } |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
133 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
134 void qt_interpreter_events::start_gui (bool gui_app) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
135 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
136 if (m_octave_qobj.experimental_terminal_widget ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
137 emit start_gui_signal (gui_app); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
138 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
139 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
140 void qt_interpreter_events::close_gui (void) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
141 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
142 if (m_octave_qobj.experimental_terminal_widget ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
143 emit close_gui_signal (); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
144 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
145 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
146 std::list<std::string> |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
147 qt_interpreter_events::file_dialog (const filter_list& filter, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
148 const std::string& title, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
149 const std::string& filename, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
150 const std::string& dirname, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
151 const std::string& multimode) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
152 { |
27552 | 153 QStringList lst |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
154 = m_uiwidget_creator.file_dialog (make_filter_list (filter), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
155 QString::fromStdString (title), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
156 QString::fromStdString (filename), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
157 QString::fromStdString (dirname), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
158 QString::fromStdString (multimode)); |
27552 | 159 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
160 std::list<std::string> retval; |
20091
89d843d6de14
Add mutex lock to shutdown confirmation for proper thread timing (bug #44751).
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
19970
diff
changeset
|
161 |
27552 | 162 for (const auto& s : lst) |
27550
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
163 retval.push_back (s.toStdString ()); |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
164 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
165 return retval; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
166 } |
16579
7f8db1942dc0
Add Qt link uigetfile dialog implementation.
John Donoghue <john.donoghue@ieee.org>
parents:
16570
diff
changeset
|
167 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
168 std::list<std::string> |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
169 qt_interpreter_events::input_dialog (const std::list<std::string>& prompt, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
170 const std::string& title, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
171 const std::list<float>& nr, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
172 const std::list<float>& nc, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
173 const std::list<std::string>& defaults) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
174 { |
27552 | 175 QStringList lst |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
176 = m_uiwidget_creator.input_dialog (make_qstring_list (prompt), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
177 QString::fromStdString (title), |
28566
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
178 std_list_to_qt_list<float> (nr), |
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
179 std_list_to_qt_list<float> (nc), |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
180 make_qstring_list (defaults)); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
181 std::list<std::string> retval; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
182 |
27552 | 183 for (const auto& s : lst) |
27550
b8f51d2dba6d
* qt-interpreter-events.cc: Use range-based for loop where possible.
John W. Eaton <jwe@octave.org>
parents:
27549
diff
changeset
|
184 retval.push_back (s.toStdString ()); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
185 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
186 return retval; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
187 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
188 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
189 std::pair<std::list<int>, int> |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
190 qt_interpreter_events::list_dialog (const std::list<std::string>& list, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
191 const std::string& mode, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
192 int width, int height, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
193 const std::list<int>& initial, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
194 const std::string& name, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
195 const std::list<std::string>& prompt, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
196 const std::string& ok_string, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
197 const std::string& cancel_string) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
198 { |
27552 | 199 QPair<QIntList, int> result |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
200 = m_uiwidget_creator.list_dialog (make_qstring_list (list), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
201 QString::fromStdString (mode), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
202 width, height, |
28566
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
203 std_list_to_qt_list<int> (initial), |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
204 QString::fromStdString (name), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
205 make_qstring_list (prompt), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
206 QString::fromStdString (ok_string), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
207 QString::fromStdString (cancel_string)); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
208 |
28566
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
209 QIntList& lst = result.first; |
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
210 return std::pair<std::list<int>, int> (std::list<int> (lst.begin (), |
20ee8aa92897
avoid QList deprecated function warnings
John W. Eaton <jwe@octave.org>
parents:
28118
diff
changeset
|
211 lst.end ()), |
27552 | 212 result.second); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
213 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
214 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
215 std::string |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
216 qt_interpreter_events::question_dialog (const std::string& msg, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
217 const std::string& title, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
218 const std::string& btn1, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
219 const std::string& btn2, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
220 const std::string& btn3, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
221 const std::string& btndef) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
222 { |
27552 | 223 QString icon = "quest"; |
224 QStringList buttons; | |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
225 QStringList role; |
27552 | 226 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
227 // Must use ResetRole which is left-aligned for all OS and WM. |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
228 role << "ResetRole" << "ResetRole" << "ResetRole"; |
27552 | 229 |
230 buttons << QString::fromStdString (btn1); | |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
231 if (btn2 == "") |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
232 role.removeAt (0); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
233 else |
27552 | 234 buttons << QString::fromStdString (btn2); |
235 buttons << QString::fromStdString (btn3); | |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
236 |
27552 | 237 QString answer |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
238 = m_uiwidget_creator.message_dialog (QString::fromStdString (msg), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
239 QString::fromStdString (title), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
240 icon, buttons, |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
241 QString::fromStdString (btndef), |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
242 role); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
243 |
27552 | 244 return answer.toStdString (); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
245 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
246 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
247 void qt_interpreter_events::update_path_dialog (void) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
248 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
249 emit update_path_dialog_signal (); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
250 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
251 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
252 void qt_interpreter_events::show_preferences (void) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
253 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
254 emit show_preferences_signal (); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
255 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
256 |
27602
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
257 void qt_interpreter_events::apply_preferences (void) |
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
258 { |
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
259 emit apply_new_settings (); |
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
260 } |
ba317c535adb
define new __event_manager_apply_preferences__ function
John W. Eaton <jwe@octave.org>
parents:
27601
diff
changeset
|
261 |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
262 bool qt_interpreter_events::show_documentation (const std::string& file) |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
263 { |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
264 emit show_documentation_signal (QString::fromStdString (file)); |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
265 |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
266 return true; |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
267 } |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
268 |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
269 void qt_interpreter_events::show_file_browser (void) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
270 { |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
271 emit show_file_browser_signal (); |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
272 } |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
273 |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
274 void qt_interpreter_events::show_command_history (void) |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
275 { |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
276 emit show_command_history_signal (); |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
277 } |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
278 |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
279 void qt_interpreter_events::show_workspace (void) |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
280 { |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
281 emit show_workspace_signal (); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
282 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
283 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
284 bool qt_interpreter_events::edit_file (const std::string& file) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
285 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
286 emit edit_file_signal (QString::fromStdString (file)); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
287 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
288 return true; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
289 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
290 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
291 void qt_interpreter_events::edit_variable (const std::string& expr, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
292 const octave_value& val) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
293 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
294 emit edit_variable_signal (QString::fromStdString (expr), val); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
295 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
296 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
297 bool qt_interpreter_events::confirm_shutdown (void) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
298 { |
27589
12cfa32dc29e
use QMutexLocker to manage locks in qt_interpreter_events methods
John W. Eaton <jwe@octave.org>
parents:
27588
diff
changeset
|
299 QMutexLocker autolock (&m_mutex); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
300 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
301 emit confirm_shutdown_signal (); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
302 |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
303 // Wait for result. |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
304 wait (); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
305 |
27600
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
306 return m_result.toBool (); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
307 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
308 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
309 bool qt_interpreter_events::prompt_new_edit_file (const std::string& file) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
310 { |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
311 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
|
312 gui_settings *settings = rmgr.get_settings (); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
313 |
27849
28d7ec92bae6
replace prefs literals by symbolic constant in main window
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27669
diff
changeset
|
314 if (! settings || settings->value (ed_create_new_file).toBool ()) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
315 return true; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
316 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
317 std::string abs_fname = sys::env::make_absolute (file); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
318 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
319 QStringList btn; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
320 QStringList role; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
321 role << "YesRole" << "RejectRole"; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
322 btn << tr ("Create") << tr ("Cancel"); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
323 |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
324 QString answer = m_uiwidget_creator.message_dialog |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
325 (tr ("File\n%1\ndoes not exist. Do you want to create it?"). |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
326 arg (QString::fromStdString (abs_fname)), |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
327 tr ("Octave Editor"), "quest", btn, tr ("Create"), role); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
328 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
329 return (answer == tr ("Create")); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
330 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
331 |
27264
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
332 // Prompt to allow file to be run by setting cwd (or if |
27552 | 333 // addpath_option==true, alternatively setting the path). |
27264
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
334 |
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
335 int |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
336 qt_interpreter_events::debug_cd_or_addpath_error (const std::string& file, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
337 const std::string& dir, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
338 bool addpath_option) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
339 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
340 int retval = -1; |
16565
e4b94abfeb96
use generic dialog for cd or addpath question
John W. Eaton <jwe@octave.org>
parents:
16551
diff
changeset
|
341 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
342 QString qdir = QString::fromStdString (dir); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
343 QString qfile = QString::fromStdString (file); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
344 QString msg |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
345 = (addpath_option |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
346 ? tr ("The file %1 does not exist in the load path. To run or debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.").arg (qfile).arg (qdir) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
347 : tr ("The file %1 is shadowed by a file with the same name in the load path. To run or debug the function you are editing, change to the directory %2.").arg (qfile).arg (qdir)); |
16565
e4b94abfeb96
use generic dialog for cd or addpath question
John W. Eaton <jwe@octave.org>
parents:
16551
diff
changeset
|
348 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
349 QString title = tr ("Change Directory or Add Directory to Load Path"); |
16565
e4b94abfeb96
use generic dialog for cd or addpath question
John W. Eaton <jwe@octave.org>
parents:
16551
diff
changeset
|
350 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
351 QString cd_txt = tr ("&Change Directory"); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
352 QString addpath_txt = tr ("&Add Directory to Load Path"); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
353 QString cancel_txt = tr ("Cancel"); |
16547
3cd80afc3509
improve debugging with the GUI
John W. Eaton <jwe@octave.org>
parents:
16528
diff
changeset
|
354 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
355 QStringList btn; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
356 QStringList role; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
357 btn << cd_txt; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
358 role << "YesRole"; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
359 if (addpath_option) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
360 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
361 btn << addpath_txt; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
362 role << "AcceptRole"; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
363 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
364 btn << cancel_txt; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
365 role << "RejectRole"; |
21311
718332a58d35
Fix left mouse button in editor margin bug from cset 65827e9cccb8
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21310
diff
changeset
|
366 |
27552 | 367 QString result |
27553
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
368 = m_uiwidget_creator.message_dialog (msg, title, "quest", btn, |
9b72eb111b7e
eliminate global uiwidget_creator variable
John W. Eaton <jwe@octave.org>
parents:
27552
diff
changeset
|
369 cancel_txt, role); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
370 |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
371 if (result == cd_txt) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
372 retval = 1; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
373 else if (result == addpath_txt) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
374 retval = 2; |
16565
e4b94abfeb96
use generic dialog for cd or addpath question
John W. Eaton <jwe@octave.org>
parents:
16551
diff
changeset
|
375 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
376 return retval; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
377 } |
16547
3cd80afc3509
improve debugging with the GUI
John W. Eaton <jwe@octave.org>
parents:
16528
diff
changeset
|
378 |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
379 uint8NDArray qt_interpreter_events::get_named_icon (const std::string& name) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
380 { |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
381 QMutexLocker autolock (&m_mutex); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
382 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
383 emit get_named_icon_signal (QString::fromStdString (name)); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
384 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
385 // Wait for result. |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
386 wait (); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
387 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
388 uint8NDArray empty_img; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
389 |
27600
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
390 QIcon icon = m_result.value<QIcon> (); |
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
391 |
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
392 if (icon.isNull ()) |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
393 return empty_img; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
394 |
27600
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
395 QImage img = icon.pixmap (QSize (32, 32)).toImage (); |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
396 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
397 if (img.format () != QImage::Format_ARGB32_Premultiplied) |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
398 return empty_img; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
399 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
400 dim_vector dims (img.height (), img.width (), 4); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
401 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
402 uint8NDArray retval (dims, 0); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
403 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
404 uint8_t *bits = img.bits (); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
405 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
406 for (int i = 0; i < img.height (); i++) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
407 { |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
408 for (int j = 0; j < img.width (); j++) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
409 { |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
410 retval(i,j,2) = bits[0]; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
411 retval(i,j,1) = bits[1]; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
412 retval(i,j,0) = bits[2]; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
413 retval(i,j,3) = bits[3]; |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
414 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
415 bits += 4; |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
416 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
417 } |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
418 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
419 return retval; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
420 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
421 |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
422 void qt_interpreter_events::get_named_icon_slot (const QString& name) |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
423 { |
27603
bf6b192428a0
* qt-interpreter-events.cc: Use QMutexLocker objects where possible.
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
424 QMutexLocker autolock (&m_mutex); |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
425 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
426 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
|
427 m_result = QVariant::fromValue (rmgr.icon (name)); |
27599
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
428 |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
429 wake_all (); |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
430 } |
ada24a1979c0
improve thread safety of qt_interpreter_events::get_named_icon
John W. Eaton <jwe@octave.org>
parents:
27589
diff
changeset
|
431 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
432 std::string |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
433 qt_interpreter_events::gui_preference (const std::string& key, |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
434 const std::string& value) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
435 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
436 QString pref_value; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
437 |
27589
12cfa32dc29e
use QMutexLocker to manage locks in qt_interpreter_events methods
John W. Eaton <jwe@octave.org>
parents:
27588
diff
changeset
|
438 QMutexLocker autolock (&m_mutex); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
439 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
440 // Emit the signal for changing or getting a preference |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
441 emit gui_preference_signal (QString::fromStdString (key), |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
442 QString::fromStdString (value)); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
443 |
27589
12cfa32dc29e
use QMutexLocker to manage locks in qt_interpreter_events methods
John W. Eaton <jwe@octave.org>
parents:
27588
diff
changeset
|
444 // Wait for response (pref_value). |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
445 wait (); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
446 |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
447 QString pref = m_result.toString (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
448 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
449 return pref.toStdString (); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
450 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
451 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
452 bool qt_interpreter_events::copy_image_to_clipboard (const std::string& file) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
453 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
454 emit copy_image_to_clipboard_signal (QString::fromStdString (file), true); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
455 |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
456 return true; |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
457 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
458 |
27669
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27643
diff
changeset
|
459 void qt_interpreter_events::focus_window (const std::string win_name) |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27643
diff
changeset
|
460 { |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27643
diff
changeset
|
461 emit focus_window_signal (QString::fromStdString (win_name)); |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27643
diff
changeset
|
462 } |
271b5cd640d7
Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27643
diff
changeset
|
463 |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
464 void qt_interpreter_events::execute_command_in_terminal |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
465 (const std::string& command) |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
466 { |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
467 emit execute_command_in_terminal_signal (QString::fromStdString (command)); |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
468 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
469 |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
470 void qt_interpreter_events::register_documentation (const std::string& file) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
471 { |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
472 emit register_documentation_signal (QString::fromStdString (file)); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
473 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
474 |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
475 void qt_interpreter_events::unregister_documentation (const std::string& file) |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
476 { |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
477 emit unregister_documentation_signal (QString::fromStdString (file)); |
27442
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
478 } |
6e4519df0be2
group functions by category in interpreter_events and event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
479 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
480 void qt_interpreter_events::interpreter_output (const std::string& msg) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
481 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
482 if (m_octave_qobj.experimental_terminal_widget () |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
483 && m_octave_qobj.gui_running ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
484 emit interpreter_output_signal (QString::fromStdString (msg)); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
485 else |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
486 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
487 // FIXME: is this the correct thing to do? |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
488 std::cout << msg; |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
489 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
490 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
491 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
492 void qt_interpreter_events::display_exception (const execution_exception& ee, |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
493 bool beep) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
494 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
495 if (m_octave_qobj.experimental_terminal_widget () |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
496 && m_octave_qobj.gui_running ()) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
497 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
498 std::ostringstream buf; |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
499 ee.display (buf); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
500 emit interpreter_output_signal (QString::fromStdString (buf.str ())); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
501 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
502 else |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
503 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
504 if (beep) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
505 std::cerr << "\a"; |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
506 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
507 ee.display (std::cerr); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
508 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
509 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
510 |
29057
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
511 void qt_interpreter_events::gui_status_update (const std::string& feature, |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
512 const std::string& status) |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
513 { |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
514 emit gui_status_update_signal (QString::fromStdString (feature), |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
515 QString::fromStdString (status)); |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
516 } |
450920c987b8
update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29001
diff
changeset
|
517 |
28788
aba2c4eadb83
add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
518 void qt_interpreter_events::update_gui_lexer (void) |
aba2c4eadb83
add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
519 { |
aba2c4eadb83
add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
520 emit update_gui_lexer_signal (true); |
aba2c4eadb83
add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
521 } |
aba2c4eadb83
add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
522 |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27396
diff
changeset
|
523 void qt_interpreter_events::directory_changed (const std::string& dir) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
524 { |
27409
a0d49e55acae
rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents:
27396
diff
changeset
|
525 emit directory_changed_signal (QString::fromStdString (dir)); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
526 } |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16432
diff
changeset
|
527 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
528 void qt_interpreter_events::file_remove (const std::string& old_name, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
529 const std::string& new_name) |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
530 { |
27589
12cfa32dc29e
use QMutexLocker to manage locks in qt_interpreter_events methods
John W. Eaton <jwe@octave.org>
parents:
27588
diff
changeset
|
531 QMutexLocker autolock (&m_mutex); |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
532 |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
533 // Emit the signal for the editor for closing the file if it is open |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
534 emit file_remove_signal (QString::fromStdString (old_name), |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
535 QString::fromStdString (new_name)); |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
536 |
27589
12cfa32dc29e
use QMutexLocker to manage locks in qt_interpreter_events methods
John W. Eaton <jwe@octave.org>
parents:
27588
diff
changeset
|
537 // Wait for file removal to complete before continuing. |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
538 wait (); |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
539 } |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
540 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
541 void qt_interpreter_events::file_renamed (bool load_new) |
25742
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
542 { |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
543 emit file_renamed_signal (load_new); |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
544 } |
d3c6de326bae
close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents:
25678
diff
changeset
|
545 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
546 void qt_interpreter_events::set_workspace (bool top_level, bool debug, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
547 const symbol_info_list& syminfo, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
548 bool update_variable_editor) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
549 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
550 if (! top_level && ! debug) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
551 return; |
19904
793230bb81d4
don't update workspace viewer unless at top level (bug #44156)
John W. Eaton <jwe@octave.org>
parents:
19714
diff
changeset
|
552 |
26117
a6df420457ac
use symbol_info_list instead of symbol_scope to pass workspace info to gui
John W. Eaton <jwe@octave.org>
parents:
25948
diff
changeset
|
553 emit set_workspace_signal (top_level, debug, syminfo); |
23927
e3a36f84d01d
provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents:
23807
diff
changeset
|
554 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
555 if (update_variable_editor) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
556 emit refresh_variable_editor_signal (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
557 } |
16468
0f143f68078d
use signal/slot for updating workspace instead of using event listener
John W. Eaton <jwe@octave.org>
parents:
16443
diff
changeset
|
558 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
559 void qt_interpreter_events::clear_workspace (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
560 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
561 emit clear_workspace_signal (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
562 } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
563 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
564 void qt_interpreter_events::update_prompt (const std::string& prompt) |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
565 { |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
566 emit update_prompt_signal (QString::fromStdString (prompt)); |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
567 } |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
568 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
569 void qt_interpreter_events::set_history (const string_vector& hist) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
570 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
571 QStringList qt_hist; |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16426
diff
changeset
|
572 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
573 for (octave_idx_type i = 0; i < hist.numel (); i++) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
574 qt_hist.append (QString::fromStdString (hist[i])); |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16426
diff
changeset
|
575 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
576 emit set_history_signal (qt_hist); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
577 } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
578 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
579 void qt_interpreter_events::append_history (const std::string& hist_entry) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
580 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
581 emit append_history_signal (QString::fromStdString (hist_entry)); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
582 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
583 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
584 void qt_interpreter_events::clear_history (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
585 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
586 emit clear_history_signal (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
587 } |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16426
diff
changeset
|
588 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
589 void qt_interpreter_events::pre_input_event (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
590 { } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
591 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
592 void qt_interpreter_events::post_input_event (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
593 { } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
594 |
27392
820a87b87c01
clean up use of interpreter in qt_interpreter_events::enter_debugger_event
John W. Eaton <jwe@octave.org>
parents:
27311
diff
changeset
|
595 void qt_interpreter_events::enter_debugger_event (const std::string& /*fcn_name*/, |
820a87b87c01
clean up use of interpreter in qt_interpreter_events::enter_debugger_event
John W. Eaton <jwe@octave.org>
parents:
27311
diff
changeset
|
596 const std::string& fcn_file_name, |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
597 int line) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
598 { |
27392
820a87b87c01
clean up use of interpreter in qt_interpreter_events::enter_debugger_event
John W. Eaton <jwe@octave.org>
parents:
27311
diff
changeset
|
599 if (fcn_file_name.empty ()) |
25557
bb779fc2d0db
do not attempt to open a file when debugging a command line fct (bug #54231)
Torsten <mttl@mailbox.org>
parents:
25407
diff
changeset
|
600 return; |
bb779fc2d0db
do not attempt to open a file when debugging a command line fct (bug #54231)
Torsten <mttl@mailbox.org>
parents:
25407
diff
changeset
|
601 |
27392
820a87b87c01
clean up use of interpreter in qt_interpreter_events::enter_debugger_event
John W. Eaton <jwe@octave.org>
parents:
27311
diff
changeset
|
602 insert_debugger_pointer (fcn_file_name, line); |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
603 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
604 emit enter_debugger_signal (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
605 } |
16438
a971d8bdaadc
use signals instead of event queue for entering/leaving debug mode
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
606 |
27264
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
607 void |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
608 qt_interpreter_events::execute_in_debugger_event (const std::string& file, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
609 int line) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
610 { |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
611 delete_debugger_pointer (file, line); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
612 } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
613 |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
614 void qt_interpreter_events::exit_debugger_event (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
615 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
616 emit exit_debugger_signal (); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
617 } |
16415
70032fc70bee
move octave-link and octave-event-listener classes to libinterp
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
618 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
619 // Display (if @insert true) or remove the appropriate symbol for a breakpoint |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
620 // in @file at @line with condition @cond. |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
621 void qt_interpreter_events::update_breakpoint (bool insert, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
622 const std::string& file, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
623 int line, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
624 const std::string& cond) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
625 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
626 emit update_breakpoint_marker_signal (insert, QString::fromStdString (file), |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
627 line, QString::fromStdString (cond)); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
628 } |
16438
a971d8bdaadc
use signals instead of event queue for entering/leaving debug mode
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
629 |
27264
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
630 void |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
631 qt_interpreter_events::insert_debugger_pointer (const std::string& file, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
632 int line) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
633 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
634 emit insert_debugger_pointer_signal (QString::fromStdString (file), line); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
635 } |
17010
c50ee84842a9
Add preferences and prefdir functions
John Donoghue <john.donoghue@ieee.org>
parents:
16658
diff
changeset
|
636 |
27264
378d3c91f85b
style fixes for event_manager classes
John W. Eaton <jwe@octave.org>
parents:
27263
diff
changeset
|
637 void |
27284
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
638 qt_interpreter_events::delete_debugger_pointer (const std::string& file, |
1a8762e5662b
remove "do_" prefix from interpreter_events class methods
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
639 int line) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
640 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
641 emit delete_debugger_pointer_signal (QString::fromStdString (file), line); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24645
diff
changeset
|
642 } |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
643 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
644 void |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
645 qt_interpreter_events::confirm_shutdown_octave (void) |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
646 { |
27603
bf6b192428a0
* qt-interpreter-events.cc: Use QMutexLocker objects where possible.
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
647 QMutexLocker autolock (&m_mutex); |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
648 |
27600
bb9aecedc167
use single QVariant object for return values in qt_interpreter_events class
John W. Eaton <jwe@octave.org>
parents:
27599
diff
changeset
|
649 m_result = m_octave_qobj.confirm_shutdown (); |
27588
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
650 |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
651 wake_all (); |
f0e3f3e28a8e
move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents:
27553
diff
changeset
|
652 } |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
653 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
654 // If VALUE is empty, return current value of preference named by KEY. |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
655 // |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
656 // If VALUE is not empty, set preference named by KEY to VALUE return |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
657 // previous value. |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
658 // |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
659 // FIXME: should we have separate get and set functions? With only |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
660 // one, we don't allow a preference value to be set to the empty |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
661 // string. |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
662 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
663 void |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
664 qt_interpreter_events::gui_preference_slot (const QString& key, |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
665 const QString& value) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
666 { |
27603
bf6b192428a0
* qt-interpreter-events.cc: Use QMutexLocker objects where possible.
John W. Eaton <jwe@octave.org>
parents:
27602
diff
changeset
|
667 QMutexLocker autolock (&m_mutex); |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
668 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
669 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
|
670 gui_settings *settings = rmgr.get_settings (); |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
671 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
672 QString read_value = settings->value (key).toString (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
673 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
674 // Some preferences need extra handling |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
675 QString adjusted_value = gui_preference_adjust (key, value); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
676 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
677 if (! adjusted_value.isEmpty () && (read_value != adjusted_value)) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
678 { |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
679 // Change settings only for new, non-empty values |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
680 settings->setValue (key, QVariant (adjusted_value)); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
681 |
29000
8a05763823d1
avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28566
diff
changeset
|
682 emit settings_changed (settings, true); // true: changed by worker |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
683 } |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
684 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
685 m_result = read_value; |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
686 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
687 wake_all (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
688 } |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
689 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
690 QString |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
691 qt_interpreter_events::gui_preference_adjust (const QString& key, |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
692 const QString& value) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
693 { |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
694 // Immediately return if no new value is given. |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
695 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
696 if (value.isEmpty ()) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
697 return value; |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
698 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
699 QString adjusted_value = value; |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
700 |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
701 // Not all encodings are available. Encodings are uppercase and do |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
702 // not use CPxxx but IBMxxx or WINDOWS-xxx. |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
703 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
704 if (key == ed_default_enc.key) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
705 { |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
706 adjusted_value = adjusted_value.toUpper (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
707 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
708 QStringList codecs; |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
709 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
|
710 rmgr.get_codecs (&codecs); |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
711 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
712 QRegExp re ("^CP(\\d+)$"); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
713 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
714 if (adjusted_value == "SYSTEM") |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
715 adjusted_value = |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27929
diff
changeset
|
716 QString ("SYSTEM (") + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27929
diff
changeset
|
717 QString (octave_locale_charset_wrapper ()).toUpper () + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27929
diff
changeset
|
718 QString (")"); |
27601
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
719 else if (re.indexIn (adjusted_value) > -1) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
720 { |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
721 if (codecs.contains ("IBM" + re.cap (1))) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
722 adjusted_value = "IBM" + re.cap (1); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
723 else if (codecs.contains ("WINDOWS-" + re.cap (1))) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
724 adjusted_value = "WINDOWS-" + re.cap (1); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
725 else |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
726 adjusted_value.clear (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
727 } |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
728 else if (! codecs.contains (adjusted_value)) |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
729 adjusted_value.clear (); |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
730 } |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
731 |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
732 return adjusted_value; |
7a748f7545c9
improve thread safety of qt_interpreter_events::gui_preference
John W. Eaton <jwe@octave.org>
parents:
27600
diff
changeset
|
733 } |
17029
359c5ca795cd
Display doc info pages using documentation browser when in GUI mode (Bug #39451)
John Donoghue <john.donoghue@ieee.org>
parents:
17010
diff
changeset
|
734 } |