26#if defined (HAVE_CONFIG_H)
33#include <QApplication>
37#include <QDesktopServices>
38#include <QDesktopWidget>
41#include <QInputDialog>
42#include <QKeySequence>
49#include <QStyleFactory>
50#include <QTextBrowser>
60#if defined (HAVE_QSCINTILLA)
85#include "builtin-defun-decls.h"
97 m_status_bar (nullptr),
98 m_command_window (nullptr),
99 m_history_window (nullptr),
100 m_file_browser_window (nullptr),
101 m_editor_window (nullptr),
102 m_workspace_window (nullptr),
104 m_active_editor (m_external_editor), m_settings_dlg (nullptr),
105 m_find_files_dlg (nullptr), m_set_path_dlg (nullptr),
107 m_prevent_readline_conflicts (true),
108 m_prevent_readline_conflicts_menu (false),
109 m_suppress_dbg_location (true),
110 m_closing (false), m_file_encoding (QString ())
121 if (welcomeWizard.exec () == QDialog::Rejected)
143#if defined (OCTAVE_USE_WINDOWS_API)
166#if defined (HAVE_QGUIAPPLICATION_SETDESKTOPFILENAME)
167 QGuiApplication::setDesktopFileName (
"org.octave.Octave.desktop");
176 bool connect_to_web =
true;
177 QDateTime last_checked;
193 QDateTime current = QDateTime::currentDateTime ();
194 QDateTime one_day_ago = current.addDays (-1);
197 && (! last_checked.isValid () || one_day_ago > last_checked))
348#if defined (HAVE_QSCINTILLA)
442 connect (qt_link, SIGNAL (edit_file_signal (
const QString&)),
468 connect (qApp, &QApplication::aboutToQuit,
489 if (win_name ==
"command")
491 else if (win_name ==
"history")
493 else if (win_name ==
"workspace")
495 else if (win_name ==
"filebrowser")
501 bool closenow =
true;
509 int ans = QMessageBox::question (
this, tr (
"Octave"),
510 tr (
"Are you sure you want to exit Octave?"),
512 | QMessageBox::Cancel),
515 if (ans != QMessageBox::Ok)
519#if defined (HAVE_QSCINTILLA)
534 || (new_widget == menuBar ())
554 for (
auto w : w_list)
556 if (
w->isAncestorOf (w_new))
565 w_new = qobject_cast<QWidget *> (w_new->previousInFocusChain ());
595 if (edit_dock_widget == dock)
607 int cmd_involved = 0;
608 if (cmd_dock_widget == dock)
617 command = cmd_involved;
621 if (editor || command)
623 int sum = editor + command;
662 opts = QFileDialog::DontUseNativeDialog;
665 = QFileDialog::getSaveFileName (
this, tr (
"Save Workspace As"),
".",
666 nullptr,
nullptr, QFileDialog::Option (opts));
668 if (! file.isEmpty ())
675 Fsave (interp,
ovl (file.toStdString ()));
687 opts = QFileDialog::DontUseNativeDialog;
689 QString file = file_arg;
692 file = QFileDialog::getOpenFileName (
this, tr (
"Load Workspace"),
".",
693 nullptr,
nullptr, QFileDialog::Option (opts));
695 if (! file.isEmpty ())
702 Fload (interp,
ovl (file.toStdString ()));
715 if (! file_arg.isEmpty ())
717 std::string file = file_arg.toStdString ();
791 bool rm,
bool subdirs)
833#if defined (HAVE_QSCINTILLA)
836 octave_unused_parameter (o);
837 octave_unused_parameter (n);
847 QDesktopServices::openUrl
848 (QUrl (
"https://octave.org/doc/interpreter/index.html"));
853 QDesktopServices::openUrl (QUrl (
"https://octave.org/bugs.html"));
858 QDesktopServices::openUrl (QUrl (
"https://octave.org/packages.html"));
863 QDesktopServices::openUrl (QUrl (
"https://octave.org/contribute.html"));
868 QDesktopServices::openUrl (QUrl (
"https://octave.org/donate.html"));
876 if (! desired_tab.isEmpty ())
896 QMessageBox::about (
this, tr (
"About Octave"),
901 bool update_by_worker)
913 QStyle *new_style = QStyleFactory::create (preferred_style);
918 qapp->setStyle (new_style);
926 int icon_set_found = 0;
934 icon_set_found = count;
943 QString
name = widget->objectName ();
944 if (!
name.isEmpty ())
949 icon +=
name +
".png";
950 widget->setWindowIcon (QIcon (icon));
955 size_idx = (size_idx > 0) - (size_idx < 0) + 1;
957 QStyle *st = style ();
982 bool do_disable_main_menu_shortcuts
990 QString new_default_encoding
1001 bool cursor_blinking;
1008 if (cursor_blinking)
1009 QApplication::setCursorFlashTime (1000);
1011 QApplication::setCursorFlashTime (0);
1056 int opts = QFileDialog::ShowDirsOnly;
1060 opts = QFileDialog::DontUseNativeDialog;
1063 = QFileDialog::getExistingDirectory (
this, tr (
"Browse directories"),
nullptr,
1064 QFileDialog::Option (opts));
1078 QString xdir = (dir.isEmpty () ?
"." : dir);
1080 QFileInfo fileInfo (xdir);
1082 if (fileInfo.exists () && fileInfo.isDir ())
1089 interp.
chdir (xdir.toStdString ());
1143 QString function_name = info.fileName ();
1144 function_name.chop (info.suffix ().length () + 1);
1145 std::string file_path = info.absoluteFilePath ().toStdString ();
1154 load_path& lp = interp.get_load_path ();
1156 std::string path = info.absolutePath ().toStdString ();
1158 if (lp.contains_file_in_dir (file_path, path))
1159 command_editor::replace_line (function_name.toStdString ());
1166 interp.source_file (file_path);
1168 command_editor::replace_line (
"");
1194 setWindowTitle (
"Octave (Debugging)");
1205 setWindowTitle (
"Octave");
1316 fileDialog->setNameFilter (tr (
"Octave Files (*.m);;All Files (*)"));
1318 fileDialog->setAcceptMode (QFileDialog::AcceptOpen);
1319 fileDialog->setViewMode (QFileDialog::Detail);
1320 fileDialog->setFileMode (QFileDialog::ExistingFiles);
1325 fileDialog->setOption(QFileDialog::DontUseNativeDialog);
1327 connect (fileDialog, &QFileDialog::filesSelected,
1330 fileDialog->setWindowModality (Qt::NonModal);
1331 fileDialog->setAttribute (Qt::WA_DeleteOnClose);
1332 fileDialog->show ();
1354 QString new_name = QInputDialog::getText (p, tr (
"New Function"),
1355 tr (
"New function name:\n"), QLineEdit::Normal,
"", &ok);
1357 if (ok && new_name.length () > 0)
1360 if (new_name.rightRef (2) !=
".m")
1361 new_name.append (
".m");
1376 const QString& ffile,
1377 const QString& curr_dir,
1386 QStringList fcn_list = fname.split (
'>');
1387 QString fcn_name = fcn_list.at (0) +
".m";
1395 int type = fct (0).int_value ();
1398 QString filename = QString ();
1405 message = tr (
"%1 is a built-in, compiled or inline\n"
1406 "function and can not be edited.");
1413 if (file_path.
length () > 0)
1418 if (filename.isEmpty () &&
message.isEmpty ())
1424 if (ffile.isEmpty ())
1426 if (curr_dir.isEmpty ())
1429 dir = QDir (curr_dir);
1432 dir = QDir (QFileInfo (ffile).canonicalPath ());
1434 QFileInfo file = QFileInfo (dir, fcn_name);
1436 filename = file.canonicalFilePath ();
1440 file = QFileInfo (ffile);
1441 file = QFileInfo (QDir (file.canonicalPath () +
"/private"),
1444 filename = file.canonicalFilePath ();
1446 message = tr (
"Can not find function %1");
1457 if (! filename.endsWith (
".m"))
1458 filename.append (
".m");
1468 tr (
"Octave Editor"),
1469 message, QMessageBox::Ok,
this);
1470 msgBox->setWindowModality (Qt::NonModal);
1471 msgBox->setAttribute (Qt::WA_DeleteOnClose);
1498 const QString& file,
1500 const QString& cond)
1517 qDebug (
"Error: gui_settings pointer from resource manager is NULL.");
1525 for (
int i=0; i < curr_dirs.size (); i++)
1562 QScreen *s = windowHandle ()->screen ();
1563 QRect av_geom = s->availableGeometry ();
1566 if (screen_list.length () > 1)
1570 QRect new_geom (av_geom.x () + 1, av_geom.y () + 1,
1571 av_geom.width ()-2, av_geom.height ()-2);
1572 setGeometry (new_geom);
1575 setGeometry (av_geom);
1591 if (widget->adopted ())
1594 QString
name = widget->objectName ();
1596 if (!
name.isEmpty ())
1598 bool floating =
false;
1599 bool visible =
true;
1609 widget->make_window ();
1615 widget->showMinimized ();
1617 widget->setVisible (
true);
1620 widget->setVisible (
false);
1624 if (! widget->parent ())
1625 widget->make_widget (
false);
1627 widget->make_widget ();
1628 widget->setVisible (visible);
1642 qDebug (
"Error: gui_settings pointer from resource manager is NULL.");
1649 QStringList curr_dirs;
1663 if (edit && edit->hasSelectedText ())
1665 QClipboard *clipboard = QApplication::clipboard ();
1666 clipboard->setText (edit->selectedText ());
1678 QClipboard *clipboard = QApplication::clipboard ();
1679 QString str = clipboard->text ();
1680 if (edit && str.length () > 0)
1704 const QString& status)
1709 if (! feature.compare (
"profiler"))
1711 if (! status.compare (
"on", Qt::CaseInsensitive))
1713 else if (! status.compare (
"off", Qt::CaseInsensitive))
1724 QDir startup_dir = QDir ();
1731 QStringList curr_dirs
1733 if (curr_dirs.length () > 0)
1734 startup_dir = QDir (curr_dirs.at (0));
1746 if (! startup_dir.exists ())
1749 startup_dir = QDir ();
1756#if defined (HAVE_QSCINTILLA)
1777 input_sys.
PS1 (
">> ");
1778 std::string prompt = input_sys.
PS1 ();
1885 QHash<QMenu *, QStringList>::const_iterator i =
m_hash_menu_text.constBegin ();
1889 i.key ()->setTitle (i.value ().at (disable));
1914 for (
int i = 0; i < open_file_names.count (); i++)
1936 Ffeval (interp,
ovl (
"profile",
"resume"));
1997 interp.
quit (0,
false,
false);
2012 dummyWidget->setObjectName (
"CentralDummyWidget");
2013 dummyWidget->resize (10, 10);
2014 dummyWidget->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
2015 dummyWidget->hide ();
2016 setCentralWidget (dummyWidget);
2023 setWindowIcon (QIcon (
":/actions/icons/logo.png"));
2035 connect (qApp, &QApplication::aboutToQuit,
2038 connect (qApp, &QApplication::focusChanged,
2050 setWindowTitle (
"Octave");
2111 const QString& text,
const char *member,
2117 a = menu->addAction (icon, text, receiver, member);
2119 a = menu->addAction (icon, text,
this, member);
2122 a->setShortcutContext (Qt::ApplicationShortcut);
2130 QString base_name =
name;
2132 base_name.replace (
"&&",
"___octave_amp_replacement___");
2134 base_name.remove (
"&");
2136 base_name.replace (
"___octave_amp_replacement___",
"&&");
2162#if defined (HAVE_QSCINTILLA)
2187 file_menu, rmgr.
icon (
"document-open"), tr (
"Open..."),
2189 m_open_action->setToolTip (tr (
"Open an existing file in editor"));
2191#if defined (HAVE_QSCINTILLA)
2195 file_menu->addSeparator ();
2198 file_menu, QIcon (), tr (
"Load Workspace..."),
2202 file_menu, QIcon (), tr (
"Save Workspace As..."),
2205 file_menu->addSeparator ();
2208 file_menu, QIcon (), tr (
"Exit"),
2209 SLOT (close (
void)),
this);
2227 QMenu *new_menu = p->addMenu (tr (
"New"));
2232 new_menu, rmgr.
icon (
"document-new"), tr (
"New Script"),
2236 new_menu, QIcon (), tr (
"New Function..."),
2240 new_menu, QIcon (), tr (
"New Figure"),
2248 QKeySequence ctrl_shift = Qt::ControlModifier + Qt::ShiftModifier;
2252 = edit_menu->addAction (rmgr.
icon (
"edit-undo"), tr (
"Undo"));
2253 m_undo_action->setShortcutContext (Qt::ApplicationShortcut);
2255 edit_menu->addSeparator ();
2258 = edit_menu->addAction (rmgr.
icon (
"edit-copy"), tr (
"Copy"),
this,
2260 m_copy_action->setShortcutContext (Qt::ApplicationShortcut);
2263 = edit_menu->addAction (rmgr.
icon (
"edit-paste"), tr (
"Paste"),
this,
2268 = edit_menu->addAction (tr (
"Select All"),
this,
2273 = edit_menu->addAction (tr (
"Clear Clipboard"),
this,
2276 edit_menu->addSeparator ();
2279 = edit_menu->addAction (rmgr.
icon (
"edit-find"), tr (
"Find Files..."));
2281 edit_menu->addSeparator ();
2284 = edit_menu->addAction (tr (
"Clear Command Window"));
2287 = edit_menu->addAction (tr (
"Clear Command History"));
2290 = edit_menu->addAction (tr (
"Clear Workspace"));
2292 edit_menu->addSeparator ();
2295 = edit_menu->addAction (tr (
"Set Path"));
2298 = edit_menu->addAction (rmgr.
icon (
"preferences-system"),
2299 tr (
"Preferences..."));
2316#if defined (Q_OS_WIN32)
2333 const QString& item,
2340 action->setEnabled (
false);
2342#if defined (HAVE_QSCINTILLA)
2371#if defined (HAVE_QSCINTILLA)
2407 const QString& item,
2411 QAction *action = p->addAction (QIcon (), item);
2414 action->setCheckable (checkable);
2415 action->setShortcutContext (Qt::ApplicationShortcut);
2422 connect (action, SIGNAL (toggled (
bool)),
2423 widget, SLOT (setVisible (
bool)));
2425 connect (widget, SIGNAL (active_changed (
bool)),
2426 action, SLOT (setChecked (
bool)));
2431 connect (action, SIGNAL (triggered (
void)),
2432 widget, SLOT (activate (
void)));
2437 action->setEnabled (
false);
2468 window_menu->addSeparator ();
2491 window_menu->addSeparator ();
2496 window_menu->addSeparator ();
2499 tr (
"Reset Default Window Layout"), SLOT (
reset_windows (
void)));
2508 help_menu->addSeparator ();
2522 help_menu->addSeparator ();
2530 QMenu *doc_menu = p->addMenu (tr (
"Documentation"));
2544 = news_menu->addAction (QIcon (), tr (
"Release Notes"),
2552 = news_menu->addAction (QIcon (), tr (
"Community News"),
2586 QSizePolicy sizePol (QSizePolicy::Preferred, QSizePolicy::Preferred);
2594 QAction *current_dir_up
2596 tr (
"One directory up"));
2597 QAction *current_dir_search
2599 tr (
"Browse directories"));
2605 &QLineEdit::returnPressed,
2608 connect (current_dir_search, &QAction::triggered,
2611 connect (current_dir_up, &QAction::triggered,
2708#if defined (HAVE_QSCINTILLA)
2721 mfile_encoding =
"SYSTEM";
2728 F__mfile_encoding__ (interp,
ovl (mfile_encoding));
2735 QRect screen_geometry = QApplication::desktop ()->availableGeometry (
this);
2737 width = screen_geometry.width ();
2738 height = screen_geometry.height ();
2743#if defined (HAVE_QMAINWINDOW_RESIZEDOCKS)
2746 resizeDocks ({dw}, {width}, Qt::Horizontal);
2748 resizeDocks ({dw}, {height}, Qt::Vertical);
2752 QSize s = dw->widget ()->size ();
2756 s.setHeight (height);
2757 dw->widget ()->resize (s);
2769 resize (2*win_x/3, 7*win_y/8);
2789 QTimer::singleShot (250,
this, [=] () {
do_reset_windows (
true,
true,
true); });
2800 int win_x = geometry ().width ();
2808#if (QT_VERSION < 0x050601) || (QT_VERSION >= 0x050701)
2809 setDockOptions (QMainWindow::AnimatedDocks
2810 | QMainWindow::AllowNestedDocks
2811 | QMainWindow::AllowTabbedDocks);
2813 setDockNestingEnabled (
true);
2858#if defined (HAVE_QSCINTILLA)
void report_status_message(const QString &)
virtual void pasteClipboard(void)=0
void set_screen_size_signal(int, int)
virtual void init_terminal_size(void)
void edit_mfile_request(const QString &, int)
void request_edit_mfile_signal(const QString &, int)
void request_open_file_signal(const QString &, const QString &, int)
virtual void copyClipboard(void)=0
void clear_command_window_request(void)
void execute_command_in_terminal_signal(const QString &)
virtual void selectAll(void)=0
Provides threadsafe access to octave.
OCTINTERP_API void set_workspace(void)
void update_prompt(const std::string &prompt)
string_vector do_history(const octave_value_list &args=octave_value_list(), int nargout=0)
void quit(int exit_status, bool force=false, bool confirm=true)
tree_evaluator & get_evaluator(void)
int chdir(const std::string &dir)
event_manager & get_event_manager(void)
history_system & get_history_system(void)
input_system & get_input_system(void)
octave_value_list feval(const char *name, const octave_value_list &args=octave_value_list(), int nargout=0)
Evaluate an Octave function (built-in or interpreted) and return the list of result values.
Base class for Octave interfaces that use Qt.
shortcut_manager & get_shortcut_manager(void)
interpreter_qobject * interpreter_qobj(void)
QPointer< variable_editor > variable_editor_widget(main_window *mw=nullptr)
QPointer< workspace_view > workspace_widget(main_window *mw=nullptr)
QApplication * qapplication(void)
QPointer< files_dock_widget > file_browser_widget(main_window *mw=nullptr)
void connect_interpreter_events(T *widget)
bool experimental_terminal_widget(void) const
bool is_gui_app(void) const
QPointer< history_dock_widget > history_widget(main_window *mw=nullptr)
QPointer< documentation_dock_widget > documentation_widget(main_window *mw=nullptr)
QPointer< terminal_dock_widget > terminal_widget(main_window *mw=nullptr)
resource_manager & get_resource_manager(void)
void config_translators(void)
void interpreter_event(const fcn_callback &fcn)
static bool interrupt(bool=true)
static void clear_screen(bool skip_redisplay=false)
static void replace_line(const std::string &text, bool clear_undo=true)
static std::string decode_prompt_string(const std::string &s)
static void set_screen_size(int ht, int wd)
static void set_initial_input(const std::string &text)
static void kill_full_line(void)
static std::string get_current_line(void)
static void accept_line(void)
static void interrupt_event_loop(bool flag=true)
static void redisplay(void)
bool call_custom_editor(const QString &file=QString(), int line=-1)
void request_settings_dialog(const QString &)
void focus_console_after_command_signal(void)
void handle_update_breakpoint_marker_request(bool insert, const QString &file, int line, const QString &cond)
void request_step_into_file()
void handle_file_remove(const QString &, const QString &)
void enable_menu_shortcuts(bool)
void edit_mfile_request(const QString &, const QString &, const QString &, int)
void request_open_file_external(const QString &file_name, int line)
void handle_exit_debug_mode(void)
void handle_delete_debugger_pointer_request(const QString &file, int line)
void handle_file_renamed(bool load_new=true)
void execute_command_in_terminal_signal(const QString &)
void handle_insert_debugger_pointer_request(const QString &file, int line)
void update_octave_directory(const QString &dir)
void editor_tabs_changed_signal(bool, bool)
void update_gui_lexer_signal(bool)
void request_dbcont_signal(void)
void request_settings_dialog(const QString &)
void run_file_signal(const QFileInfo &)
void debug_quit_signal(void)
void handle_enter_debug_mode(void)
void file_selected(const QString &fileName)
void set_search_dir(const QString &dir)
void dir_selected(const QString &fileName)
void command_double_clicked(const QString &command)
Signal emitted whenever the user double-clicks a command in the history.
void command_create_script(const QString &commands)
Signal emitted whenever the user selects commands and chooses "Create script" from the popup menu.
qt_interpreter_events * qt_link(void)
void set_state(led_state state)
QHash< QMenu *, QStringList > m_hash_menu_text
void debug_step_over(void)
QAction * m_reset_windows_action
bool command_window_has_focus(void) const
void adopt_dock_widgets(void)
void construct_edit_menu(QMenuBar *p)
void handle_update_breakpoint_marker_request(bool insert, const QString &file, int line, const QString &cond)
QAction * m_save_workspace_action
void construct_window_menu(QMenuBar *p)
void change_directory_up(void)
void make_dock_widget_connections(octave_dock_widget *dw)
void warning_function_not_found(const QString &message)
QAction * m_new_function_action
void file_remove_proxy(const QString &o, const QString &n)
QPointer< files_dock_widget > m_file_browser_window
Dock widgets.
octave_dock_widget * m_previous_dock
QAction * m_ondisk_doc_action
bool m_prevent_readline_conflicts
Some class global flags.
static const int current_directory_max_count
For Toolbars.
external_editor_interface * m_external_editor
QAction * m_release_notes_action
QAction * m_show_workspace_action
QAction * m_documentation_action
void construct_help_menu(QMenuBar *p)
QAction * m_octave_packages_action
void handle_exit_debugger(void)
QAction * m_clear_clipboard_action
void report_status_message(const QString &statusMessage)
QAction * m_show_variable_editor_action
void settings_changed(const gui_settings *)
QStatusBar * m_status_bar
Toolbar.
void notice_settings(const gui_settings *settings, bool update_by_worker=false)
void do_reset_windows(bool show=true, bool save=true, bool force_all=false)
octave_dock_widget * m_active_dock
QAction * m_show_file_browser_action
void set_window_layout(gui_settings *settings)
QAction * m_about_octave_action
QPointer< set_path_dialog > m_set_path_dlg
Set path dialog.
void handle_clear_command_window_request(void)
void handle_gui_status_update(const QString &feature, const QString &status)
QAction * m_previous_dock_action
QPointer< settings_dialog > m_settings_dlg
Settings dialog as guarded pointer (set to 0 when deleted).
QAction * m_editor_action
void handle_save_workspace_request(void)
void handle_clear_workspace_request(void)
void set_current_working_directory(const QString &dir)
void construct_tools_menu(QMenuBar *p)
QPointer< workspace_view > m_workspace_window
Dock widgets.
bool m_suppress_dbg_location
Some class global flags.
find_files_dialog * m_find_files_dlg
Find files dialog.
void construct_tool_bar(void)
void find_files_finished(int)
Find files dialog.
void adopt_editor_widget(void)
void construct_documentation_menu(QMenu *p)
void handle_open_any_request(const QString &file=QString())
QAction * m_profiler_show
QAction * m_history_action
void clear_clipboard()
Handling the clipboard.
void init_window_menu(void)
void focus_command_window(void)
void show_release_notes_signal(void)
QAction * m_developer_action
static const int current_directory_max_visible
For Toolbars.
QPointer< documentation_dock_widget > m_doc_browser_window
Dock widgets.
QAction * m_select_all_action
QAction * m_command_window_action
void construct_debug_menu(QMenuBar *p)
void init_terminal_size(void)
void editor_tabs_changed(bool, bool)
void handle_clear_history_request(void)
void get_screen_geometry(int &width, int &height)
QAction * m_preferences_action
void run_file_in_terminal(const QFileInfo &info)
void handle_profiler_status_update(bool)
void accept_directory_line_edit(void)
void handle_set_path_dialog_request(void)
void focus_console_after_command(void)
QAction * m_find_files_action
QAction * m_debug_step_out
void focus_changed(QWidget *w_old, QWidget *w_new)
void write_settings(void)
void construct_central_widget(void)
void request_open_file(void)
void editor_focus_changed(bool)
QToolBar * m_main_tool_bar
void interpreter_event(const fcn_callback &fcn)
void warning_function_not_found_signal(const QString &message)
void request_new_function(bool triggered=true)
QAction * m_show_documentation_action
QPointer< terminal_dock_widget > m_command_window
Dock widgets.
QPointer< variable_editor > m_variable_editor_window
Dock widgets.
void open_bug_tracker_page(void)
void request_new_script(const QString &commands=QString())
QAction * m_clear_command_window_action
void profiler_session_resume(void)
void modify_path(const QStringList &dir_list, bool rm, bool subdirs)
void new_file_signal(const QString &)
void handle_octave_ready()
QMenuBar * m_editor_menubar
QAction * m_contribute_action
void set_default_geometry(void)
void disable_menu_shortcuts(bool disable)
void handle_edit_mfile_request(const QString &name, const QString &file, const QString &curr_dir, int line)
bool confirm_shutdown(void)
main_window(base_qobject &oct_qobj)
QAction * m_show_history_action
QAction * m_show_command_window_action
void handle_insert_debugger_pointer_request(const QString &file, int line)
void adopt_file_browser_widget(void)
QComboBox * m_current_directory_combo_box
For Toolbars.
QAction * m_online_doc_action
void active_dock_changed(octave_dock_widget *, octave_dock_widget *)
QAction * m_profiler_stop
QAction * construct_debug_menu_item(const char *icon, const QString &item, const char *member)
void adopt_variable_editor_widget(void)
void browse_for_directory(void)
void update_default_encoding(const QString &default_encoding)
QAction * m_variable_editor_action
QAction * m_clear_workspace_action
void close_gui_signal(void)
void handle_new_figure_request(void)
void construct_file_menu(QMenuBar *p)
void open_octave_packages_page(void)
QAction * m_file_browser_action
void adopt_workspace_widget(void)
void adopt_documentation_widget(void)
bool m_prevent_readline_conflicts_menu
Some class global flags.
void open_contribute_page(void)
void pasteClipboard(void)
void construct_news_menu(QMenuBar *p)
bool m_editor_is_octave_file
Some class global flags.
void focus_window(const QString &win_name)
QAction * m_debug_step_over
void update_breakpoint_marker_signal(bool insert, const QString &file, int line, const QString &cond)
QList< octave_dock_widget * > dock_widget_list(void)
QAction * m_load_workspace_action
void debug_step_into(void)
QPointer< history_dock_widget > m_history_window
Dock widgets.
void edit_mfile(const QString &, int)
QString m_default_encoding
QPointer< file_editor_interface > m_editor_window
Dock widgets.
void step_into_file_signal(void)
QAction * m_clear_command_history_action
void handle_enter_debugger(void)
void set_file_encoding(const QString &new_encoding)
QAction * m_new_figure_action
QAction * m_report_bug_action
QAction * m_profiler_resume
void construct_new_menu(QMenu *p)
QAction * m_debug_continue
void configure_shortcuts(void)
void clipboard_has_changed(void)
Handling the clipboard.
void debug_continue(void)
void adopt_history_widget(void)
base_qobject & m_octave_qobj
void show_community_news_signal(int serial)
void pasteClipboard_signal(void)
QAction * add_action(QMenu *menu, const QIcon &icon, const QString &text, const char *member, const QWidget *receiver=nullptr)
QAction * m_current_news_action
QAction * m_set_path_action
void execute_command_in_terminal(const QString &dir)
void handle_delete_debugger_pointer_request(const QString &file, int line)
void find_files(const QString &startdir=QDir::currentPath())
Find files dialog.
QAction * m_show_editor_action
void resize_dock(QDockWidget *dw, int width, int height)
QWidget * m_active_editor
QAction * m_profiler_start
void update_gui_lexer_signal(bool)
void selectAll_signal(void)
QAction * m_new_script_action
void insert_debugger_pointer_signal(const QString &file, int line)
void show_about_octave(void)
led_indicator * m_profiler_status_indicator
void handle_load_workspace_request(const QString &file=QString())
void request_reload_settings(void)
void restore_create_file_setting(void)
void construct_octave_qt_link(void)
void open_donate_page(void)
void update_octave_directory(const QString &dir)
void handle_undo_request(void)
void profiler_session(void)
bool m_editor_has_tabs
Some class global flags.
void request_open_files(const QStringList &open_file_names)
void closeEvent(QCloseEvent *closeEvent)
void set_screen_size(int ht, int wd)
void process_settings_dialog_request(const QString &desired_tab=QString())
void open_online_documentation_page(void)
void delete_debugger_pointer_signal(const QString &file, int line)
void copyClipboard_signal(void)
void debug_step_out(void)
void prepare_to_exit(void)
void construct_menu_bar(void)
void adopt_terminal_widget(void)
void go_to_previous_widget(void)
void init_terminal_size_signal(void)
void open_file_signal(const QString &)
QAction * m_debug_step_into
QAction * m_workspace_action
QMenu * m_add_menu(QMenuBar *p, QString text)
QAction * construct_window_menu_item(QMenu *p, const QString &item, bool checkable, QWidget *)
void apply_new_settings(void)
void file_remove_signal(const QString &old_name, const QString &new_name)
void insert_debugger_pointer_signal(const QString &, int)
void gui_status_update_signal(const QString &feature, const QString &status)
void show_preferences_signal(void)
void file_renamed_signal(bool load_new)
void update_gui_lexer_signal(bool update_apis_only)
void update_breakpoint_marker_signal(bool insert, const QString &file, int line, const QString &cond)
void delete_debugger_pointer_signal(const QString &, int)
void exit_debugger_signal(void)
void update_path_dialog_signal(void)
void directory_changed_signal(const QString &dir)
void settings_changed(const gui_settings *, bool)
void enter_debugger_signal(void)
void execute_command_in_terminal_signal(const QString &command)
gui_settings * get_settings(void) const
bool is_first_run(void) const
void update_network_settings(void)
QIcon icon(const QString &icon_name, bool fallback=true)
void reload_settings(void)
void interpreter_event(const fcn_callback &fcn)
void modify_path_signal(const QStringList &dir_list, bool rm, bool subdirs)
Emitted, when the path has to be modified.
void apply_new_settings(void)
void set_shortcut(QAction *action, const sc_pref &scpref, bool enable=true)
static void putenv(const std::string &name, const std::string &value)
void command_requested(const QString &cmd)
Signal that user had requested a command on a variable.
octave_value_list & append(const octave_value &val)
octave_idx_type length(void) const
symbol_info_list get_symbol_info(void)
OCTAVE_EXPORT octave_value_list Fdbstep(octave::interpreter &interp, const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list Fdbcont(octave::interpreter &interp, const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list F__db_next_breakpoint_quiet__(octave::interpreter &interp, const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list Fdbquit(octave::interpreter &interp, const octave_value_list &args, int)
void message(const char *name, const char *fmt,...)
OCTAVE_EXPORT octave_value_list Fdrawnow(octave::interpreter &interp, const octave_value_list &args, int)
const gui_pref cs_focus_cmd("terminal/focus_after_command", QVariant(false))
const gui_pref cs_dbg_location("terminal/print_debug_location", QVariant(false))
const gui_pref cs_cursor_blinking("terminal/cursorBlinking", QVariant(true))
const struct @23 dw_icon_set_names[]
const gui_pref dw_is_floating("DockWidgets/%1Floating", QVariant(false))
const gui_pref dw_is_visible("DockWidgets/%1Visible", QVariant(true))
const gui_pref dw_is_minimized("DockWidgets/%1_minimized", QVariant(false))
const gui_pref dw_icon_set("DockWidgets/widget_icon_set", QVariant("NONE"))
const gui_pref ed_create_new_file("editor/create_new_file", QVariant(false))
const gui_pref ed_default_enc("editor/default_encoding", QVariant("UTF-8"))
const gui_pref global_restore_ov_dir("restore_octave_dir", QVariant(false))
const gui_pref global_status_bar("show_status_bar", QVariant(true))
const QStyle::PixelMetric global_icon_sizes[3]
const QString gui_obj_name_main_window
const gui_pref global_prompt_to_exit("prompt_to_exit", QVariant(false))
const gui_pref global_use_native_dialogs("use_native_file_dialogs", QVariant(true))
const gui_pref global_use_custom_editor("useCustomFileEditor", QVariant(false))
const gui_pref global_ov_startup_dir("octave_startup_dir", QVariant(QString()))
const QString global_toolbar_style("QToolBar {" "margin-top: 0px;" "margin-bottom: 0px;" "padding-top: 0px;" "padding-bottom: 0px;" "border-top: 0px;" "border-bottom: 0px;" "}")
const gui_pref global_icon_size("toolbar_icon_size", QVariant(0))
const gui_pref global_cursor_blinking("cursor_blinking", QVariant(true))
const gui_pref global_style("style", QVariant("default"))
const gui_pref mw_dir_list("MainWindow/current_directory_list", QVariant(QStringList()))
const gui_pref mw_geometry("MainWindow/geometry", QVariant(QByteArray()))
const gui_pref mw_state("MainWindow/windowState", QVariant(QByteArray()))
const gui_pref nr_allow_connection("news/allow_web_connection", QVariant(false))
const gui_pref nr_last_news("news/last_news_item", QVariant(0))
const gui_pref nr_last_time("news/last_time_checked", QVariant(QDateTime()))
const sc_pref sc_main_help_online_doc(sc_main_help+":online_doc", QKeySequence::UnknownKey)
const sc_pref sc_main_file_exit(sc_main_file+":exit", QKeySequence::Quit)
const sc_pref sc_main_file_new_file(sc_main_file+":new_file", QKeySequence::New)
const sc_pref sc_main_news_release_notes(sc_main_news+":release_notes", QKeySequence::UnknownKey)
const sc_pref sc_main_window_workspace(sc_main_window+":workspace", PRE+CTRL+Qt::Key_3)
const sc_pref sc_main_file_new_figure(sc_main_file+":new_figure", QKeySequence::UnknownKey)
const sc_pref sc_main_window_doc(sc_main_window+":doc", PRE+CTRL+Qt::Key_5)
const sc_pref sc_main_debug_step_over(sc_main_debug+":step_over", PRE+Qt::Key_F10)
const sc_pref sc_main_window_show_editor(sc_main_window+":show_editor", PRE+CTRL_SHIFT+Qt::Key_4)
const sc_pref sc_main_edit_set_path(sc_main_edit+":set_path", QKeySequence::UnknownKey)
const sc_pref sc_main_window_file_browser(sc_main_window+":file_browser", PRE+CTRL+Qt::Key_2)
const sc_pref sc_main_debug_continue(sc_main_debug+":continue", PRE+Qt::Key_F5)
const sc_pref sc_main_edit_clear_clipboard(sc_main_edit+":clear_clipboard", QKeySequence::UnknownKey)
const sc_pref sc_main_window_show_history(sc_main_window+":show_history", PRE+CTRL_SHIFT+Qt::Key_1)
const sc_pref sc_main_window_show_workspace(sc_main_window+":show_workspace", PRE+CTRL_SHIFT+Qt::Key_3)
const sc_pref sc_main_edit_clear_workspace(sc_main_edit+":clear_workspace", QKeySequence::UnknownKey)
const sc_pref sc_main_file_open_file(sc_main_file+":open_file", QKeySequence::Open)
const sc_pref sc_main_window_show_doc(sc_main_window+":show_doc", PRE+CTRL_SHIFT+Qt::Key_5)
const sc_pref sc_main_file_new_function(sc_main_file+":new_function", CTRL_SHIFT+Qt::Key_N)
const sc_pref sc_main_debug_step_into(sc_main_debug+":step_into", PRE+Qt::Key_F11)
const sc_pref sc_main_help_about(sc_main_help+":about", QKeySequence::UnknownKey)
const sc_pref sc_main_window_show_variable_editor(sc_main_window+":show_variable_editor", PRE+CTRL_SHIFT+Qt::Key_6)
const sc_pref sc_main_window_show_command(sc_main_window+":show_command", PRE+CTRL_SHIFT+Qt::Key_0)
const sc_pref sc_main_window_editor(sc_main_window+":editor", PRE+CTRL+Qt::Key_4)
const sc_pref sc_main_window_variable_editor(sc_main_window+":variable_editor", PRE+CTRL+Qt::Key_6)
const sc_pref sc_main_window_command(sc_main_window+":command", PRE+CTRL+Qt::Key_0)
const sc_pref sc_main_debug_quit(sc_main_debug+":quit", PRE+Qt::ShiftModifier+Qt::Key_F5)
const sc_pref sc_main_edit_copy(sc_main_edit+":copy", QKeySequence::Copy)
const sc_pref sc_main_help_ondisk_doc(sc_main_help+":ondisk_doc", QKeySequence::UnknownKey)
const sc_pref sc_main_help_developer(sc_main_help+":developer", QKeySequence::UnknownKey)
const gui_pref sc_prevent_rl_conflicts("shortcuts/prevent_readline_conflicts", QVariant(false))
const sc_pref sc_main_edit_undo(sc_main_edit+":undo", QKeySequence::Undo)
const sc_pref sc_main_edit_clear_command_window(sc_main_edit+":clear_command_window", QKeySequence::UnknownKey)
const sc_pref sc_main_window_reset(sc_main_window+":reset", QKeySequence::UnknownKey)
const sc_pref sc_main_window_previous_dock(sc_main_window+":previous_widget", PRE+CTRL_ALT+Qt::Key_P)
const sc_pref sc_main_help_contribute(sc_main_help+":contribute", QKeySequence::UnknownKey)
const sc_pref sc_main_window_history(sc_main_window+":history", PRE+CTRL+Qt::Key_1)
const gui_pref sc_prevent_rl_conflicts_menu("shortcuts/prevent_readline_conflicts_menu", QVariant(false))
const sc_pref sc_main_edit_preferences(sc_main_edit+":preferences", QKeySequence::UnknownKey)
const sc_pref sc_main_tools_show_profiler(sc_main_tools+":show_profiler", Qt::AltModifier+Qt::ShiftModifier+Qt::Key_P)
const sc_pref sc_main_help_packages(sc_main_help+":packages", QKeySequence::UnknownKey)
const sc_pref sc_main_file_save_workspace(sc_main_file+":save_workspace", QKeySequence::UnknownKey)
const sc_pref sc_main_edit_paste(sc_main_edit+":paste", QKeySequence::Paste)
const sc_pref sc_main_tools_resume_profiler(sc_main_tools+":resume_profiler", QKeySequence::UnknownKey)
const sc_pref sc_main_edit_find_in_files(sc_main_edit+":find_in_files", CTRL_SHIFT+Qt::Key_F)
const sc_pref sc_main_edit_select_all(sc_main_edit+":select_all", QKeySequence::SelectAll)
const sc_pref sc_main_window_show_file_browser(sc_main_window+":show_file_browser", PRE+CTRL_SHIFT+Qt::Key_2)
const sc_pref sc_main_edit_clear_history(sc_main_edit+":clear_history", QKeySequence::UnknownKey)
const sc_pref sc_main_debug_step_out(sc_main_debug+":step_out", PRE+Qt::ShiftModifier+Qt::Key_F11)
const sc_pref sc_main_news_community_news(sc_main_news+":community_news", QKeySequence::UnknownKey)
const sc_pref sc_main_tools_start_profiler(sc_main_tools+":start_profiler", CTRL_SHIFT+Qt::Key_P)
const sc_pref sc_main_help_report_bug(sc_main_help+":report_bug", QKeySequence::UnknownKey)
const sc_pref sc_main_file_load_workspace(sc_main_file+":load_workspace", QKeySequence::UnknownKey)
OCTAVE_EXPORT octave_value_list Fgenpath(const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list Faddpath(octave::interpreter &interp, const octave_value_list &args, int nargout)
OCTAVE_EXPORT octave_value_list Frmpath(octave::interpreter &interp, const octave_value_list &args, int nargout)
OCTAVE_EXPORT octave_value_list Fsave(octave::interpreter &interp, const octave_value_list &args, int nargout)
OCTAVE_EXPORT octave_value_list Fload(octave::interpreter &interp, const octave_value_list &args, int nargout)
std::complex< double > w(std::complex< double > z, double relerr=0)
QString fromStdString(const std::string &s)
std::string toStdString(const QString &s)
static uint32_t state[624]
OCTAVE_EXPORT octave_value_list Fbuiltin(octave::interpreter &interp, const octave_value_list &args, int nargout)
OCTAVE_EXPORT octave_value_list Ffeval(octave::interpreter &interp, const octave_value_list &args, int nargout)
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.
OCTAVE_NAMESPACE_BEGIN bool valid_identifier(const char *s)
OCTAVE_EXPORT octave_value_list Ffile_in_loadpath(octave::interpreter &interp, const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list Fexist(octave::interpreter &interp, const octave_value_list &args, int)
OCTAVE_EXPORT octave_value_list Fclear(octave::interpreter &interp, const octave_value_list &args, int)
std::string octave_name_version_copyright_copying_warranty_and_bugs(bool html, const std::string &extra_info)