28 #include <QKeySequence>
29 #include <QApplication>
37 #include <QDesktopServices>
38 #include <QDesktopWidget>
39 #include <QFileDialog>
40 #include <QMessageBox>
42 #include <QTextStream>
49 #ifdef HAVE_QSCINTILLA
69 #ifdef HAVE_QSCINTILLA
79 status_bar (start_gui ? new QStatusBar () : 0),
88 release_notes_window (0),
89 community_news_window (0),
91 _clipboard (QApplication::clipboard ()),
95 _dbg_queue (new QStringList ()),
98 _prevent_readline_conflicts (true),
99 _suppress_dbg_location (true),
100 _start_gui (start_gui)
104 bool connect_to_web =
true;
105 QDateTime last_checked;
112 = settings->value (
"news/allow_web_connection",
true).toBool ();
115 = settings->value (
"news/last_time_checked", QDateTime ()).toDateTime ();
117 serial = settings->value (
"news/last_news_item", 0).toInt ();
120 QDateTime current = QDateTime::currentDateTime ();
121 QDateTime one_day_ago = current.addDays (-1);
123 if (start_gui && connect_to_web
124 && (! last_checked.isValid () || one_day_ago > last_checked))
182 #ifdef HAVE_QSCINTILLA
183 if (qobject_cast <octave_qscintilla *> (w_new))
190 w_new = qobject_cast <
QWidget *> (w_new->previousInFocusChain ());
211 if (edit_dock_widget == dock)
247 status_bar->showMessage (statusMessage, 1000);
254 QFileDialog::getSaveFileName (
this, tr (
"Save Workspace As"),
".", 0, 0,
255 QFileDialog::DontUseNativeDialog);
257 if (! file.isEmpty ())
259 file.toStdString ());
265 QString file = file_arg;
268 file = QFileDialog::getOpenFileName (
this, tr (
"Load Workspace"),
".", 0, 0,
269 QFileDialog::DontUseNativeDialog);
271 if (! file.isEmpty ())
273 file.toStdString ());
284 const QString& new_name)
287 name_pair names (old_name.toStdString (), new_name.toStdString ());
318 return settings->value (
"terminal/focus_after_command",
false).toBool ();
365 QDesktopServices::openUrl (QUrl (
"http://octave.org/doc/interpreter"));
378 if (file->open (QFile::ReadOnly))
380 QTextStream *stream =
new QTextStream (file);
381 news = stream->readAll ();
382 if (! news.isEmpty ())
384 news.prepend (
"<pre>");
385 news.append (
"</pre>");
388 news = (tr (
"The release notes file '%1' is empty.")
392 news = (tr (
"The release notes file '%1' cannot be read.")
399 browser->setText (news);
401 QVBoxLayout *vlayout =
new QVBoxLayout;
402 vlayout->addWidget (browser);
407 browser->document()->adjustSize ();
410 QDesktopWidget *m_desktop = QApplication::desktop ();
411 int screen = m_desktop->screenNumber (
this);
412 QRect screen_geo = m_desktop->availableGeometry (screen);
413 int win_x = screen_geo.width ();
414 int win_y = screen_geo.height ();
415 int reln_x =
std::min (620, win_x-80);
416 int reln_y =
std::min (640, win_y-80);
444 std::ostringstream buf;
447 if (octave_dot_org.is_valid ())
450 octave_dot_org.http_get (param);
452 if (octave_dot_org.good ())
456 if (html_text.contains (
"this-is-the-gnu-octave-community-news-page"))
464 settings->setValue (
"news/last_time_checked",
465 QDateTime::currentDateTime ());
470 QString tag (
"community-news-page-serial=");
472 int b = html_text.indexOf (tag);
478 int e = html_text.indexOf (
"\n", b);
480 QString tmp = html_text.mid (b, e-b);
482 int curr_page_serial = tmp.toInt ();
484 if (curr_page_serial >
serial)
488 settings->setValue (
"news/last_news_item",
506 "Octave's community news source seems to be unavailable.\n"
509 "For the latest news, please check\n"
510 "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
511 "when you have a connection to the web (link opens in an external browser).\n"
524 "Connecting to the web to display the latest Octave Community news has been disabled.\n"
527 "For the latest news, please check\n"
528 "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
529 "when you have a connection to the web (link opens in an external browser)\n"
530 "or enable web connections for news in Octave's network settings dialog.\n"
550 ? settings->value (
"news/allow_web_connection",
true).toBool ()
553 QString base_url =
"http://octave.org";
554 QString page =
"community-news.html";
561 reader->moveToThread (worker_thread);
563 connect (reader, SIGNAL (display_news_signal (
const QString&)),
566 connect (worker_thread, SIGNAL (started (
void)),
567 reader, SLOT (process ()));
569 connect (reader, SIGNAL (finished (
void)), worker_thread, SLOT (quit ()));
571 connect (reader, SIGNAL (finished (
void)), reader, SLOT (deleteLater ()));
573 connect (worker_thread, SIGNAL (finished (
void)),
574 worker_thread, SLOT (deleteLater ()));
576 worker_thread->start ();
588 browser->setHtml (news);
589 browser->setObjectName (
"OctaveNews");
590 browser->setOpenExternalLinks (
true);
592 QVBoxLayout *vlayout =
new QVBoxLayout;
594 vlayout->addWidget (browser);
600 QDesktopWidget *m_desktop = QApplication::desktop ();
601 int screen = m_desktop->screenNumber (
this);
602 QRect screen_geo = m_desktop->availableGeometry (screen);
603 int win_x = screen_geo.width ();
604 int win_y = screen_geo.height ();
605 int news_x =
std::min (640, win_x-80);
606 int news_y =
std::min (480, win_y-80);
627 QDesktopServices::openUrl (QUrl (
"http://octave.org/bugs.html"));
633 QDesktopServices::openUrl (QUrl (
"http://octave.org/packages.html"));
639 QDesktopServices::openUrl (QUrl (
"http://agora.octave.org"));
645 QDesktopServices::openUrl (QUrl (
"http://octave.org/donate.html"));
651 QDesktopServices::openUrl (QUrl (
"http://octave.org/get-involved.html"));
659 if (! desired_tab.isEmpty ())
677 QClipboard *clipboard = QApplication::clipboard ();
687 clipboard->setImage (img);
690 QFile::remove (file);
709 = settings->value (
"DockWidgets/widget_icon_set",
"NONE").toString ();
721 {
"NONE",
":/actions/icons/logo.png"},
722 {
"GRAPHIC",
":/actions/icons/graphic_logo_"},
723 {
"LETTER",
":/actions/icons/letter_logo_"},
728 int icon_set_found = 0;
730 while (!widget_icon_data[count].name.isEmpty ())
733 if (widget_icon_data[count].name == icon_set)
736 icon_set_found = count;
745 QString name = widget->objectName ();
746 if (! name.isEmpty ())
748 icon = widget_icon_data[icon_set_found].path;
749 if (widget_icon_data[icon_set_found].name !=
"NONE")
750 icon = icon + name +
".png";
751 widget->setWindowIcon (QIcon (icon));
754 if (widget_icon_data[icon_set_found].name !=
"NONE")
756 +
"ReleaseWidget.png";
760 int icon_size_settings = settings->value (
"toolbar_icon_size",0).toInt ();
761 QStyle *st = style ();
762 int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
764 if (icon_size_settings == 1)
765 icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
766 else if (icon_size_settings == -1)
767 icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
771 if (settings->value (
"show_status_bar",
true).toBool ())
777 settings->value (
"shortcuts/prevent_readline_conflicts",
true).toBool ();
780 ! settings->value (
"terminal/print_debug_location",
false).toBool ();
794 bool closenow =
true;
800 if (settings->value (
"prompt_to_exit",
false).toBool ())
802 int ans = QMessageBox::question (
this, tr (
"Octave"),
803 tr (
"Are you sure you want to exit Octave?"),
804 QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
806 if (ans != QMessageBox::Ok)
810 #ifdef HAVE_QSCINTILLA
869 = QFileDialog::getExistingDirectory (
this, tr (
"Browse directories"), 0,
870 QFileDialog::ShowDirsOnly |
871 QFileDialog::DontUseNativeDialog);
886 QString xdir = dir.isEmpty () ?
"." : dir;
888 QFileInfo fileInfo (xdir);
890 if (fileInfo.exists () && fileInfo.isDir ())
892 xdir.toStdString ());
923 setWindowTitle (
"Octave (Debugging)");
931 #ifdef HAVE_QSCINTILLA
939 setWindowTitle (
"Octave");
947 #ifdef HAVE_QSCINTILLA
1008 const QString& file,
1025 QMessageBox::about (
this, tr (
"About Octave"),
1044 qDebug (
"Error: QSettings pointer from resource manager is NULL.");
1051 QStringList curr_dirs
1052 = settings->value (
"MainWindow/current_directory_list").toStringList ();
1053 for (
int i=0; i < curr_dirs.size (); i++)
1069 #if ! defined (Q_OS_WIN32)
1070 restoreState (settings->value (
"MainWindow/windowState").toByteArray ());
1071 restoreGeometry (settings->value (
"MainWindow/geometry").toByteArray ());
1077 QString name = widget->objectName ();
1079 if (! name.isEmpty ())
1081 bool floating = settings->value
1082 (
"DockWidgets/" + name +
"Floating",
false).toBool ();
1083 bool visible = settings->value
1084 (
"DockWidgets/" + name +
"Visible",
true).toBool ();
1089 else if (! widget->parent ())
1091 #if ! defined (Q_OS_WIN32)
1093 QVariant val = settings->value (
"DockWidgets/" + name);
1094 widget->restoreGeometry (val.toByteArray ());
1097 if (floating && visible)
1099 if (settings->value (
"DockWidgets/" + widget->objectName () +
"_minimized").toBool ())
1100 widget->showMinimized ();
1102 widget->setVisible (
true);
1107 widget->setVisible (visible);
1112 #if defined (Q_OS_WIN32)
1113 restoreState (settings->value (
"MainWindow/windowState").toByteArray ());
1114 restoreGeometry (settings->value (
"MainWindow/geometry").toByteArray ());
1126 qDebug (
"Error: QSettings pointer from resource manager is NULL.");
1130 settings->setValue (
"MainWindow/geometry", saveGeometry ());
1131 settings->setValue (
"MainWindow/windowState", saveState ());
1133 QStringList curr_dirs;
1138 settings->setValue (
"MainWindow/current_directory_list", curr_dirs);
1151 #ifdef HAVE_QSCINTILLA
1162 if (edit && edit->hasSelectedText ())
1164 QClipboard *clipboard = QApplication::clipboard ();
1165 clipboard->setText (edit->selectedText ());
1178 QClipboard *clipboard = QApplication::clipboard ();
1179 QString str = clipboard->text ();
1180 if (edit && str.length () > 0)
1214 SIGNAL (create_dialog (
const QString&,
const QString&,
1215 const QString&,
const QStringList&,
1216 const QString&,
const QStringList&)),
1219 const QString&,
const QStringList&,
1220 const QString&,
const QStringList&)));
1223 qRegisterMetaType<QIntList> (
"QIntList");
1225 SIGNAL (create_listview (
const QStringList&,
const QString&,
1227 const QString&,
const QStringList&,
1228 const QString&,
const QString&)),
1232 const QString&,
const QStringList&,
1233 const QString&,
const QString&)));
1236 qRegisterMetaType<QFloatList> (
"QFloatList");
1238 SIGNAL (create_inputlayout (
const QStringList&,
const QString&,
1240 const QStringList&)),
1245 const QStringList&)));
1248 SIGNAL (create_filedialog (
const QStringList &,
const QString&,
1249 const QString&,
const QString&,
1253 const QString&,
const QString&,
1262 const QString& title,
1263 const QString& icon,
1264 const QStringList& button,
1265 const QString& defbutton,
1266 const QStringList& role)
1269 button, defbutton, role);
1270 message_dialog->setAttribute (Qt::WA_DeleteOnClose);
1271 message_dialog->show ();
1279 const QString& mode,
1282 const QString& name,
1283 const QStringList& prompt,
1284 const QString& ok_string,
1285 const QString& cancel_string)
1288 initial, name, prompt,
1289 ok_string, cancel_string);
1291 list_dialog->setAttribute (Qt::WA_DeleteOnClose);
1292 list_dialog->show ();
1299 const QString& title,
1302 const QStringList& defaults)
1307 input_dialog->setAttribute (Qt::WA_DeleteOnClose);
1308 input_dialog->show ();
1313 const QString& title,
1314 const QString& filename,
1315 const QString& dirname,
1316 const QString& multimode)
1319 dirname, multimode);
1321 file_dialog->setAttribute (Qt::WA_DeleteOnClose);
1322 file_dialog->show ();
1336 dummyWidget->setObjectName (
"CentralDummyWidget");
1337 dummyWidget->resize (10, 10);
1338 dummyWidget->setSizePolicy (QSizePolicy::Minimum, QSizePolicy::Minimum);
1339 dummyWidget->hide ();
1340 setCentralWidget (dummyWidget);
1348 setWindowIcon (QIcon (
":/actions/icons/logo.png"));
1358 connect (qApp, SIGNAL (aboutToQuit ()),
1379 setWindowTitle (
"Octave");
1381 setDockOptions (QMainWindow::AnimatedDocks
1382 | QMainWindow::AllowNestedDocks
1383 | QMainWindow::AllowTabbedDocks);
1389 #ifdef HAVE_QSCINTILLA
1398 int win_x = QApplication::desktop ()->width ();
1399 int win_y = QApplication::desktop ()->height ();
1407 setGeometry (0, 0, win_x, win_y);
1411 #ifdef HAVE_QSCINTILLA
1452 QDir startup_dir = QDir ();
1456 if (settings->value (
"restore_octave_dir").toBool ())
1459 QStringList curr_dirs
1460 = settings->value (
"MainWindow/current_directory_list").toStringList ();
1461 startup_dir = QDir (curr_dirs.at (0));
1463 else if (! settings->value (
"octave_startup_dir").toString ().isEmpty ())
1466 startup_dir = QDir (settings->value (
"octave_startup_dir").toString ());
1470 if (! startup_dir.exists ())
1473 startup_dir = QDir ();
1480 #ifdef HAVE_QSCINTILLA
1508 SIGNAL (set_workspace_signal
1509 (
bool,
bool,
const QString&,
const QStringList&,
1510 const QStringList&,
const QStringList&,
1511 const QStringList&,
const QIntList&)),
1514 (
bool,
bool,
const QString&,
const QStringList&,
1515 const QStringList&,
const QStringList&,
1516 const QStringList&,
const QIntList&)));
1529 SIGNAL (execute_command_in_terminal_signal (QString)),
1533 SIGNAL (set_history_signal (
const QStringList&)),
1537 SIGNAL (append_history_signal (
const QString&)),
1541 SIGNAL (clear_history_signal (
void)),
1551 SIGNAL (show_preferences_signal (
void)),
1555 SIGNAL (copy_image_to_clipboard_signal (
const QString&,
bool)),
1558 #ifdef HAVE_QSCINTILLA
1560 SIGNAL (edit_file_signal (
const QString&)),
1562 SLOT (handle_edit_file_request (
const QString&)));
1586 SIGNAL (rename_variable (
const QString&,
const QString&)),
1620 const char *member,
const QWidget *receiver)
1625 a = menu->addAction (icon, text, receiver, member);
1627 a = menu->addAction (icon, text,
this, member);
1630 a->setShortcutContext (Qt::ApplicationShortcut);
1637 QHash<QMenu*, QStringList>::const_iterator i =
_hash_menu_text.constBegin();
1641 i.key ()->setTitle (i.value ().at (! enable));
1649 QMenu *menu = p->addMenu (name);
1651 QString base_name = name;
1653 base_name.replace (
"&&",
"___octave_amp_replacement___");
1655 base_name.remove (
"&");
1657 base_name.replace (
"___octave_amp_replacement___",
"&&");
1668 QMenu *file_menu =
m_add_menu (p, tr (
"&File"));
1675 _open_action->setShortcutContext (Qt::ApplicationShortcut);
1676 _open_action->setToolTip (tr (
"Open an existing file in editor"));
1678 #ifdef HAVE_QSCINTILLA
1686 file_menu->addSeparator ();
1689 = file_menu->addAction (tr (
"Load Workspace..."));
1692 = file_menu->addAction (tr (
"Save Workspace As..."));
1694 file_menu->addSeparator ();
1697 _exit_action->setShortcutContext (Qt::ApplicationShortcut);
1699 #ifdef HAVE_QSCINTILLA
1711 this, SLOT (close ()));
1717 QMenu *new_menu = p->addMenu (tr (
"New"));
1731 #ifdef HAVE_QSCINTILLA
1746 QMenu *edit_menu =
m_add_menu (p, tr (
"&Edit"));
1748 QKeySequence ctrl_shift = Qt::ControlModifier + Qt::ShiftModifier;
1753 edit_menu->addSeparator ();
1764 = edit_menu->addAction (tr (
"Select All"),
this, SLOT (
selectAll ()));
1767 = edit_menu->addAction (tr (
"Clear Clipboard"),
this,
1770 edit_menu->addSeparator ();
1774 tr (
"Find Files..."));
1776 edit_menu->addSeparator ();
1779 = edit_menu->addAction (tr (
"Clear Command Window"));
1782 = edit_menu->addAction (tr (
"Clear Command History"));
1785 = edit_menu->addAction (tr (
"Clear Workspace"));
1787 edit_menu->addSeparator ();
1791 tr (
"Preferences..."));
1805 connect (
_clipboard, SIGNAL (changed (QClipboard::Mode)),
1821 action->setEnabled (
false);
1823 #ifdef HAVE_QSCINTILLA
1837 "db-step", tr (
"Step"),
1841 "db-step-in", tr (
"Step In"),
1845 "db-step-out", tr (
"Step Out"),
1849 "db-cont", tr (
"Continue"),
1853 #ifdef HAVE_QSCINTILLA
1858 "db-stop", tr (
"Quit Debug Mode"),
1864 bool checkable,
QWidget *widget)
1866 QAction *action = p->addAction (QIcon (), item);
1869 action->setCheckable (checkable);
1870 action->setShortcutContext (Qt::ApplicationShortcut);
1877 connect (action, SIGNAL (toggled (
bool)),
1878 widget, SLOT (setVisible (
bool)));
1880 connect (widget, SIGNAL (active_changed (
bool)),
1881 action, SLOT (setChecked (
bool)));
1886 connect (action, SIGNAL (triggered ()), widget, SLOT (focus ()));
1896 QMenu *window_menu =
m_add_menu (p, tr (
"&Window"));
1902 (window_menu, tr (
"Show Command History"),
true,
history_window);
1916 window_menu->addSeparator ();
1936 window_menu->addSeparator ();
1939 tr (
"Reset Default Window Layout"), SLOT (
reset_windows ()));
1945 QMenu *help_menu =
m_add_menu (p, tr (
"&Help"));
1949 help_menu->addSeparator ();
1966 help_menu->addSeparator ();
1975 QMenu *doc_menu = p->addMenu (tr (
"Documentation"));
1987 QMenu *news_menu =
m_add_menu (p, tr (
"&News"));
2021 QSizePolicy sizePol (QSizePolicy::Preferred, QSizePolicy::Preferred);
2026 _main_tool_bar->addWidget (
new QLabel (tr (
"Current Directory: ")));
2030 tr (
"One directory up"));
2033 tr (
"Browse directories"));
2041 connect (current_dir_search, SIGNAL (triggered ()),
2044 connect (current_dir_up, SIGNAL (triggered ()),
2118 bool repost =
false;
2177 bool repost =
false;
2189 if (debug ==
"step")
2194 else if (debug ==
"cont")
2199 else if (debug ==
"quit")
2226 connect (
find_files_dlg, SIGNAL (dir_selected (
const QString &)),
2228 SLOT (set_current_directory (
const QString&)));
2230 connect (
find_files_dlg, SIGNAL (file_selected (
const QString &)),
2231 this, SLOT (
open_file (
const QString &)));
2257 if (editor_has_focus)
2260 QKeySequence no_key = QKeySequence ();
2288 "main_file:load_workspace");
2290 "main_file:save_workspace");
2300 "main_edit:clear_clipboard");
2303 "main_edit:clear_history");
2305 "main_edit:clear_command_window");
2307 "main_edit:clear_workspace");
2318 "main_window:show_command");
2320 "main_window:show_history");
2322 "main_window:show_workspace");
2324 "main_window:show_file_browser");
2327 "main_window:show_doc");
2332 "main_window:file_browser");
2349 "main_news:release_notes");
2351 "main_news:community_news");
2371 QKeySequence no_key = QKeySequence ();
2427 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
void clear_history_callback(void)
void execute_command_callback()
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)
QSemaphore _cmd_processing
static const int current_directory_max_visible
void delete_debugger_pointer_signal(const QString &file, int line)
OCTINTERP_API octave_value_list Fdbcont(const octave_value_list &=octave_value_list(), int=0)
void pasteClipboard(void)
QAction * _documentation_action
static void set_screen_size(int ht, int wd)
QAction * _workspace_action
void queue_command(octave_cmd *cmd)
virtual void empty_script(bool, bool)=0
void shutdown_confirmation(bool sd)
void set_global_shortcuts(bool enable)
void set_search_dir(const QString &dir)
void construct_debug_menu(QMenuBar *p)
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 &)
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)
QAction * _reset_windows_action
void display_release_notes(void)
void open_file(const QString &file_name=QString())
QAction * _debug_step_into
QAction * _about_octave_action
QList< octave_dock_widget * > dock_widget_list()
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
static string_vector names(const map_type &lst)
QAction * _report_bug_action
QAction * add_action(QMenu *menu, const QIcon &icon, const QString &text, const char *member, const QWidget *receiver=0)
void show_doc_signal(const QString &)
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)
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
QList< octave_cmd * > _cmd_queue
bool _prevent_readline_conflicts
workspace_view * workspace_window
void find_files_finished(int)
QAction * _preferences_action
void handle_clear_workspace_request(void)
void change_directory_callback(const std::string &directory)
void update_breakpoint_marker_signal(bool insert, const QString &file, int line)
#define OCTAVE_RELEASE_DATE
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
static void resize_terminal(void)
OCTINTERP_API octave_value_list Fdbstep(const octave_value_list &=octave_value_list(), int=0)
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 *)
OCTINTERP_API octave_value_list Fbuiltin(const octave_value_list &=octave_value_list(), int=0)
void notice_settings(const QSettings *settings)
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 execute_debug_callback()
static std::list< workspace_element > workspace_info(void)
void construct_file_menu(QMenuBar *p)
OCTINTERP_API octave_value_list Fdbquit(const octave_value_list &=octave_value_list(), int=0)
void save_workspace_callback(const std::string &file)
void open_developer_page(void)
static void connect_link(octave_link *)
static bool interrupt(bool=true)
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 queue_debug(QString command)
void configure_shortcuts()
QAction * _select_all_action
void enable_menu_shortcuts(bool enable)
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)
static void kill_full_line(void)
void connect_uiwidget_links(void)
main_window(QWidget *parent=0, bool start_gui=true)
QString _release_notes_icon
static QSettings * get_settings(void)
void load_workspace_callback(const std::string &file)
OCTINTERP_API octave_value_list F__db_next_breakpoint_quiet__(const octave_value_list &=octave_value_list(), int=0)
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
QAction * _debug_step_out
static void clear_screen(bool skip_redisplay=false)
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
virtual QMenu * get_mru_menu()=0
QAction * _release_notes_action
QAction * _clear_command_window_action
QAction * _find_files_action
octave_value_list ovl(const octave_value &a0)
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)
virtual void insert_new_open_actions(QAction *, QAction *, QAction *)=0
void open_contribute_page(void)
QWidget * release_notes_window
void debug_step_over(void)
void open_bug_tracker_page(void)
void construct_news_menu(QMenuBar *p)
QSemaphore _dbg_processing
void debug_step_out(void)
history_dock_widget * history_window
static void redisplay(void)
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 update_network_settings(void)
void set_current_working_directory(const QString &dir)
void open_agora_page(void)
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
void construct_new_menu(QMenu *p)
std::pair< std::string, std::string > name_pair
void new_file_signal(const QString &)
void construct_edit_menu(QMenuBar *p)
void handle_enter_debugger(void)
void change_directory_up(void)
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)
void add_actions_signal(QList< QAction * > action_list)
OCTINTERP_API octave_value_list Fload(const octave_value_list &=octave_value_list(), int=0)
void handle_update_breakpoint_marker_request(bool insert, const QString &file, int line)
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)
void set_global_edit_shortcuts(bool enable)
QAction * _save_workspace_action
void insert_debugger_pointer_signal(const QString &file, int line)
void report_status_message(const QString &statusMessage)