24 #if defined (HAVE_CONFIG_H)
28 #include <QKeySequence>
29 #include <QApplication>
37 #include <QDesktopServices>
38 #include <QDesktopWidget>
39 #include <QFileDialog>
40 #include <QMessageBox>
42 #include <QTextStream>
50 #if defined (HAVE_QSCINTILLA)
71 #if defined (HAVE_QSCINTILLA)
74 octave_unused_parameter (p);
81 :
QMainWindow (p), m_app_context (app_context), _workspace_model (0),
82 status_bar (0), command_window (0), history_window (0),
83 file_browser_window (0), doc_browser_window (0), editor_window (0),
84 workspace_window (0), _settings_dlg (0), find_files_dlg (0),
85 release_notes_window (0), community_news_window (0), _octave_qt_link (0),
86 _clipboard (QApplication::clipboard ()),
87 _prevent_readline_conflicts (true),
88 _suppress_dbg_location (true),
89 _start_gui (app_context && app_context->start_gui_p ())
105 bool connect_to_web =
true;
106 QDateTime last_checked;
113 = settings->value (
"news/allow_web_connection",
true).toBool ();
116 = settings->value (
"news/last_time_checked", QDateTime ()).toDateTime ();
118 serial = settings->value (
"news/last_news_item", 0).toInt ();
121 QDateTime current = QDateTime::currentDateTime ();
122 QDateTime one_day_ago = current.addDays (-1);
125 && (! last_checked.isValid () || one_day_ago > last_checked))
183 #if defined (HAVE_QSCINTILLA)
184 if (qobject_cast<octave_qscintilla *> (w_new))
191 w_new = qobject_cast<
QWidget *> (w_new->previousInFocusChain ());
212 if (edit_dock_widget == dock)
254 status_bar->showMessage (statusMessage, 1000);
261 = QFileDialog::getSaveFileName (
this, tr (
"Save Workspace As"),
".", 0, 0,
262 QFileDialog::DontUseNativeDialog);
264 if (! file.isEmpty ())
266 file.toStdString ());
272 QString
file = file_arg;
275 file = QFileDialog::getOpenFileName (
this, tr (
"Load Workspace"),
".", 0, 0,
276 QFileDialog::DontUseNativeDialog);
278 if (! file.isEmpty ())
280 file.toStdString ());
291 const QString& new_name)
294 name_pair names (old_name.toStdString (), new_name.toStdString ());
325 return settings->value (
"terminal/focus_after_command",
false).toBool ();
361 QDesktopServices::openUrl (
362 QUrl (
"http://octave.org/doc/interpreter/index.html"));
375 if (file->open (QFile::ReadOnly))
377 QTextStream *stream =
new QTextStream (file);
378 news = stream->readAll ();
379 if (! news.isEmpty ())
381 news.prepend (
"<pre>");
382 news.append (
"</pre>");
385 news = (tr (
"The release notes file '%1' is empty.")
389 news = (tr (
"The release notes file '%1' cannot be read.")
395 browser->setText (news);
397 QVBoxLayout *vlayout =
new QVBoxLayout;
398 vlayout->addWidget (browser);
403 browser->document()->adjustSize ();
406 QDesktopWidget *m_desktop = QApplication::desktop ();
407 int screen = m_desktop->screenNumber (
this);
408 QRect screen_geo = m_desktop->availableGeometry (screen);
409 int win_x = screen_geo.width ();
410 int win_y = screen_geo.height ();
411 int reln_x =
std::min (720, win_x-80);
412 int reln_y =
std::min (740, win_y-80);
440 std::ostringstream buf;
443 if (octave_dot_org.is_valid ())
446 octave_dot_org.http_get (param);
448 if (octave_dot_org.good ())
452 if (html_text.contains (
"this-is-the-gnu-octave-community-news-page"))
460 settings->setValue (
"news/last_time_checked",
461 QDateTime::currentDateTime ());
466 QString tag (
"community-news-page-serial=");
468 int b = html_text.indexOf (tag);
474 int e = html_text.indexOf (
"\n", b);
476 QString
tmp = html_text.mid (b, e-b);
478 int curr_page_serial = tmp.toInt ();
480 if (curr_page_serial >
serial)
484 settings->setValue (
"news/last_news_item",
502 "Octave's community news source seems to be unavailable.\n"
505 "For the latest news, please check\n"
506 "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
507 "when you have a connection to the web (link opens in an external browser).\n"
520 "Connecting to the web to display the latest Octave Community news has been disabled.\n"
523 "For the latest news, please check\n"
524 "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
525 "when you have a connection to the web (link opens in an external browser)\n"
526 "or enable web connections for news in Octave's network settings dialog.\n"
546 ? settings->value (
"news/allow_web_connection",
true).toBool ()
549 QString base_url =
"http://octave.org";
550 QString
page =
"community-news.html";
557 reader->moveToThread (worker_thread);
559 connect (reader, SIGNAL (display_news_signal (
const QString&)),
562 connect (worker_thread, SIGNAL (started (
void)),
563 reader, SLOT (process ()));
565 connect (reader, SIGNAL (finished (
void)), worker_thread, SLOT (quit ()));
567 connect (reader, SIGNAL (finished (
void)), reader, SLOT (deleteLater ()));
569 connect (worker_thread, SIGNAL (finished (
void)),
570 worker_thread, SLOT (deleteLater ()));
572 worker_thread->start ();
584 browser->setHtml (news);
585 browser->setObjectName (
"OctaveNews");
586 browser->setOpenExternalLinks (
true);
588 QVBoxLayout *vlayout =
new QVBoxLayout;
590 vlayout->addWidget (browser);
596 QDesktopWidget *m_desktop = QApplication::desktop ();
597 int screen = m_desktop->screenNumber (
this);
598 QRect screen_geo = m_desktop->availableGeometry (screen);
599 int win_x = screen_geo.width ();
600 int win_y = screen_geo.height ();
601 int news_x =
std::min (640, win_x-80);
602 int news_y =
std::min (480, win_y-80);
623 QDesktopServices::openUrl (QUrl (
"http://octave.org/bugs.html"));
629 QDesktopServices::openUrl (QUrl (
"http://octave.org/packages.html"));
635 QDesktopServices::openUrl (QUrl (
"http://octave.org/contribute.html"));
641 QDesktopServices::openUrl (QUrl (
"http://octave.org/donate.html"));
650 if (! desired_tab.isEmpty ())
668 QClipboard *clipboard = QApplication::clipboard ();
678 clipboard->setImage (img);
681 QFile::remove (file);
700 = settings->value (
"DockWidgets/widget_icon_set",
"NONE").toString ();
712 {
"NONE",
":/actions/icons/logo.png"},
713 {
"GRAPHIC",
":/actions/icons/graphic_logo_"},
714 {
"LETTER",
":/actions/icons/letter_logo_"},
719 int icon_set_found = 0;
721 while (! widget_icon_data[count].
name.isEmpty ())
724 if (widget_icon_data[count].
name == icon_set)
727 icon_set_found = count;
736 QString
name = widget->objectName ();
737 if (! name.isEmpty ())
739 icon = widget_icon_data[icon_set_found].path;
740 if (widget_icon_data[icon_set_found].name !=
"NONE")
741 icon += name +
".png";
742 widget->setWindowIcon (QIcon (icon));
745 if (widget_icon_data[icon_set_found].
name !=
"NONE")
747 +
"ReleaseWidget.png";
751 int icon_size_settings = settings->value (
"toolbar_icon_size",0).toInt ();
752 QStyle *st = style ();
753 int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
755 if (icon_size_settings == 1)
756 icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
757 else if (icon_size_settings == -1)
758 icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
762 if (settings->value (
"show_status_bar",
true).toBool ())
768 = settings->value (
"shortcuts/prevent_readline_conflicts",
true).toBool ();
771 = ! settings->value (
"terminal/print_debug_location",
false).toBool ();
785 bool closenow =
true;
791 if (settings->value (
"prompt_to_exit",
false).toBool ())
793 int ans = QMessageBox::question (
this, tr (
"Octave"),
794 tr (
"Are you sure you want to exit Octave?"),
796 | QMessageBox::Cancel),
799 if (ans != QMessageBox::Ok)
803 #if defined (HAVE_QSCINTILLA)
868 = QFileDialog::getExistingDirectory (
this, tr (
"Browse directories"), 0,
869 QFileDialog::ShowDirsOnly |
870 QFileDialog::DontUseNativeDialog);
885 QString xdir = dir.isEmpty () ?
"." : dir;
887 QFileInfo fileInfo (xdir);
889 if (fileInfo.exists () && fileInfo.isDir ())
891 xdir.toStdString ());
922 setWindowTitle (
"Octave (Debugging)");
930 #if defined (HAVE_QSCINTILLA)
938 setWindowTitle (
"Octave");
946 #if defined (HAVE_QSCINTILLA)
1015 const QString&
file,
1017 const QString& cond)
1033 QMessageBox::about (
this, tr (
"About Octave"),
1052 qDebug (
"Error: QSettings pointer from resource manager is NULL.");
1059 QStringList curr_dirs
1060 = settings->value (
"MainWindow/current_directory_list").toStringList ();
1061 for (
int i=0;
i < curr_dirs.size ();
i++)
1077 #if ! defined (Q_OS_WIN32)
1078 restoreState (settings->value (
"MainWindow/windowState").toByteArray ());
1079 restoreGeometry (settings->value (
"MainWindow/geometry").toByteArray ());
1085 QString
name = widget->objectName ();
1087 if (! name.isEmpty ())
1089 bool floating = settings->value
1090 (
"DockWidgets/" + name +
"Floating",
false).toBool ();
1091 bool visible = settings->value
1092 (
"DockWidgets/" + name +
"Visible",
true).toBool ();
1097 else if (! widget->parent ())
1099 #if ! defined (Q_OS_WIN32)
1101 QVariant
val = settings->value (
"DockWidgets/" + name);
1102 widget->restoreGeometry (val.toByteArray ());
1105 if (floating && visible)
1107 if (settings->value (
"DockWidgets/" + widget->objectName ()
1108 +
"_minimized").toBool ())
1109 widget->showMinimized ();
1111 widget->setVisible (
true);
1116 widget->setVisible (visible);
1121 #if defined (Q_OS_WIN32)
1122 restoreState (settings->value (
"MainWindow/windowState").toByteArray ());
1123 restoreGeometry (settings->value (
"MainWindow/geometry").toByteArray ());
1135 qDebug (
"Error: QSettings pointer from resource manager is NULL.");
1139 settings->setValue (
"MainWindow/geometry", saveGeometry ());
1140 settings->setValue (
"MainWindow/windowState", saveState ());
1142 QStringList curr_dirs;
1147 settings->setValue (
"MainWindow/current_directory_list", curr_dirs);
1159 #if defined (HAVE_QSCINTILLA)
1170 if (edit && edit->hasSelectedText ())
1172 QClipboard *clipboard = QApplication::clipboard ();
1173 clipboard->setText (edit->selectedText ());
1186 QClipboard *clipboard = QApplication::clipboard ();
1187 QString
str = clipboard->text ();
1188 if (edit && str.length () > 0)
1221 SIGNAL (create_dialog (
const QString&,
const QString&,
1222 const QString&,
const QStringList&,
1223 const QString&,
const QStringList&)),
1226 const QString&,
const QStringList&,
1227 const QString&,
const QStringList&)));
1230 qRegisterMetaType<QIntList> (
"QIntList");
1232 SIGNAL (create_listview (
const QStringList&,
const QString&,
1234 const QString&,
const QStringList&,
1235 const QString&,
const QString&)),
1239 const QString&,
const QStringList&,
1240 const QString&,
const QString&)));
1243 qRegisterMetaType<QFloatList> (
"QFloatList");
1245 SIGNAL (create_inputlayout (
const QStringList&,
const QString&,
1247 const QStringList&)),
1252 const QStringList&)));
1255 SIGNAL (create_filedialog (
const QStringList &,
const QString&,
1256 const QString&,
const QString&,
1260 const QString&,
const QString&,
1269 const QString& title,
1270 const QString& icon,
1271 const QStringList& button,
1272 const QString& defbutton,
1273 const QStringList& role)
1276 button, defbutton, role);
1277 message_dialog->setAttribute (Qt::WA_DeleteOnClose);
1278 message_dialog->show ();
1286 const QString&
mode,
1289 const QString&
name,
1290 const QStringList& prompt,
1291 const QString& ok_string,
1292 const QString& cancel_string)
1295 initial, name, prompt,
1296 ok_string, cancel_string);
1298 list_dialog->setAttribute (Qt::WA_DeleteOnClose);
1299 list_dialog->show ();
1306 const QString& title,
1309 const QStringList& defaults)
1314 input_dialog->setAttribute (Qt::WA_DeleteOnClose);
1315 input_dialog->show ();
1320 const QString& title,
1322 const QString& dirname,
1323 const QString& multimode)
1326 dirname, multimode);
1328 file_dialog->setAttribute (Qt::WA_DeleteOnClose);
1329 file_dialog->show ();
1343 dummyWidget->setObjectName (
"CentralDummyWidget");
1344 dummyWidget->resize (10, 10);
1345 dummyWidget->setSizePolicy (QSizePolicy::Minimum, QSizePolicy::Minimum);
1346 dummyWidget->hide ();
1347 setCentralWidget (dummyWidget);
1355 setWindowIcon (QIcon (
":/actions/icons/logo.png"));
1366 connect (qApp, SIGNAL (aboutToQuit ()),
1368 connect (qApp, SIGNAL (aboutToQuit ()),
1370 connect (qApp, SIGNAL (aboutToQuit ()),
1372 connect (qApp, SIGNAL (aboutToQuit ()),
1374 connect (qApp, SIGNAL (aboutToQuit ()),
1376 connect (qApp, SIGNAL (aboutToQuit ()),
1378 connect (qApp, SIGNAL (aboutToQuit ()),
1380 connect (qApp, SIGNAL (aboutToQuit ()),
1383 connect (qApp, SIGNAL (aboutToQuit ()),
1404 setWindowTitle (
"Octave");
1406 setDockOptions (QMainWindow::AnimatedDocks
1407 | QMainWindow::AllowNestedDocks
1408 | QMainWindow::AllowTabbedDocks);
1414 #if defined (HAVE_QSCINTILLA)
1423 int win_x = QApplication::desktop ()->width ();
1424 int win_y = QApplication::desktop ()->height ();
1432 setGeometry (0, 0, win_x, win_y);
1436 #if defined (HAVE_QSCINTILLA)
1451 int,
const QString&)),
1472 QDir startup_dir = QDir ();
1476 if (settings->value (
"restore_octave_dir").toBool ())
1479 QStringList curr_dirs
1480 = settings->value (
"MainWindow/current_directory_list").toStringList ();
1482 = QDir (curr_dirs.at (0));
1484 else if (! settings->value (
"octave_startup_dir").toString ().isEmpty ())
1488 = QDir (settings->value (
"octave_startup_dir").toString ());
1492 if (! startup_dir.exists ())
1495 startup_dir = QDir ();
1502 #if defined (HAVE_QSCINTILLA)
1527 SIGNAL (copy_image_to_clipboard_signal (
const QString&,
bool)),
1533 SIGNAL (set_workspace_signal
1534 (
bool,
bool,
const QString&,
const QStringList&,
1535 const QStringList&,
const QStringList&,
1536 const QStringList&,
const QIntList&)),
1539 (
bool,
bool,
const QString&,
const QStringList&,
1540 const QStringList&,
const QStringList&,
1541 const QStringList&,
const QIntList&)));
1554 SIGNAL (execute_command_in_terminal_signal (QString)),
1558 SIGNAL (set_history_signal (
const QStringList&)),
1562 SIGNAL (append_history_signal (
const QString&)),
1566 SIGNAL (clear_history_signal (
void)),
1576 SIGNAL (show_preferences_signal (
void)),
1579 #if defined (HAVE_QSCINTILLA)
1581 SIGNAL (edit_file_signal (
const QString&)),
1583 SLOT (handle_edit_file_request (
const QString&)));
1600 int,
const QString&)),
1612 SIGNAL (rename_variable (
const QString&,
const QString&)),
1651 #if defined (HAVE_QSCINTILLA)
1669 const char *member,
const QWidget *receiver)
1674 a = menu->addAction (icon, text, receiver, member);
1676 a = menu->addAction (icon, text,
this, member);
1679 a->setShortcutContext (Qt::ApplicationShortcut);
1686 QHash<QMenu*, QStringList>::const_iterator
i =
_hash_menu_text.constBegin();
1690 i.key ()->setTitle (i.value ().at (disable));
1698 QMenu *menu = p->addMenu (name);
1700 QString base_name =
name;
1702 base_name.replace (
"&&",
"___octave_amp_replacement___");
1704 base_name.remove (
"&");
1706 base_name.replace (
"___octave_amp_replacement___",
"&&");
1717 QMenu *file_menu =
m_add_menu (p, tr (
"&File"));
1724 _open_action->setShortcutContext (Qt::ApplicationShortcut);
1725 _open_action->setToolTip (tr (
"Open an existing file in editor"));
1727 #if defined (HAVE_QSCINTILLA)
1731 file_menu->addSeparator ();
1734 = file_menu->addAction (tr (
"Load Workspace..."));
1737 = file_menu->addAction (tr (
"Save Workspace As..."));
1739 file_menu->addSeparator ();
1742 _exit_action->setShortcutContext (Qt::ApplicationShortcut);
1744 #if defined (HAVE_QSCINTILLA)
1756 this, SLOT (close ()));
1762 QMenu *new_menu = p->addMenu (tr (
"New"));
1776 #if defined (HAVE_QSCINTILLA)
1791 QMenu *edit_menu =
m_add_menu (p, tr (
"&Edit"));
1793 QKeySequence ctrl_shift = Qt::ControlModifier + Qt::ShiftModifier;
1797 _undo_action->setShortcutContext (Qt::ApplicationShortcut);
1799 edit_menu->addSeparator ();
1804 _copy_action->setShortcutContext (Qt::ApplicationShortcut);
1809 _paste_action->setShortcutContext (Qt::ApplicationShortcut);
1812 = edit_menu->addAction (tr (
"Select All"),
this, SLOT (
selectAll ()));
1816 = edit_menu->addAction (tr (
"Clear Clipboard"),
this,
1819 edit_menu->addSeparator ();
1823 tr (
"Find Files..."));
1825 edit_menu->addSeparator ();
1828 = edit_menu->addAction (tr (
"Clear Command Window"));
1831 = edit_menu->addAction (tr (
"Clear Command History"));
1834 = edit_menu->addAction (tr (
"Clear Workspace"));
1836 edit_menu->addSeparator ();
1840 tr (
"Preferences..."));
1854 connect (
_clipboard, SIGNAL (changed (QClipboard::Mode)),
1870 action->setEnabled (
false);
1872 #if defined (HAVE_QSCINTILLA)
1886 "db-step", tr (
"Step"),
1890 "db-step-in", tr (
"Step In"),
1894 "db-step-out", tr (
"Step Out"),
1898 "db-cont", tr (
"Continue"),
1902 #if defined (HAVE_QSCINTILLA)
1907 "db-stop", tr (
"Quit Debug Mode"),
1913 bool checkable,
QWidget *widget)
1915 QAction *action = p->addAction (QIcon (), item);
1918 action->setCheckable (checkable);
1919 action->setShortcutContext (Qt::ApplicationShortcut);
1926 connect (action, SIGNAL (toggled (
bool)),
1927 widget, SLOT (setVisible (
bool)));
1929 connect (widget, SIGNAL (active_changed (
bool)),
1930 action, SLOT (setChecked (
bool)));
1935 connect (action, SIGNAL (triggered ()), widget, SLOT (focus ()));
1945 QMenu *window_menu =
m_add_menu (p, tr (
"&Window"));
1951 (window_menu, tr (
"Show Command History"),
true,
history_window);
1965 window_menu->addSeparator ();
1985 window_menu->addSeparator ();
1988 tr (
"Reset Default Window Layout"), SLOT (
reset_windows ()));
1994 QMenu *help_menu =
m_add_menu (p, tr (
"&Help"));
1998 help_menu->addSeparator ();
2012 help_menu->addSeparator ();
2021 QMenu *doc_menu = p->addMenu (tr (
"Documentation"));
2033 QMenu *news_menu =
m_add_menu (p, tr (
"&News"));
2067 QSizePolicy sizePol (QSizePolicy::Preferred, QSizePolicy::Preferred);
2072 _main_tool_bar->addWidget (
new QLabel (tr (
"Current Directory: ")));
2076 tr (
"One directory up"));
2079 tr (
"Browse directories"));
2087 connect (current_dir_search, SIGNAL (triggered ()),
2090 connect (current_dir_up, SIGNAL (triggered ()),
2186 connect (
find_files_dlg, SIGNAL (dir_selected (
const QString &)),
2188 SLOT (set_current_directory (
const QString&)));
2190 connect (
find_files_dlg, SIGNAL (file_selected (
const QString &)),
2191 this, SLOT (
open_file (
const QString &)));
2222 "main_file:load_workspace");
2224 "main_file:save_workspace");
2234 "main_edit:clear_clipboard");
2237 "main_edit:clear_history");
2239 "main_edit:clear_command_window");
2241 "main_edit:clear_workspace");
2252 "main_window:show_command");
2254 "main_window:show_history");
2256 "main_window:show_workspace");
2258 "main_window:show_file_browser");
2261 "main_window:show_doc");
2266 "main_window:file_browser");
2282 "main_news:release_notes");
2284 "main_news:community_news");
2304 QKeySequence no_key = QKeySequence ();
2346 list.append (static_cast<octave_dock_widget *> (
command_window));
2347 list.append (static_cast<octave_dock_widget *> (
history_window));
2350 #if defined (HAVE_QSCINTILLA)
2351 list.append (static_cast<octave_dock_widget *> (
editor_window));
2374 if (cp_mode == QClipboard::Clipboard)
QAction * _clear_command_history_action
void show_about_octave(void)
void handle_octave_ready()
void handle_undo_request(void)
QAction * _octave_packages_action
QAction * _online_doc_action
For example cd octave end example noindent changes the current working directory to file
void clear_history_callback(void)
void request_reload_settings()
void handle_insert_debugger_pointer_request(const QString &file, int line)
static void rename(const std::string &old_name, const std::string &new_name, scope_id scope=xcurrent_scope)
OCTINTERP_API octave_value_list Fsave(const octave_value_list &=octave_value_list(), int=0)
static const int current_directory_max_visible
void delete_debugger_pointer_signal(const QString &file, int line)
The value of lines which begin with a space character are not saved in the history list A value of all commands are saved on the history list
void pasteClipboard(void)
void disable_menu_shortcuts(bool disable)
virtual void insert_global_actions(QList< QAction * >)=0
QAction * _documentation_action
QAction * _workspace_action
virtual void empty_script(bool, bool)=0
void shutdown_confirmation(bool sd)
void set_global_shortcuts(bool enable)
OCTAVE_EXPORT octave_value_list isa nd deftypefn *return ovl(args(0).is_integer_type())
void set_search_dir(const QString &dir)
void construct_debug_menu(QMenuBar *p)
identity matrix If supplied two scalar respectively For allows like xample val
virtual bool check_closing(void)=0
void rename_variable_callback(const name_pair &names)
terminal_dock_widget * command_window
void handle_create_inputlayout(const QStringList &, const QString &, const QFloatList &, const QFloatList &, const QStringList &)
Return the CPU time used by your Octave session The first output is the total time spent executing your process and is equal to the sum of second and third which are the number of CPU seconds spent executing in user mode and the number of CPU seconds spent executing in system mode
void handle_create_filedialog(const QStringList &filters, const QString &title, const QString &filename, const QString &dirname, const QString &multimode)
void handle_clear_history_request(void)
main_window(QWidget *parent, octave::gui_application *app_context)
QAction * _reset_windows_action
void display_release_notes(void)
void open_file(const QString &file_name=QString())
OCTAVE_EXPORT octave_value_list page
QAction * _debug_step_into
QAction * _about_octave_action
bool command_window_has_focus(void) const
OCTINTERP_API octave_value_list Fdrawnow(const octave_value_list &=octave_value_list(), int=0)
QAction * construct_window_menu_item(QMenu *p, const QString &item, bool checkable, QWidget *)
bool _suppress_dbg_location
static QSettings * get_default_settings(void)
void open_file_signal(const QString &)
void exit_app(int status)
void copy_image_to_clipboard(const QString &file, bool remove_file)
QMenu * m_add_menu(QMenuBar *p, QString text)
QString fromStdString(const std::string &s)
QAction * _command_window_action
void clear_command_window_callback(void)
void handle_load_workspace_request(const QString &file=QString())
QAction * _show_documentation_action
QAction * _report_bug_action
octave::gui_application * m_app_context
QAction * add_action(QMenu *menu, const QIcon &icon, const QString &text, const char *member, const QWidget *receiver=0)
void show_doc_signal(const QString &)
static shortcut_manager * instance
void confirm_shutdown_octave(void)
QToolBar * _main_tool_bar
void display_community_news(const QString &news)
void write_settings(void)
void load_and_display_community_news(int serial=-1)
to define functions rather than attempting to enter them directly on the command line The block of commands is executed as soon as you exit the editor To avoid executing any simply delete all the lines from the buffer before leaving the editor When invoked with no edit the previously executed command
static file_editor_interface * create_default_editor(QWidget *p)
octave_dock_widget * _active_dock
file_editor_interface * editor_window
void browse_for_directory(void)
files_dock_widget * file_browser_window
void update_breakpoint_marker_signal(bool insert, const QString &file, int line, const QString &cond)
bool _prevent_readline_conflicts
workspace_view * workspace_window
void edit_mfile_request(const QString &, const QString &, const QString &, int)
void find_files_finished(int)
QAction * _preferences_action
void handle_clear_workspace_request(void)
void change_directory_callback(const std::string &directory)
void edit_mfile(const QString &, int)
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
#define OCTAVE_RELEASE_DATE
static void set_screen_size(int ht, int wd)
void accept_directory_line_edit(void)
QUIWidgetCreator uiwidget_creator
void message(const char *name, const char *fmt,...)
void resize_command_window_callback(void)
workspace_model * _workspace_model
QAction * _clear_clipboard_action
void set_screen_size(int ht, int wd)
OCTINTERP_API octave_value_list Fclear(const octave_value_list &=octave_value_list(), int=0)
void debug_step_into(void)
void construct_octave_qt_link(void)
void handle_create_dialog(const QString &message, const QString &title, const QString &icon, const QStringList &button, const QString &defbutton, const QStringList &role)
void setModel(workspace_model *model)
void command_window_undo_callback(void)
QHash< QMenu *, QStringList > _hash_menu_text
void handle_exit_debugger(void)
void open_octave_packages_page(void)
void change_directory(const QString &dir)
documentation_dock_widget * doc_browser_window
void handle_create_listview(const QStringList &list, const QString &mode, int width, int height, const QIntList &initial, const QString &name, const QStringList &prompt, const QString &ok_string, const QString &cancel_string)
void settings_changed(const QSettings *)
void open_donate_page(void)
OCTINTERP_API octave_value_list Fbuiltin(const octave_value_list &=octave_value_list(), int=0)
void add_cmd(octave_cmd *cmd)
Adds a new octave command to the command queue.
void notice_settings(const QSettings *settings)
static void resize_terminal(void)
QAction * _debug_step_over
QAction * _contribute_action
void update_directory(void)
static void set_workspace(void)
void connect_visibility_changed(void)
QAction * _new_script_action
void execute_command_in_terminal(const QString &dir)
void clipboard_has_changed(QClipboard::Mode)
virtual void enable_menu_shortcuts(bool enable)=0
OCTINTERP_API octave_value_list Fhistory(const octave_value_list &=octave_value_list(), int=0)
QComboBox * _current_directory_combo_box
QAction * _current_news_action
void construct_file_menu(QMenuBar *p)
void save_workspace_callback(const std::string &file)
static void connect_link(octave_link *)
static void post_event(T *obj, void(T::*method)(void))
void set_screen_size_callback(const int_pair &)
void new_figure_callback(void)
void copyClipboard_signal(void)
void clear_workspace_callback(void)
void closeEvent(QCloseEvent *closeEvent)
static const int current_directory_max_count
QPointer< settings_dialog > _settings_dlg
void configure_shortcuts()
QAction * _select_all_action
Array< std::string > param
void handle_update_breakpoint_marker_request(bool insert, const QString &file, int line, const QString &cond)
void process_settings_dialog_request(const QString &desired_tab=QString())
void display_news_signal(const QString &news)
QAction * _new_figure_action
void handle_rename_variable_request(const QString &old_name, const QString &new_name)
void connect_uiwidget_links(void)
QString _release_notes_icon
static QSettings * get_settings(void)
void load_workspace_callback(const std::string &file)
QAction * _show_editor_action
void construct_documentation_menu(QMenu *p)
void run_file_callback(const QFileInfo &info)
void selectAll_signal(void)
QAction * _show_file_browser_action
QAction * _new_function_action
void debug_continue(void)
void open_online_documentation_page(void)
void handle_show_doc(const QString &file)
QAction * _clear_workspace_action
void execute_octave_interpreter(void)
QAction * _debug_step_out
std::string octave_name_version_copyright_copying_warranty_and_bugs(bool html, const std::string &extra_info)
QAction * _developer_action
virtual QMenu * debug_menu()=0
std::pair< int, int > int_pair
void editor_focus_changed(bool)
bool focus_console_after_command()
QAction * _file_browser_action
static resource_manager * instance
virtual QMenu * get_mru_menu()=0
QAction * _release_notes_action
static void redisplay(void)
QAction * _clear_command_window_action
QAction * _find_files_action
void focus_command_window(void)
void set_window_layout(QSettings *settings)
void execute_interpreter(void)
void run_file_in_terminal(const QFileInfo &info)
void handle_new_figure_request(void)
void open_contribute_page(void)
QWidget * release_notes_window
void debug_step_over(void)
void open_bug_tracker_page(void)
=val(i)}if ode{val(i)}occurs in table i
void construct_news_menu(QMenuBar *p)
void debug_step_out(void)
history_dock_widget * history_window
QAction * _show_command_window_action
virtual void handle_enter_debug_mode(void)=0
void construct_menu_bar(void)
void construct_window_menu(QMenuBar *p)
void find_files(const QString &startdir=QDir::currentPath())
static QIcon icon(const QString &icon_name, bool fallback=true)
QAction * _history_action
QAction * _show_workspace_action
void handle_clear_command_window_request(void)
virtual void handle_exit_debug_mode(void)=0
static void kill_full_line(void)
static void update_network_settings(void)
void set_current_working_directory(const QString &dir)
void init_terminal_size(void)
void new_file(const QString &commands=QString())
QAction * _show_history_action
void construct_help_menu(QMenuBar *p)
void init_terminal_size_signal(void)
void active_dock_changed(octave_dock_widget *, octave_dock_widget *)
void construct_tool_bar(void)
QAction * _load_workspace_action
QAction * _debug_continue
QAction * construct_debug_menu_item(const char *icon, const QString &item, const char *member)
void focus_changed(QWidget *w_old, QWidget *w_new)
virtual QToolBar * toolbar()=0
QList< octave_dock_widget * > dock_widget_list()
void construct_new_menu(QMenu *p)
static std::list< workspace_element > workspace_info(scope_id scope=xcurrent_scope)
std::pair< std::string, std::string > name_pair
void new_file_signal(const QString &)
octave_command_queue _cmd_queue
void construct_edit_menu(QMenuBar *p)
void handle_enter_debugger(void)
void change_directory_up(void)
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
find_files_dialog * find_files_dlg
QWaitCondition waitcondition
void pasteClipboard_signal(void)
static void set_shortcut(QAction *action, const QString &key)
QWidget * community_news_window
QAction * _ondisk_doc_action
void prepare_to_exit(void)
void handle_save_workspace_request(void)
octave_qt_link * _octave_qt_link
charNDArray min(char d, const charNDArray &m)
static void clear_screen(bool skip_redisplay=false)
OCTINTERP_API octave_value_list Fload(const octave_value_list &=octave_value_list(), int=0)
to define functions rather than attempting to enter them directly on the command line The block of commands is executed as soon as you exit the editor To avoid executing any commands
OCTINTERP_API octave_value_list Fcd(const octave_value_list &=octave_value_list(), int=0)
void handle_delete_debugger_pointer_request(const QString &file, int line)
QAction * _save_workspace_action
void insert_debugger_pointer_signal(const QString &file, int line)
OCTAVE_EXPORT octave_value_list directory
void report_status_message(const QString &statusMessage)