annotate libgui/src/main-window.h @ 29503:3bfec185c9e2

experimental command window widget with server loop This changeset provides a new experimental proof-of-concept cross-platform command window. It is intended to demonstrate how communication between the GUI command window and the Octave interpreter can work when the GUI is completely responsible for user input instead of having the interpreter wait for input inside readline. This initial implementation uses a simple text box for input and a separate text edit area for output. This design is not intended to be the final arrangement, but was easy to implement for demonstration purposes. These changes also make it possible to run the command-line version of Octave in a similar client-server mode with a function gathering input in one thread and the Octave intepreter running in another. The new command window is not intended to provide a general-purpose terminal window. So running something like "system ('emacs')" will not bring up an instance of Emacs running in the command window. This also means that it will no longer be possible to use an external output pager such as "less" in the command window. OTOH, it is also no longer necessary to fork and exec a separate process on some Unixy systems when Octave starts solely to give up the controlling terminal so that "less" will function properly. With the new terminal window, it is now possible to start Octave in command line mode and later open the GUI desktop window and then return to the command line when the GUI window is closed. Some things that need to be finished: * Merge the input and output windows so that command input and output are interleaved as they are in a normal command window. * Provide real readline command editing in the GUI command window and at the client-server CLI prompt. We can use the readline callback interface for the GUI and the normal readline interface for the CLI. With this design, the command widget and the CLI front end hold a copy of the command history. They do not need to communicate with the interpreter to navigate the command history. * Create interpreter_event messages for handling user input so that the interpreter can ask the GUI to gather user input for functions like "input". * Consider passing results back to the command widget as octave_value objects and allowing the command widget to format and display them instead of passing formatted text from the interpreter to the command widget. * Provide an output pager feature for the GUI command window? Maybe this feature is not necessary since we have scroll bars in the GUI and we can also have the GUI ask the user whether to display output if it is large. ChangeLog: * options-usage.h (usage_string, octave_print_verbose_usage_and_exit): Include --experimental-terminal-widget in list of options. (EXPERIMENTAL_TERMINAL_WIDGET_OPTION): New macro. (long_opts): Include "experimental-terminal-widget" in the list. * octave.h, octave.cc (cmdline_options::cmdline_options): Handle EXPERIMENTAL_TERMINAL_WIDGET_OPTION. (cmdline_options::m_experimental_terminal_widget): New data member. (application::experimental_terminal_widget, cmdline_options::experimental_terminal_widget interpreter::experimental_terminal_widget): New functions. * main.in.cc (fork_and_exec): New static variable. (main): Don't fork and exec if argv includes --experimental-terminal-widget. * interpreter-qobject.h, interpreter-qobject.cc (interpreter_qobject::pause, interpreter_qobject::stop, interpreter_qobject::resume): New functions. (interpreter_qobject::execute): Don't set prompt strings here if using the new terminal widget. If using the new terminal widget, call interpreter::shutdown and emit the shutdown_finished signal after interpreter::execute returns. (interpreter_qobject::shutdown): Don't do anything if using the new terminal widget. * main-window.h, main-window.cc (main_window::handle_octave_ready): Set interpreter prompt strings here if using the new terminal widget. (main_window::close_gui_signal): New signal. (main_window::closeEvent): If using new terminal widget and shutdown is confirmed, simply emit close_gui_signal. (main_window::construct_octave_qt_link): If using new terminal widget, connect qt_interpreter_events::interpreter_output_signal to the terminal_dock_widget::interpreter_output slot and the qt_interpreter_events::update_prompt_signal to the terminal_dock_widget::update_prompt slot. * octave-qobject.h, octave-qobject.cc (base_qobject::interpreter_pause, base_qobject::interpreter_stop, base_qobject::interpreter_resume): New functions. (base_qobject::base_qobject): If using new terminal widget: Don't connect interpreter_qobject::execution_finished signal to octave_qobject::handle_interpreter_execution_finished slot Don't connect octave_qobject::request_interpreter_shutdown signal to the interpreter_qobject::shutdown slot. Do connect the qt_interpreter_events::start_gui_signal signal to the octave_qobject::start_gui slot and simply reload settings and call qt_application::setQuitOnLastWindowClosed. There is no need to create the main window here. (base_qobject::exec): If using new terminal widget, wait for main thread to finish after qt_application::exec returns. (base_qojbect::experimental_terminal_widget, base_qobject::gui_running): New functions. (base_qojbect::start_gui, base_qojbect::close_gui, base_qojbect::interpreter_pause, base_qojbect::interpreter_stop, base_qojbect::interpreter_resume): New slots. (base_qojbect::handle_interpreter_execution_finished): Do nothing if using new terminal widget. * qt-application.cc (qt_application::start_gui_p): Return dummy value if using new terminal widget. * qt-interpreter-events.h, qt-interpreter-events.cc (qt_interpreter_events::start_gui, qt_interpreter_events::close_gui, qt_interpreter_events::interpreter_output, qt_interpreter_events::display_exception, qt_interpreter_events::update_prompt): New functions. (qt_interpreter_events::start_gui_signal, qt_interpreter_events::close_gui_signal, qt_interpreter_events::update_prompt_signal, qt_interpreter_events::interpreter_output_signal): New signals. * command-widget.h, command-widget.cc: New files. * libgui/src/module.mk: Update. * terminal-dock-widget.h, terminal-dock-widget.cc (terminal_dock_widget::m_experimental_terminal_widget): New data member. (terminal_dock_widget::terminal_dock_widget): Optionally create and use new terminal widget. If using new terminal widget, connect command_widget::interpreter_event signals to terminal_dock_widget::interpreter_event signals. (terminal_dock_widget::interpreter_output, terminal_dock_widget::update_prompt): New slots. (terminal_dock_widget::update_prompt_signal, terminal_dock_widget::interpreter_output_signal): New signals. * event-manager.h, event-manager.cc (Fdesktop): New function. (interpreter_events::start_gui, interpreter_events::close_gui, interpreter_events::update_prompt): New virtual functions. (interpreter_events::confirm_shutdown): Return true. (event_manager::start_gui, event_manager::close_gui, event_manager::update_prompt): New functions. * interpreter.h, interpreter.cc (interpreter::initialize): If using new terminal widget, only display startup message if not initially starting GUI. (class cli_input_reader): New class. (interpreter::experimental_terminal_widget, interpreter::get_line_and_eval): New functions. (interpreter::execute): If using new terminal widget, start GUI or command line reader and then enter server loop. * pt-eval.cc (tree_evaluator::server_loop): Reset parser at top of loop. also catch exit exception.
author John W. Eaton <jwe@octave.org>
date Thu, 25 Mar 2021 23:06:40 -0400
parents a0eb1ae33192
children 8dd0fca2a3d9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
29358
0a5b15007766 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29147
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 ////////////////////////////////////////////////////////////////////////
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
25
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 20278
diff changeset
26 #if ! defined (octave_main_window_h)
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17790
diff changeset
27 #define octave_main_window_h 1
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
28
14599
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
29 // Qt includes
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
30 #include <QCloseEvent>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
31 #include <QComboBox>
17827
2de613986374 include Qt files with <QFoo> instead of <QtGui/QFoo> (bug #40252)
John W. Eaton <jwe@octave.org>
parents: 17822
diff changeset
32 #include <QMainWindow>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
33 #include <QPointer>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
34 #include <QQueue>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
35 #include <QStatusBar>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
36 #include <QTabWidget>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
37 #include <QThread>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
38 #include <QToolBar>
14670
7fbea449737d Restructured menus, added toolbar and current directory line edit.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14602
diff changeset
39 #include <QToolButton>
25944
ceb508ea92ee refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents: 25938
diff changeset
40 #include <QTranslator>
14599
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
41
14676
35512b788af2 Editor can now handle multiple files in tabs.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14674
diff changeset
42 // Editor includes
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 "external-editor-interface.h"
14707
674740c44c09 Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14703
diff changeset
44 #include "file-editor-interface.h"
14599
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
45
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
46 // QTerminal includes
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
47 #include "QTerminal.h"
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
48
97cb9286919c Cleaned up code.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14588
diff changeset
49 // Own includes
16512
7f2395651a1c dialog boxes with Qt widgets
Daniel J Sebald <daniel.sebald@ieee.org>, John W. Eaton <jwe@octave.org>
parents: 16504
diff changeset
50 #include "dialog.h"
22089
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
51 #include "documentation-dock-widget.h"
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
52 #include "files-dock-widget.h"
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
53 #include "find-files-dialog.h"
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
54 #include "history-dock-widget.h"
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
55 #include "interpreter-qobject.h"
29061
8a425e771aa7 use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29057
diff changeset
56 #include "led-indicator.h"
22089
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
57 #include "octave-dock-widget.h"
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
58 #include "octave-qobject.h"
27263
99aa1bcb8848 rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 27255
diff changeset
59 #include "qt-interpreter-events.h"
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27409
diff changeset
60 #include "set-path-dialog.h"
22089
c2c668b3051b use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents: 22022
diff changeset
61 #include "terminal-dock-widget.h"
23927
e3a36f84d01d provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents: 23497
diff changeset
62 #include "variable-editor.h"
16445
3f8d3fc907af store workspace model in main_window, not in workspace view
John W. Eaton <jwe@octave.org>
parents: 16438
diff changeset
63 #include "workspace-model.h"
14707
674740c44c09 Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14703
diff changeset
64 #include "workspace-view.h"
13614
5cb93c6d8aab Important subwindows are not closable now. A close button is still displayed, which seems to be q Qt bug.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13611
diff changeset
65
24641
7d177be54c37 pass variable value to variable editor in addition to variable name
John W. Eaton <jwe@octave.org>
parents: 24632
diff changeset
66 class octave_value;
7d177be54c37 pass variable value to variable editor in addition to variable name
John W. Eaton <jwe@octave.org>
parents: 24632
diff changeset
67
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
68 namespace octave
23119
3107d3717cc2 refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents: 23092
diff changeset
69 {
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
70 class interpreter;
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
71
25954
f2406585a974 move settings_dialog class inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 25944
diff changeset
72 class settings_dialog;
f2406585a974 move settings_dialog class inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 25944
diff changeset
73
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
74 //! Represents the main window.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
75
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
76 class main_window : public QMainWindow
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
77 {
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
78 Q_OBJECT
16446
4b3a4bf8569b improve encapsulation of command window object
John W. Eaton <jwe@octave.org>
parents: 16445
diff changeset
79
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
80 public:
16446
4b3a4bf8569b improve encapsulation of command window object
John W. Eaton <jwe@octave.org>
parents: 16445
diff changeset
81
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
82 typedef std::pair <std::string, std::string> name_pair;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
83 typedef std::pair <int, int> int_pair;
16502
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16485
diff changeset
84
27588
f0e3f3e28a8e move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
85 main_window (base_qobject& oct_qobj);
16446
4b3a4bf8569b improve encapsulation of command window object
John W. Eaton <jwe@octave.org>
parents: 16445
diff changeset
86
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
87 ~main_window (void);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
88
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
89 bool command_window_has_focus (void) const;
16576
2754c5fd6ae0 keep focus in the command window after dbstop, dbstep, etc.
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
90
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
91 void focus_command_window (void);
16449
c129a8b73d25 avoid unneeded signals for window focus
John W. Eaton <jwe@octave.org>
parents: 16448
diff changeset
92
27588
f0e3f3e28a8e move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
93 bool confirm_shutdown (void);
f0e3f3e28a8e move qt_interpreter_events object from interpreter_qobject to octave_qobject
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
94
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
95 signals:
19422
476032040df9 determining the active dock from focus changes in the gui
Torsten <ttl@justmail.de>
parents: 19303
diff changeset
96
29503
3bfec185c9e2 experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents: 29452
diff changeset
97 // Note: CLOSE_GUI_SIGNAL is currently only used by the new
3bfec185c9e2 experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents: 29452
diff changeset
98 // experimental terminal widget.
3bfec185c9e2 experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents: 29452
diff changeset
99 void close_gui_signal (void);
3bfec185c9e2 experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents: 29452
diff changeset
100
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
101 void active_dock_changed (octave_dock_widget *, octave_dock_widget *);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
102 void editor_focus_changed (bool);
19422
476032040df9 determining the active dock from focus changes in the gui
Torsten <ttl@justmail.de>
parents: 19303
diff changeset
103
27611
0495b64288f7 use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents: 27601
diff changeset
104 void settings_changed (const gui_settings *);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
105 void init_terminal_size_signal (void);
29199
0b18887bc997 simplify initialization of gui dock widgets
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29148
diff changeset
106 void init_window_menu (void);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
107 void new_file_signal (const QString&);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
108 void open_file_signal (const QString&);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
109 void open_file_signal (const QString& file, const QString& enc, int line);
26873
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26376
diff changeset
110 void step_into_file_signal (void);
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
111
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
112 void show_doc_signal (const QString&);
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
113 void register_doc_signal (const QString&);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
114 void unregister_doc_signal (const QString&);
28788
aba2c4eadb83 add functions of loaded packages to auto-completion list (bug #56207)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27923
diff changeset
115 void update_gui_lexer_signal (bool);
17029
359c5ca795cd Display doc info pages using documentation browser when in GUI mode (Bug #39451)
John Donoghue <john.donoghue@ieee.org>
parents: 16970
diff changeset
116
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
117 void insert_debugger_pointer_signal (const QString& file, int line);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
118 void delete_debugger_pointer_signal (const QString& file, int line);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
119 void update_breakpoint_marker_signal (bool insert, const QString& file,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
120 int line, const QString& cond);
16576
2754c5fd6ae0 keep focus in the command window after dbstop, dbstep, etc.
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
121
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
122 void copyClipboard_signal (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
123 void pasteClipboard_signal (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
124 void selectAll_signal (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
125 void undo_signal (void);
16648
b04413e5a811 improve handling of interrupts, copy and paste shortcuts
John W. Eaton <jwe@octave.org>
parents: 16642
diff changeset
126
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
127 void add_actions_signal (QList <QAction *> action_list);
20186
ac3746f39fab make action shortcuts available in floating widgets (bug #45078)
Torsten <ttl@justmail.de>
parents: 20113
diff changeset
128
27653
3564d3999960 fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27629
diff changeset
129 void warning_function_not_found_signal (const QString& message);
3564d3999960 fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27629
diff changeset
130
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
131 void interpreter_event (const fcn_callback& fcn);
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
132 void interpreter_event (const meth_callback& meth);
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
133
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
134 public slots:
16970
78116b88dbf5 enable readline key bindings in terminal widget of gui (bug #36986)
Torsten <ttl@justmail.de>
parents: 16798
diff changeset
135
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
136 void focus_changed (QWidget *w_old, QWidget *w_new);
27669
271b5cd640d7 Add functions to show GUI windows (bug #57213)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 27653
diff changeset
137 void focus_window (const QString& win_name);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
138 void request_reload_settings (void);
19422
476032040df9 determining the active dock from focus changes in the gui
Torsten <ttl@justmail.de>
parents: 19303
diff changeset
139
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
140 void report_status_message (const QString& statusMessage);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
141 void handle_save_workspace_request (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
142 void handle_load_workspace_request (const QString& file = QString ());
25408
ce725103ebf1 Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25407
diff changeset
143 void handle_open_any_request (const QString& file = QString ());
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
144 void handle_clear_workspace_request (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
145 void handle_clear_command_window_request (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
146 void handle_clear_history_request (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
147 void handle_undo_request (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
148 void handle_rename_variable_request (const QString& old_name,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
149 const QString& new_name);
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27302
diff changeset
150 void modify_path (const octave_value_list& dir_list, bool rm, bool subdirs);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
151 void edit_mfile (const QString&, int);
25742
d3c6de326bae close/reload editor tab when file is (re)moved in gui terminal (bug #43922)
Torsten <mttl@mailbox.org>
parents: 25723
diff changeset
152 void file_remove_proxy (const QString& o, const QString& n);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
153 void open_online_documentation_page (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
154 void display_release_notes (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
155 void load_and_display_community_news (int serial = -1);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
156 void display_community_news (const QString& news);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
157 void open_bug_tracker_page (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
158 void open_octave_packages_page (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
159 void open_contribute_page (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
160 void open_donate_page (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
161 void process_settings_dialog_request (const QString& desired_tab
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
162 = QString ());
20113
c36f2b083613 make copying figures to clipboard work (bug #44866)
John W. Eaton <jwe@octave.org>
parents: 19949
diff changeset
163
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
164 void show_about_octave (void);
29000
8a05763823d1 avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27923
diff changeset
165 void notice_settings (const gui_settings *settings,
8a05763823d1 avoid possible infinite loop when default encoding is changed (bug #59331)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27923
diff changeset
166 bool update_by_worker = false);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
167 void prepare_to_exit (void);
27860
cbd4d97100b3 add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27669
diff changeset
168 void go_to_previous_widget (void);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
169 void reset_windows (void);
29450
6448a10a642a fix restoring the horizontal position of docked gui widgets (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29358
diff changeset
170 void do_reset_windows (bool show = true, bool save = true);
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16431
diff changeset
171
27409
a0d49e55acae rename change_directory to directory_changed in event manager
John W. Eaton <jwe@octave.org>
parents: 27311
diff changeset
172 void update_octave_directory (const QString& dir);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
173 void browse_for_directory (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
174 void set_current_working_directory (const QString& dir);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
175 void change_directory_up (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
176 void accept_directory_line_edit (void);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
177
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
178 void execute_command_in_terminal (const QString& dir);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
179 void run_file_in_terminal (const QFileInfo& info);
16446
4b3a4bf8569b improve encapsulation of command window object
John W. Eaton <jwe@octave.org>
parents: 16445
diff changeset
180
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
181 void handle_new_figure_request (void);
16566
662a712b8fd5 partial menu bar cleanup
John W. Eaton <jwe@octave.org>
parents: 16565
diff changeset
182
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
183 void handle_enter_debugger (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
184 void handle_exit_debugger (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
185 void debug_continue (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
186 void debug_step_into (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
187 void debug_step_over (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
188 void debug_step_out (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
189 void debug_quit (void);
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29359
diff changeset
190 void editor_tabs_changed (bool, bool);
14726
e94a54ee0f46 Added debug events, debug mode detection and fixed compiling error.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14721
diff changeset
191
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
192 void request_open_file (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
193 void request_new_script (const QString& commands = QString ());
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
194 void request_new_function (bool triggered = true);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
195 void handle_edit_mfile_request (const QString& name, const QString& file,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
196 const QString& curr_dir, int line);
23385
41639665aa34 improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents: 23380
diff changeset
197
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
198 void handle_insert_debugger_pointer_request (const QString& file, int line);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
199 void handle_delete_debugger_pointer_request (const QString& file, int line);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
200 void handle_update_breakpoint_marker_request (bool insert,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
201 const QString& file, int line,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
202 const QString& cond);
16576
2754c5fd6ae0 keep focus in the command window after dbstop, dbstep, etc.
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
203
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
204 void read_settings (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
205 void init_terminal_size (void);
27611
0495b64288f7 use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents: 27601
diff changeset
206 void set_window_layout (gui_settings *settings);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
207 void write_settings (void);
15425
8ae34ffe5c1b Retain QsciAPIs lexer_api as part of lexer_octave_gui object (bug #37359)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 15402
diff changeset
208
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
209 void copyClipboard (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
210 void pasteClipboard (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
211 void selectAll (void);
16648
b04413e5a811 improve handling of interrupts, copy and paste shortcuts
John W. Eaton <jwe@octave.org>
parents: 16642
diff changeset
212
29057
450920c987b8 update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29040
diff changeset
213 void handle_gui_status_update (const QString& feature, const QString& status);
450920c987b8 update profiler status in gui from interpreter
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29040
diff changeset
214
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27412
diff changeset
215 void focus_console_after_command (void);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
216 void handle_show_doc (const QString& file);
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
217 void handle_register_doc (const QString& file);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
218 void handle_unregister_doc (const QString& file);
17029
359c5ca795cd Display doc info pages using documentation browser when in GUI mode (Bug #39451)
John Donoghue <john.donoghue@ieee.org>
parents: 16970
diff changeset
219
29040
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
220 void profiler_session (void);
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
221 void profiler_session_resume (void);
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
222 void profiler_stop (void);
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
223 void handle_profiler_status_update (bool);
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
224 void profiler_show (void);
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
225
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
226 void handle_octave_ready ();
18309
024940bd5b77 gui: provide prefernces for the octave directory at startup
Torsten <ttl@justmail.de>
parents: 18253
diff changeset
227
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
228 void handle_set_path_dialog_request (void);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
229
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
230 //! Find files dialog.
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
231 //!@{
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
232 void find_files (const QString& startdir = QDir::currentPath ());
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
233 void find_files_finished (int) { }
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
234 //!@}
16970
78116b88dbf5 enable readline key bindings in terminal widget of gui (bug #36986)
Torsten <ttl@justmail.de>
parents: 16798
diff changeset
235
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
236 void set_screen_size (int ht, int wd);
19302
37159a873c96 preserve text on Windows terminal resize (bug #41893; patch #8532)
John W. Eaton <jwe@octave.org>
parents: 18944
diff changeset
237
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
238 //! Handling the clipboard.
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
239 //!@{
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
240 void clipboard_has_changed (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
241 void clear_clipboard ();
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
242 //!@}
17117
47b504503a3f disable global paste action when clipboard is empty
Torsten <ttl@justmail.de>
parents: 17029
diff changeset
243
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
244 //! Returns a list of dock widgets.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
245
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
246 QList<octave_dock_widget *> get_dock_widget_list (void)
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
247 {
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
248 return dock_widget_list ();
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
249 }
17117
47b504503a3f disable global paste action when clipboard is empty
Torsten <ttl@justmail.de>
parents: 17029
diff changeset
250
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
251 private slots:
23119
3107d3717cc2 refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents: 23092
diff changeset
252
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
253 void disable_menu_shortcuts (bool disable);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
254 void restore_create_file_setting (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
255 void set_file_encoding (const QString& new_encoding);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
256 void request_open_files (const QStringList& open_file_names);
20986
00835323fb44 prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents: 20945
diff changeset
257
27653
3564d3999960 fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27629
diff changeset
258 void warning_function_not_found (const QString& message);
3564d3999960 fix message box when trying to open a non-existant function in the editor
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27629
diff changeset
259
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
260 //! Opens the variable editor for @p name.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
261
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
262 void edit_variable (const QString &name, const octave_value&);
23927
e3a36f84d01d provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents: 23497
diff changeset
263
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
264 void refresh_variable_editor (void);
23927
e3a36f84d01d provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents: 23497
diff changeset
265
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
266 void handle_variable_editor_update (void);
23927
e3a36f84d01d provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents: 23497
diff changeset
267
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
268 protected:
24019
fc4ba8b1ff87 style fixes for GUI main window
John W. Eaton <jwe@octave.org>
parents: 23979
diff changeset
269
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
270 void closeEvent (QCloseEvent *closeEvent);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
271
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
272 private:
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
273
25944
ceb508ea92ee refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents: 25938
diff changeset
274 void construct_central_widget (void);
ceb508ea92ee refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents: 25938
diff changeset
275
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
276 void construct (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
277
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
278 void construct_octave_qt_link (void);
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
279
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
280 QAction * add_action (QMenu *menu, const QIcon& icon,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
281 const QString& text, const char *member,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
282 const QWidget *receiver = nullptr);
18697
908523bd79b4 use shortcut manager for the debug menu
Torsten <ttl@justmail.de>
parents: 18684
diff changeset
283
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
284 QMenu * m_add_menu (QMenuBar *p, QString text);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
285 void construct_menu_bar (void);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
286 void construct_file_menu (QMenuBar *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
287 void construct_new_menu (QMenu *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
288 void construct_edit_menu (QMenuBar *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
289 QAction * construct_debug_menu_item (const char *icon, const QString& item,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
290 const char *member);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
291 void construct_debug_menu (QMenuBar *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
292 QAction * construct_window_menu_item (QMenu *p, const QString& item,
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
293 bool checkable, QWidget*);
29068
d8089b13d4d7 add shortcuts for the new profiler actions in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29061
diff changeset
294 void construct_tools_menu (QMenuBar *p);
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
295 void construct_window_menu (QMenuBar *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
296 void construct_help_menu (QMenuBar *p);
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
297 void construct_documentation_menu (QMenu *p);
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
298
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
299 void construct_news_menu (QMenuBar *p);
17599
f5950975a172 community news dock widget and other user info in GUI
John W. Eaton <jwe@octave.org>
parents: 17509
diff changeset
300
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
301 void construct_tool_bar (void);
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
302
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
303 void configure_shortcuts (void);
18250
0da2e7051778 synchronize gui's debug actions with the octave core thread (bug #41139)
Torsten <ttl@justmail.de>
parents: 18031
diff changeset
304
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
305 QList<octave_dock_widget *> dock_widget_list (void);
27302
5f170ea12fa1 use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents: 27298
diff changeset
306
27270
47f42ad90b0b Restore mfile_encoding on startup from GUI settings.
Markus Mützel <markus.muetzel@gmx.de>
parents: 27263
diff changeset
307 void update_default_encoding (const QString& default_encoding);
18717
f017240310fb disabling global shortcuts when terminal has focus as user preference
Torsten <ttl@justmail.de>
parents: 18711
diff changeset
308
29144
7220b59c490b clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29000
diff changeset
309 void get_screen_geometry (int *width, int *height);
7220b59c490b clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29000
diff changeset
310 void set_default_geometry (void);
29147
5d7a651bf0bb fix error when restoring previous main window layout (bug #59426)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29144
diff changeset
311 void resize_dock (QDockWidget *dw, int width, int height);
29144
7220b59c490b clean up constructing main window layout of the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29000
diff changeset
312
27218
a044202208af more refactoring of GUI classes that manage the interpreter
John W. Eaton <jwe@octave.org>
parents: 27217
diff changeset
313 base_qobject& m_octave_qobj;
23119
3107d3717cc2 refactor and simplify interpreter startup in GUI
John W. Eaton <jwe@octave.org>
parents: 23092
diff changeset
314
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
315 workspace_model *m_workspace_model;
23927
e3a36f84d01d provide variable-editor widget for the GUI
Michael Barnes <mjbcode@runbox.com>
parents: 23497
diff changeset
316
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
317 QHash<QMenu*, QStringList> m_hash_menu_text;
18944
b2c4d6d461f0 fix conflict between main and editor menus when using alt keys (bug #42659)
Torsten <ttl@justmail.de>
parents: 18717
diff changeset
318
25702
bd30c6f8cfb7 update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents: 25700
diff changeset
319 QString m_default_encoding;
bd30c6f8cfb7 update internal __mfile_encoding__ when gui default encoding changes (bug #54310)
Torsten <mttl@mailbox.org>
parents: 25700
diff changeset
320
26227
2355f66cf91d allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents: 25954
diff changeset
321 QString m_default_style;
2355f66cf91d allow to select the gui style in the preferences dialog
Torsten <mttl@mailbox.org>
parents: 25954
diff changeset
322
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
323 //! Toolbar.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
324
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
325 QStatusBar *m_status_bar;
29061
8a425e771aa7 use a led like indicator for the prfiler state
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29057
diff changeset
326 led_indicator *m_profiler_status_indicator;
16448
47fe533ec85b avoid using new for status bar and workspace_model objects
John W. Eaton <jwe@octave.org>
parents: 16447
diff changeset
327
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
328 //! Dock widgets.
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
329 //!@{
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
330 terminal_dock_widget *m_command_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
331 history_dock_widget *m_history_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
332 files_dock_widget *m_file_browser_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
333 documentation_dock_widget *m_doc_browser_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
334 file_editor_interface *m_editor_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
335 workspace_view *m_workspace_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
336 variable_editor *m_variable_editor_window;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
337 //!@}
20278
3b25741a9927 Avoid HAVE_ macro in header file.
John W. Eaton <jwe@octave.org>
parents: 20186
diff changeset
338
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
339 external_editor_interface *m_external_editor;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
340 QWidget *m_active_editor;
23385
41639665aa34 improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents: 23380
diff changeset
341
27860
cbd4d97100b3 add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27669
diff changeset
342 octave_dock_widget *m_previous_dock;
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
343 octave_dock_widget *m_active_dock;
20278
3b25741a9927 Avoid HAVE_ macro in header file.
John W. Eaton <jwe@octave.org>
parents: 20186
diff changeset
344
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
345 QString m_release_notes_icon;
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
346
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
347 QToolBar *m_main_tool_bar;
17619
4288b90f18c4 icons for news and release notes widgets
Torsten <ttl@justmail.de>
parents: 17599
diff changeset
348
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
349 QMenu *m_debug_menu;
17599
f5950975a172 community news dock widget and other user info in GUI
John W. Eaton <jwe@octave.org>
parents: 17509
diff changeset
350
29085
3b29d72645a9 fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29084
diff changeset
351 QMenuBar *m_editor_menubar;
3b29d72645a9 fix alt-key stealing focus from current dock widget in gui
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29084
diff changeset
352
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
353 QAction *m_debug_continue;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
354 QAction *m_debug_step_into;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
355 QAction *m_debug_step_over;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
356 QAction *m_debug_step_out;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
357 QAction *m_debug_quit;
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
358
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
359 QAction *m_new_script_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
360 QAction *m_new_function_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
361 QAction *m_open_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
362 QAction *m_new_figure_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
363 QAction *m_load_workspace_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
364 QAction *m_save_workspace_action;
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
365 QAction *m_set_path_action;
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
366 QAction *m_preferences_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
367 QAction *m_exit_action;
16454
246d25c8761b split main_window::construct for clarity
John W. Eaton <jwe@octave.org>
parents: 16453
diff changeset
368
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
369 QAction *m_copy_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
370 QAction *m_paste_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
371 QAction *m_clear_clipboard_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
372 QAction *m_undo_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
373 QAction *m_clear_command_window_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
374 QAction *m_clear_command_history_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
375 QAction *m_clear_workspace_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
376 QAction *m_find_files_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
377 QAction *m_select_all_action;
16970
78116b88dbf5 enable readline key bindings in terminal widget of gui (bug #36986)
Torsten <ttl@justmail.de>
parents: 16798
diff changeset
378
29040
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
379 QAction *m_profiler_start;
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
380 QAction *m_profiler_resume;
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
381 QAction *m_profiler_stop;
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
382 QAction *m_profiler_show;
05b8ad7b67e8 gui menu for handling the profile (based on patch #8300 by Hassan Radi)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29001
diff changeset
383
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
384 QAction *m_show_command_window_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
385 QAction *m_show_history_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
386 QAction *m_show_workspace_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
387 QAction *m_show_file_browser_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
388 QAction *m_show_editor_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
389 QAction *m_show_documentation_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
390 QAction *m_show_variable_editor_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
391 QAction *m_command_window_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
392 QAction *m_history_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
393 QAction *m_workspace_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
394 QAction *m_file_browser_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
395 QAction *m_editor_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
396 QAction *m_documentation_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
397 QAction *m_variable_editor_action;
27860
cbd4d97100b3 add action and shortcut for switching to previews widget (bug #57447)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27669
diff changeset
398 QAction *m_previous_dock_action;
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
399 QAction *m_reset_windows_action;
18707
f31fde98c872 use shortcut manager for the window menu
Torsten <ttl@justmail.de>
parents: 18697
diff changeset
400
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
401 QAction *m_ondisk_doc_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
402 QAction *m_online_doc_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
403 QAction *m_report_bug_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
404 QAction *m_octave_packages_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
405 QAction *m_contribute_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
406 QAction *m_developer_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
407 QAction *m_about_octave_action;
18710
584b20e9112c use shortcut manager for the main help menu
Torsten <ttl@justmail.de>
parents: 18707
diff changeset
408
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
409 QAction *m_release_notes_action;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
410 QAction *m_current_news_action;
18711
9ef65c422f53 use shortcut manager for the main news menu
Torsten <ttl@justmail.de>
parents: 18710
diff changeset
411
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
412 //! For Toolbars.
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
413 //!@{
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
414 QComboBox *m_current_directory_combo_box;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
415 static const int current_directory_max_visible = 16;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
416 static const int current_directory_max_count = 16;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
417 QLineEdit *m_current_directory_line_edit;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
418 //!@}
14670
7fbea449737d Restructured menus, added toolbar and current directory line edit.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14602
diff changeset
419
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
420 //! Settings dialog as guarded pointer (set to 0 when deleted).
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
421
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
422 QPointer<settings_dialog> m_settings_dlg;
19632
101ce4eaa56c prevent opening the settings dialog multiple times
Torsten <ttl@justmail.de>
parents: 19631
diff changeset
423
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
424 //! Find files dialog.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
425
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
426 find_files_dialog *m_find_files_dlg;
16519
3e8fd0c479b4 Add find files implemtation to main window menu
John Donoghue <john.donoghue@ieee.org>
parents: 16514
diff changeset
427
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
428 //! Set path dialog
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
429 QPointer<set_path_dialog> m_set_path_dlg;
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents: 27287
diff changeset
430
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
431 //! Release notes window.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
432
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
433 QWidget *m_release_notes_window;
17883
3851e5fde76d GUI: allow only one release notes windows to be open
John Donoghue <john.donoghue@ieee.org>
parents: 17827
diff changeset
434
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
435 QWidget *m_community_news_window;
17939
16cf38c39915 display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents: 17918
diff changeset
436
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
437 QClipboard *m_clipboard;
17117
47b504503a3f disable global paste action when clipboard is empty
Torsten <ttl@justmail.de>
parents: 17029
diff changeset
438
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
439 //! Some class global flags.
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
440 //!@{
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
441 bool m_prevent_readline_conflicts;
29084
2a70a068c4ab add option for using alt-modifer in command windows readline (bug #59478)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29068
diff changeset
442 bool m_prevent_readline_conflicts_menu;
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
443 bool m_suppress_dbg_location;
26873
9ec36417c262 debug step starts script if not already running in debug mode (bug #44728)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26376
diff changeset
444 bool m_editor_has_tabs;
29439
fe06fafb4cac fix en-/disabling some editor actions depending on file type (bug #60214)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29359
diff changeset
445 bool m_editor_is_octave_file;
23385
41639665aa34 improve opening files from gui when built without qscintilla (bug #39179)
Torsten <mttl@mailbox.org>
parents: 23380
diff changeset
446
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
447 //! Flag for closing the whole application.
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
448
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
449 bool m_closing;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
450 //!@}
24109
1d6c940a1b37 doc: Improve Doxygen documentation for some files in libgui.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24019
diff changeset
451
24715
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
452 QString m_file_encoding;
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
453 };
88bb3f086d9a move GUI main_window and related classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24641
diff changeset
454 }
17939
16cf38c39915 display community news in simple window; check timestamp and serial number
John W. Eaton <jwe@octave.org>
parents: 17918
diff changeset
455
20945
9d9270e2f98f eliminate comments after preprocessor conditionals
John W. Eaton <jwe@octave.org>
parents: 20791
diff changeset
456 #endif