Mercurial > hg > octave-nkf
changeset 18355:9d62b5f041ee
maint: Periodic merge of gui-release to default.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 20 Jan 2014 01:41:26 -0500 |
parents | c1baf94184af (current diff) 7ac2a8b758fc (diff) |
children | 06eb893b9db6 |
files | libinterp/parse-tree/lex.ll |
diffstat | 16 files changed, 1929 insertions(+), 1320 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc +++ b/libgui/src/files-dock-widget.cc @@ -155,8 +155,29 @@ QSettings *settings = resource_manager::get_settings (); // FIXME: what should happen if settings is 0? - // Create the QFileSystemModel starting in the actual directory - QDir curr_dir; + // Create the QFileSystemModel starting in the desired directory + QDir startup_dir; // take current dir + + if (settings->value ("filesdockwidget/restore_last_dir",false).toBool ()) + { + // restore last dir from previous session + QStringList last_dirs + = settings->value ("filesdockwidget/mru_dir_list").toStringList (); + if (last_dirs.length () > 0) + startup_dir = QDir (last_dirs.at (0)); // last dir in previous session + } + else if (! settings->value ("filesdockwidget/startup_dir").toString ().isEmpty ()) + { + // do not restore but there is a startup dir configured + startup_dir = QDir (settings->value ("filesdockwidget/startup_dir").toString ()); + } + + if (! startup_dir.exists ()) + { + // the configured startup dir does not exist, take actual one + startup_dir = QDir (); + } + _file_system_model = new QFileSystemModel (this); if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ()) { @@ -168,7 +189,7 @@ _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries); } QModelIndex rootPathIndex = _file_system_model->setRootPath ( - curr_dir.absolutePath ()); + startup_dir.absolutePath ()); // Attach the model to the QTreeView and set the root index _file_tree_view = new FileTreeViewer (container);
--- a/libgui/src/m-editor/file-editor-tab.cc +++ b/libgui/src/m-editor/file-editor-tab.cc @@ -746,6 +746,25 @@ } void +file_editor_tab::indent_selected_text (const QWidget *ID) +{ + if (ID != this) + return; + + do_indent_selected_text (true); +} + +void +file_editor_tab::unindent_selected_text (const QWidget *ID) +{ + if (ID != this) + return; + + do_indent_selected_text (false); +} + + +void file_editor_tab::handle_find_dialog_finished (int) { // Find dialog is going to hide. Save location of window for @@ -813,6 +832,43 @@ _edit_area->setCursorPosition (line-1, 0); } +void +file_editor_tab::do_indent_selected_text (bool indent) +{ + // TODO + _edit_area->beginUndoAction (); + + if (_edit_area->hasSelectedText ()) + { + int lineFrom, lineTo, colFrom, colTo; + _edit_area->getSelection (&lineFrom, &colFrom, &lineTo, &colTo); + + if (colTo == 0) // the beginning of last line is not selected + lineTo--; // stop at line above + + for (int i = lineFrom; i <= lineTo; i++) + { + if (indent) + _edit_area->indent (i); + else + _edit_area->unindent (i); + } + //set selection on (un)indented section + _edit_area->setSelection (lineFrom, 0, lineTo, + _edit_area->text (lineTo).length ()); + } + else + { + int cpline, col; + _edit_area->getCursorPosition (&cpline, &col); + if (indent) + _edit_area->indent (cpline); + else + _edit_area->unindent (cpline); + } + + _edit_area->endUndoAction (); +} void file_editor_tab::do_comment_selected_text (bool comment) @@ -1011,6 +1067,7 @@ return file.errorString (); QTextStream in (&file); + in.setCodec("UTF-8"); QApplication::setOverrideCursor (Qt::WaitCursor); _edit_area->setText (in.readAll ()); QApplication::restoreOverrideCursor (); @@ -1077,6 +1134,7 @@ // save the contents into the file QTextStream out (&file); + out.setCodec("UTF-8"); QApplication::setOverrideCursor (Qt::WaitCursor); out << _edit_area->text (); out.flush ();
--- a/libgui/src/m-editor/file-editor-tab.h +++ b/libgui/src/m-editor/file-editor-tab.h @@ -93,6 +93,10 @@ void comment_selected_text (const QWidget *ID); void uncomment_selected_text (const QWidget *ID); + + void indent_selected_text (const QWidget *ID); + void unindent_selected_text (const QWidget *ID); + void find (const QWidget *ID); void goto_line (const QWidget *ID, int line = -1); @@ -186,6 +190,7 @@ int check_file_modified (); void do_comment_selected_text (bool comment); QString comment_string (const QString&); + void do_indent_selected_text (bool indent); void add_breakpoint_callback (const bp_info& info); void remove_breakpoint_callback (const bp_info& info);
--- a/libgui/src/m-editor/file-editor.cc +++ b/libgui/src/m-editor/file-editor.cc @@ -670,6 +670,19 @@ } void +file_editor::request_indent_selected_text (void) +{ + emit fetab_indent_selected_text (_tab_widget->currentWidget ()); +} + +void +file_editor::request_unindent_selected_text (void) +{ + emit fetab_unindent_selected_text (_tab_widget->currentWidget ()); +} + + +void file_editor::request_find (void) { emit fetab_find (_tab_widget->currentWidget ()); @@ -843,7 +856,7 @@ int icon_size = settings->value ("toolbar_icon_size", 16).toInt (); _tool_bar->setIconSize (QSize (icon_size, icon_size)); - int tab_width = settings->value ("editor/tab_width", 300).toInt (); + int tab_width = settings->value ("editor/notebook_tab_width", 300).toInt (); QString style_sheet = QString ("QTabBar::tab {max-height: 4ex; " "max-width: %1px; text-align: right }"). arg (tab_width); @@ -945,6 +958,11 @@ _uncomment_selection_action = new QAction (tr ("&Uncomment"), _tool_bar); + _indent_selection_action + = new QAction (tr ("&Indent"), _tool_bar); + _unindent_selection_action + = new QAction (tr ("&Unindent"), _tool_bar); + _find_action = new QAction (QIcon (":/actions/icons/find.png"), tr ("&Find and Replace..."), _tool_bar); @@ -978,6 +996,8 @@ _toggle_bookmark_action->setShortcutContext (Qt::WindowShortcut); _comment_selection_action->setShortcutContext (Qt::WindowShortcut); _uncomment_selection_action->setShortcutContext (Qt::WindowShortcut); + _indent_selection_action->setShortcutContext (Qt::WindowShortcut); + _unindent_selection_action->setShortcutContext (Qt::WindowShortcut); _find_action->setShortcutContext (Qt::WindowShortcut); _goto_line_action->setShortcutContext (Qt::WindowShortcut); @@ -1058,6 +1078,9 @@ editMenu->addAction (_comment_selection_action); editMenu->addAction (_uncomment_selection_action); editMenu->addSeparator (); + editMenu->addAction (_indent_selection_action); + editMenu->addAction (_unindent_selection_action); + editMenu->addSeparator (); editMenu->addAction (_toggle_bookmark_action); editMenu->addAction (_next_bookmark_action); editMenu->addAction (_previous_bookmark_action); @@ -1187,6 +1210,12 @@ connect (_uncomment_selection_action, SIGNAL (triggered ()), this, SLOT (request_uncomment_selected_text ())); + connect (_indent_selection_action, SIGNAL (triggered ()), + this, SLOT (request_indent_selected_text ())); + + connect (_unindent_selection_action, SIGNAL (triggered ()), + this, SLOT (request_unindent_selected_text ())); + connect (_find_action, SIGNAL (triggered ()), this, SLOT (request_find ())); @@ -1340,6 +1369,12 @@ connect (this, SIGNAL (fetab_uncomment_selected_text (const QWidget*)), f, SLOT (uncomment_selected_text (const QWidget*))); + connect (this, SIGNAL (fetab_indent_selected_text (const QWidget*)), + f, SLOT (indent_selected_text (const QWidget*))); + + connect (this, SIGNAL (fetab_unindent_selected_text (const QWidget*)), + f, SLOT (unindent_selected_text (const QWidget*))); + connect (this, SIGNAL (fetab_find (const QWidget*)), f, SLOT (find (const QWidget*))); @@ -1395,6 +1430,11 @@ + Qt::ControlModifier + Qt::Key_R); + _indent_selection_action->setShortcut (Qt::ControlModifier + Qt::Key_Tab); + _unindent_selection_action->setShortcut (Qt::SHIFT + + Qt::ControlModifier + + Qt::Key_Tab); + _copy_action->setShortcut (QKeySequence::Copy); _cut_action->setShortcut (QKeySequence::Cut); _paste_action->setShortcut (QKeySequence::Paste); @@ -1427,6 +1467,9 @@ _comment_selection_action->setShortcut (no_key); _uncomment_selection_action->setShortcut (no_key); + _indent_selection_action->setShortcut (no_key); + _unindent_selection_action->setShortcut (no_key); + _copy_action->setShortcut (no_key); _cut_action->setShortcut (no_key); _paste_action->setShortcut (no_key); @@ -1461,6 +1504,9 @@ _comment_selection_action->setEnabled (have_tabs); _uncomment_selection_action->setEnabled (have_tabs); + _indent_selection_action->setEnabled (have_tabs); + _unindent_selection_action->setEnabled (have_tabs); + _paste_action->setEnabled (have_tabs); _context_help_action->setEnabled (have_tabs); _context_doc_action->setEnabled (have_tabs);
--- a/libgui/src/m-editor/file-editor.h +++ b/libgui/src/m-editor/file-editor.h @@ -91,6 +91,8 @@ void fetab_remove_all_breakpoints (const QWidget* ID); void fetab_comment_selected_text (const QWidget* ID); void fetab_uncomment_selected_text (const QWidget* ID); + void fetab_indent_selected_text (const QWidget* ID); + void fetab_unindent_selected_text (const QWidget* ID); void fetab_find (const QWidget* ID); void fetab_goto_line (const QWidget* ID, int line = -1); void fetab_insert_debugger_pointer (const QWidget* ID, int line = -1); @@ -139,6 +141,10 @@ void request_comment_selected_text (void); void request_uncomment_selected_text (void); + + void request_indent_selected_text (void); + void request_unindent_selected_text (void); + void request_find (void); void request_goto_line (void); @@ -201,6 +207,9 @@ QAction *_comment_selection_action; QAction *_uncomment_selection_action; + QAction *_indent_selection_action; + QAction *_unindent_selection_action; + QAction *_copy_action; QAction *_cut_action; QAction *_paste_action;
--- a/libgui/src/main-window.cc +++ b/libgui/src/main-window.cc @@ -1261,19 +1261,48 @@ int))); #endif - QDir curr_dir; - set_current_working_directory (curr_dir.absolutePath ()); - octave_link::post_event (this, &main_window::resize_command_window_callback); set_global_shortcuts (true); } + +void +main_window::handle_octave_ready () +{ + // actions after the startup files are executed + QSettings *settings = resource_manager::get_settings (); + + QDir startup_dir = QDir (); // current octave dir after startup + + if (settings->value ("restore_octave_dir").toBool ()) + { + // restore last dir from previous session + QStringList curr_dirs + = settings->value ("MainWindow/current_directory_list").toStringList (); + startup_dir = QDir (curr_dirs.at (0)); // last dir in previous session + } + else if (! settings->value ("octave_startup_dir").toString ().isEmpty ()) + { + // do not restore but there is a startup dir configured + startup_dir = QDir (settings->value ("octave_startup_dir").toString ()); + } + + if (! startup_dir.exists ()) + { + // the configured startup dir does not exist, take actual one + startup_dir = QDir (); + } + + set_current_working_directory (startup_dir.absolutePath ()); +} + + void main_window::construct_octave_qt_link (void) { - _octave_qt_link = new octave_qt_link (); + _octave_qt_link = new octave_qt_link (this); connect (_octave_qt_link, SIGNAL (exit_signal (int)), this, SLOT (exit (int)));
--- a/libgui/src/main-window.h +++ b/libgui/src/main-window.h @@ -185,6 +185,8 @@ void handle_show_doc (const QString &file); + void handle_octave_ready (); + // find files dialog void find_files (const QString &startdir=QDir::currentPath ()); void find_files_finished (int);
--- a/libgui/src/octave-interpreter.cc +++ b/libgui/src/octave-interpreter.cc @@ -43,6 +43,8 @@ octave_initialize_interpreter (octave_cmdline_argc, octave_cmdline_argv, octave_embedded); + emit octave_ready_signal (); + octave_execute_interpreter (); }
--- a/libgui/src/octave-interpreter.h +++ b/libgui/src/octave-interpreter.h @@ -38,6 +38,10 @@ octave_interpreter (void) : QObject (), thread_manager () { } +signals: + + void octave_ready_signal (); + public slots: // Initialize and execute the octave interpreter.
--- a/libgui/src/octave-qt-link.cc +++ b/libgui/src/octave-qt-link.cc @@ -43,13 +43,16 @@ #include "resource-manager.h" -octave_qt_link::octave_qt_link (void) +octave_qt_link::octave_qt_link (QWidget *p) : octave_link (), main_thread (new QThread ()), command_interpreter (new octave_interpreter ()) { connect (this, SIGNAL (execute_interpreter_signal (void)), command_interpreter, SLOT (execute (void))); + connect (command_interpreter, SIGNAL (octave_ready_signal ()), + p, SLOT (handle_octave_ready ())); + command_interpreter->moveToThread (main_thread); main_thread->start ();
--- a/libgui/src/octave-qt-link.h +++ b/libgui/src/octave-qt-link.h @@ -53,7 +53,7 @@ public: - octave_qt_link (void); + octave_qt_link (QWidget *p); ~octave_qt_link (void);
--- a/libgui/src/settings-dialog.cc +++ b/libgui/src/settings-dialog.cc @@ -30,6 +30,7 @@ #include "ui-settings-dialog.h" #include <QDir> #include <QFileInfo> +#include <QFileDialog> #include <QVector> #include <QHash> @@ -57,7 +58,9 @@ ui->setupUi (this); QSettings *settings = resource_manager::get_settings (); - // FIXME: what should happen if settings is 0? + + // restore last geometry + restoreGeometry (settings->value("settings/geometry").toByteArray ()); // look for available language files and the actual settings QString qm_dir_name = resource_manager::get_gui_translation_dir (); @@ -112,6 +115,14 @@ ui->cb_widget_custom_style->setChecked ( settings->value ("DockWidgets/widget_title_custom_style",false).toBool ()); + // Octave startup + ui->cb_restore_octave_dir->setChecked ( + settings->value ("restore_octave_dir",false).toBool ()); + ui->le_octave_dir->setText ( + settings->value ("octave_startup_dir").toString ()); + connect (ui->pb_octave_dir, SIGNAL (pressed ()), + this, SLOT (get_octave_dir ())); + // editor ui->useCustomFileEditor->setChecked (settings->value ("useCustomFileEditor", false).toBool ()); @@ -162,8 +173,8 @@ settings->value ("editor/tab_width", 2).toInt ()); ui->editor_longWindowTitle->setChecked ( settings->value ("editor/longWindowTitle",false).toBool ()); - ui->editor_tab_width->setValue ( - settings->value ("editor/tab_width", 300).toInt ()); + ui->editor_notebook_tab_width->setValue ( + settings->value ("editor/notebook_tab_width", 300).toInt ()); ui->editor_restoreSession->setChecked ( settings->value ("editor/restoreSession", true).toBool ()); ui->editor_create_new_file->setChecked ( @@ -172,6 +183,8 @@ settings->value ("terminal/fontName","Courier New").toString ()) ); ui->terminal_fontSize->setValue ( settings->value ("terminal/fontSize", 10).toInt ()); + + // file browser ui->showFileSize->setChecked ( settings->value ("filesdockwidget/showFileSize", false).toBool ()); ui->showFileType->setChecked ( @@ -182,8 +195,17 @@ settings->value ("filesdockwidget/showHiddenFiles",false).toBool ()); ui->useAlternatingRowColors->setChecked ( settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ()); + connect (ui->sync_octave_directory, SIGNAL (toggled (bool)), + this, SLOT (set_disabled_pref_file_browser_dir (bool))); ui->sync_octave_directory->setChecked ( settings->value ("filesdockwidget/sync_octave_directory",true).toBool ()); + ui->cb_restore_file_browser_dir->setChecked ( + settings->value ("filesdockwidget/restore_last_dir",false).toBool ()); + ui->le_file_browser_dir->setText ( + settings->value ("filesdockwidget/startup_dir").toString ()); + connect (ui->pb_file_browser_dir, SIGNAL (pressed ()), + this, SLOT (get_file_browser_dir ())); + ui->checkbox_allow_web_connect->setChecked ( settings->value ("news/allow_web_connection",false).toBool ()); ui->useProxyServer->setChecked ( @@ -500,8 +522,15 @@ settings->setValue ("Dockwidgets/title_fg_color", _widget_title_fg_color->color ()); - // other settings + // icon size settings->setValue ("toolbar_icon_size", ui->toolbar_icon_size->value ()); + + // Octave startup + settings->setValue ("restore_octave_dir", + ui->cb_restore_octave_dir->isChecked ()); + settings->setValue ("octave_startup_dir", ui->le_octave_dir->text ()); + + //editor settings->setValue ("useCustomFileEditor", ui->useCustomFileEditor->isChecked ()); settings->setValue ("customFileEditor", ui->customFileEditor->text ()); @@ -541,8 +570,8 @@ ui->editor_tab_width_spinbox->value ()); settings->setValue ("editor/longWindowTitle", ui->editor_longWindowTitle->isChecked ()); - settings->setValue ("editor/tab_width", - ui->editor_tab_width->value ()); + settings->setValue ("editor/notebook_tab_width", + ui->editor_notebook_tab_width->value ()); settings->setValue ("editor/restoreSession", ui->editor_restoreSession->isChecked ()); settings->setValue ("editor/create_new_file", @@ -550,6 +579,7 @@ settings->setValue ("terminal/fontSize", ui->terminal_fontSize->value ()); settings->setValue ("terminal/fontName", ui->terminal_fontName->currentFont ().family ()); + settings->setValue ("filesdockwidget/showFileSize", ui->showFileSize->isChecked ()); settings->setValue ("filesdockwidget/showFileType", @@ -562,6 +592,12 @@ ui->useAlternatingRowColors->isChecked ()); settings->setValue ("filesdockwidget/sync_octave_directory", ui->sync_octave_directory->isChecked ()); + settings->setValue ("filesdockwidget/restore_last_dir", + ui->cb_restore_file_browser_dir->isChecked ()); + settings->setValue ("filesdockwidget/startup_dir", + ui->le_file_browser_dir->text ()); + + settings->setValue ("news/allow_web_connection", ui->checkbox_allow_web_connect->isChecked ()); settings->setValue ("useProxyServer", ui->useProxyServer->isChecked ()); @@ -622,6 +658,8 @@ write_terminal_colors (settings); settings->setValue ("settings/last_tab",ui->tabWidget->currentIndex ()); + settings->setValue ("settings/geometry",saveGeometry ()); + settings->sync (); } #ifdef HAVE_QSCINTILLA @@ -705,6 +743,7 @@ settings->setValue ( "settings/last_editor_styles_tab",ui->tabs_editor_lexers->currentIndex ()); + settings->sync (); } #endif @@ -742,3 +781,44 @@ } settings->sync (); } + + +// internal slots + +void +settings_dialog::get_dir (QLineEdit *line_edit, const QString& title) +{ + QString dir = QFileDialog::getExistingDirectory(this, + title, line_edit->text (), + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + line_edit->setText (dir); +} + +void +settings_dialog::get_octave_dir () +{ + get_dir (ui->le_octave_dir, tr ("Set Octave Startup Directory")); +} + +void +settings_dialog::get_file_browser_dir () +{ + get_dir (ui->le_file_browser_dir, tr ("Set File Browser Startup Directory")); +} + +void +settings_dialog::set_disabled_pref_file_browser_dir (bool disable) +{ + ui->cb_restore_file_browser_dir->setDisabled (disable); + + if (! disable) + { + ui->le_file_browser_dir->setDisabled (ui->cb_restore_file_browser_dir->isChecked ()); + ui->pb_file_browser_dir->setDisabled (ui->cb_restore_file_browser_dir->isChecked ()); + } + else + { + ui->le_file_browser_dir->setDisabled (disable); + ui->pb_file_browser_dir->setDisabled (disable); + } +}
--- a/libgui/src/settings-dialog.h +++ b/libgui/src/settings-dialog.h @@ -25,6 +25,7 @@ #include <QDialog> #include <QSettings> +#include <QLineEdit> #include "color-picker.h" @@ -45,6 +46,12 @@ ~settings_dialog (); void write_changed_settings (); +private slots: + void get_octave_dir (); + void get_file_browser_dir (); + void get_dir (QLineEdit*, const QString&); + void set_disabled_pref_file_browser_dir (bool disable); + private: Ui::settings_dialog * ui; #ifdef HAVE_QSCINTILLA
--- a/libgui/src/settings-dialog.ui +++ b/libgui/src/settings-dialog.ui @@ -9,20 +9,14 @@ <rect> <x>0</x> <y>0</y> - <width>700</width> + <width>720</width> <height>480</height> </rect> </property> <property name="minimumSize"> <size> - <width>700</width> - <height>480</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>700</width> - <height>480</height> + <width>400</width> + <height>400</height> </size> </property> <property name="windowTitle"> @@ -31,8 +25,14 @@ <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QTabWidget" name="tabWidget"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> <property name="currentIndex"> - <number>1</number> + <number>0</number> </property> <widget class="QWidget" name="tab_general"> <property name="enabled"> @@ -41,243 +41,337 @@ <attribute name="title"> <string>General</string> </attribute> - <widget class="QWidget" name="verticalLayoutWidget"> - <property name="geometry"> - <rect> - <x>9</x> - <y>10</y> - <width>651</width> - <height>371</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_7"> - <item> - <layout class="QGridLayout" name="gridLayout"> - <item row="3" column="0"> - <widget class="QLabel" name="label_9"> - <property name="text"> - <string>Icon set for dock widgets</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Language (requires restart)</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_8"> - <property name="text"> - <string>Icon size</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QSpinBox" name="toolbar_icon_size"> - <property name="minimum"> - <number>16</number> - </property> - <property name="maximum"> - <number>32</number> - </property> - <property name="singleStep"> - <number>4</number> - </property> - <property name="value"> - <number>24</number> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_8"> - <item> - <widget class="QComboBox" name="comboBox_language"> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtBottom</enum> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="3" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_9"> - <item> - <widget class="QRadioButton" name="general_icon_octave"> - <property name="text"> - <string>Octave logo only</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="general_icon_letter"> - <property name="text"> - <string>Letter icons</string> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="general_icon_graphic"> - <property name="text"> - <string>Graphic icons</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_15"> - <property name="text"> - <string>Dock widget title bar</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QCheckBox" name="cb_widget_custom_style"> - <property name="text"> - <string>Custom style</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_22"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QLabel" name="label_bgtitle"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Background color</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="layout_widget_bgtitle"/> - </item> - <item> - <spacer name="horizontalSpacer_23"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>12</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QLabel" name="label_fgtitle"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Text color</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="layout_widget_fgtitle"/> - </item> - <item> - <spacer name="horizontalSpacer_21"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer_4"> - <property name="orientation"> - <enum>Qt::Vertical</enum> + <layout class="QVBoxLayout" name="verticalLayout_10"> + <item> + <widget class="QScrollArea" name="scrollArea_2"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents_2"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>678</width> + <height>378</height> + </rect> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> + <layout class="QVBoxLayout" name="verticalLayout_17"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Interface</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_21"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="4" column="0"> + <widget class="QLabel" name="label_15"> + <property name="text"> + <string>Dock widget title bar</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_8"> + <item> + <widget class="QComboBox" name="comboBox_language"> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtBottom</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>Icon size</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QCheckBox" name="cb_widget_custom_style"> + <property name="text"> + <string>Custom style</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_22"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="label_bgtitle"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Background color</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="layout_widget_bgtitle"/> + </item> + <item> + <spacer name="horizontalSpacer_23"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>12</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="label_fgtitle"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Text color</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="layout_widget_fgtitle"/> + </item> + <item> + <spacer name="horizontalSpacer_21"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="2" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <item> + <widget class="QSpinBox" name="toolbar_icon_size"> + <property name="minimum"> + <number>16</number> + </property> + <property name="maximum"> + <number>32</number> + </property> + <property name="singleStep"> + <number>4</number> + </property> + <property name="value"> + <number>24</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Language (requires restart)</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_9"> + <item> + <widget class="QRadioButton" name="general_icon_octave"> + <property name="text"> + <string>Octave logo only</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="general_icon_letter"> + <property name="text"> + <string>Letter icons</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="general_icon_graphic"> + <property name="text"> + <string>Graphic icons</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>Icon set for dock widgets</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>Octave Startup</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_22"> + <item> + <widget class="QLabel" name="label_18"> + <property name="text"> + <string>These preferences are applied after the startup files like .octaverc.</string> + </property> + </widget> + </item> + <item> + <layout class="QGridLayout" name="gridLayout_9"> + <item row="0" column="5"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="5"> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label_17"> + <property name="text"> + <string>Startup path</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QPushButton" name="pb_octave_dir"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Browse</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="cb_restore_octave_dir"> + <property name="text"> + <string>Restore last Octave directory of previous session</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="le_octave_dir"/> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </widget> + </item> + </layout> </widget> <widget class="QWidget" name="tab_editor"> <attribute name="title"> @@ -285,1015 +379,1180 @@ </attribute> <layout class="QVBoxLayout" name="verticalLayout_6"> <item> - <layout class="QVBoxLayout" name="verticalLayout_9"> - <property name="spacing"> - <number>4</number> + <widget class="QScrollArea" name="scrollArea"> + <property name="widgetResizable"> + <bool>true</bool> </property> - <item> - <layout class="QGridLayout" name="editor_common_settings_grid"> - <property name="spacing"> - <number>6</number> - </property> - <item row="3" column="0"> - <widget class="QCheckBox" name="editor_ws_checkbox"> - <property name="text"> - <string>Show whitespace</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QCheckBox" name="editor_showLineNumbers"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Show line numbers</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="editor_longWindowTitle"> - <property name="text"> - <string>Show complete path in window title</string> - </property> - </widget> - </item> - <item row="3" column="2"> - <widget class="QCheckBox" name="editor_ws_indent_checkbox"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Do not show whitespace used for indentation</string> - </property> - </widget> - </item> - <item row="4" column="4"> - <spacer name="horizontalSpacer_18"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="4" column="0"> - <widget class="QCheckBox" name="editor_highlightCurrentLine"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Highlight current line</string> - </property> - </widget> - </item> - <item row="4" column="2"> - <layout class="QGridLayout" name="editor_grid_current_line" rowstretch="0" columnstretch="0,0,0,0,0"> - <property name="horizontalSpacing"> - <number>12</number> - </property> - <property name="verticalSpacing"> - <number>0</number> - </property> - <item row="0" column="1"> - <widget class="QLabel" name="editor_label_cl_color"> - <property name="enabled"> - <bool>false</bool> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>554</width> + <height>399</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout_16"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_9"> + <item> + <layout class="QGridLayout" name="editor_common_settings_grid"> + <property name="spacing"> + <number>6</number> </property> - <property name="text"> - <string>Color</string> - </property> - </widget> + <item row="3" column="0"> + <widget class="QCheckBox" name="editor_ws_checkbox"> + <property name="text"> + <string>Show whitespace</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="editor_showLineNumbers"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Show line numbers</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="editor_longWindowTitle"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Show complete path in window title</string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QCheckBox" name="editor_ws_indent_checkbox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Do not show whitespace used for indentation</string> + </property> + </widget> + </item> + <item row="4" column="4"> + <spacer name="horizontalSpacer_18"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="4" column="0"> + <widget class="QCheckBox" name="editor_highlightCurrentLine"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Highlight current line</string> + </property> + </widget> + </item> + <item row="4" column="2"> + <layout class="QGridLayout" name="editor_grid_current_line" rowstretch="0" columnstretch="0,0,0,0,0"> + <property name="horizontalSpacing"> + <number>12</number> + </property> + <property name="verticalSpacing"> + <number>0</number> + </property> + <item row="0" column="1"> + <widget class="QLabel" name="editor_label_cl_color"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Color</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <spacer name="horizontalSpacer_11"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>80</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="4"> + <spacer name="horizontalSpacer_9"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="4"> + <spacer name="horizontalSpacer_12"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="4"> + <spacer name="horizontalSpacer_16"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="4"> + <spacer name="horizontalSpacer_17"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <layout class="QGridLayout" name="gridLayout_6"> + <item row="0" column="0"> + <widget class="QLabel" name="label_16"> + <property name="text"> + <string>Max. tab width in pixel</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="editor_notebook_tab_width"> + <property name="minimum"> + <number>100</number> + </property> + <property name="maximum"> + <number>600</number> + </property> + <property name="singleStep"> + <number>20</number> + </property> + <property name="value"> + <number>300</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_25"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="1"> + <spacer name="horizontalSpacer_24"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> </item> - <item row="0" column="3"> - <spacer name="horizontalSpacer_11"> + <item> + <widget class="Line" name="line"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>80</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="4"> - <spacer name="horizontalSpacer_9"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="1" column="4"> - <spacer name="horizontalSpacer_12"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="4"> - <spacer name="horizontalSpacer_16"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="3" column="4"> - <spacer name="horizontalSpacer_17"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="2"> - <layout class="QGridLayout" name="gridLayout_6"> - <item row="0" column="0"> - <widget class="QLabel" name="label_16"> - <property name="text"> - <string>Max. tab width in pixel</string> - </property> </widget> </item> - <item row="0" column="1"> - <widget class="QSpinBox" name="editor_tab_width"> - <property name="minimum"> - <number>100</number> + <item> + <layout class="QGridLayout" name="gridLayout_4"> + <property name="verticalSpacing"> + <number>0</number> </property> - <property name="maximum"> - <number>600</number> - </property> - <property name="singleStep"> - <number>20</number> - </property> - <property name="value"> - <number>300</number> + <item row="0" column="0"> + <widget class="QLabel" name="label_13"> + <property name="text"> + <string>Indent width</string> + </property> + </widget> + </item> + <item row="2" column="4"> + <widget class="QCheckBox" name="editor_tab_ind_checkbox"> + <property name="text"> + <string>Tab indents line</string> + </property> + </widget> + </item> + <item row="0" column="5"> + <spacer name="horizontalSpacer_14"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="4"> + <widget class="QCheckBox" name="editor_auto_ind_checkbox"> + <property name="text"> + <string>Auto indentation</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QSpinBox" name="editor_ind_width_spinbox"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>32</number> + </property> + <property name="value"> + <number>2</number> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_14"> + <property name="text"> + <string>Tab width</string> + </property> + </widget> + </item> + <item row="0" column="6"> + <widget class="QCheckBox" name="editor_ind_guides_checkbox"> + <property name="text"> + <string>Show indentation guides</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QSpinBox" name="editor_tab_width_spinbox"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>32</number> + </property> + </widget> + </item> + <item row="2" column="6"> + <widget class="QCheckBox" name="editor_bs_unind_checkbox"> + <property name="text"> + <string>Backspace unindents line</string> + </property> + </widget> + </item> + <item row="0" column="10"> + <spacer name="horizontalSpacer_13"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="10"> + <spacer name="horizontalSpacer_20"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="3"> + <spacer name="horizontalSpacer_10"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="0" column="2"> - <spacer name="horizontalSpacer_25"> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <property name="verticalSpacing"> + <number>0</number> + </property> + <item row="0" column="0"> + <widget class="QCheckBox" name="editor_codeCompletion"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Code completion</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="2"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>6</number> + </property> + <item> + <widget class="QLabel" name="editor_label_ac_threshold"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string># of characters typed before completion list displayed</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="editor_spinbox_ac_threshold"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string/> + </property> + <property name="whatsThis"> + <string/> + </property> + <property name="suffix"> + <string/> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>6</number> + </property> + <property name="value"> + <number>2</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="2"> + <layout class="QGridLayout" name="gridLayout_3"> + <property name="verticalSpacing"> + <number>0</number> + </property> + <item row="0" column="1"> + <spacer name="horizontalSpacer_15"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="editor_checkbox_ac_keywords"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Match keywords</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="editor_checkbox_ac_case"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Case sensitive</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QCheckBox" name="editor_checkbox_ac_replace"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Replace word by suggested one</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <spacer name="horizontalSpacer_8"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="2"> + <widget class="QCheckBox" name="editor_checkbox_ac_document"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Match words in document</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <spacer name="horizontalSpacer_19"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1"> + <spacer name="horizontalSpacer_7"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line_3"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_11"> + <property name="topMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> </property> - </spacer> + <item> + <widget class="QCheckBox" name="editor_restoreSession"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Restore editor tabs from previous session on startup</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="editor_create_new file"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Create nonexistent files without prompting</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QCheckBox" name="useCustomFileEditor"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Use custom file editor</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="customEditorLabel"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>command line (%f=file, %l=line):</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="customFileEditor"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>emacs</string> + </property> + </widget> + </item> + </layout> </item> </layout> </item> - <item row="1" column="1"> - <spacer name="horizontalSpacer_24"> + <item> + <spacer name="verticalSpacer_4"> <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>10</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayout_4"> - <property name="verticalSpacing"> - <number>0</number> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="label_13"> - <property name="text"> - <string>Indent width</string> - </property> - </widget> - </item> - <item row="2" column="4"> - <widget class="QCheckBox" name="editor_tab_ind_checkbox"> - <property name="text"> - <string>Tab indents line</string> - </property> - </widget> - </item> - <item row="0" column="5"> - <spacer name="horizontalSpacer_14"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>Qt::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> - <width>10</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="4"> - <widget class="QCheckBox" name="editor_auto_ind_checkbox"> - <property name="text"> - <string>Auto indentation</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QSpinBox" name="editor_ind_width_spinbox"> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>32</number> - </property> - <property name="value"> - <number>2</number> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_14"> - <property name="text"> - <string>Tab width</string> - </property> - </widget> - </item> - <item row="0" column="6"> - <widget class="QCheckBox" name="editor_ind_guides_checkbox"> - <property name="text"> - <string>Show indentation guides</string> - </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QSpinBox" name="editor_tab_width_spinbox"> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>32</number> - </property> - </widget> - </item> - <item row="2" column="6"> - <widget class="QCheckBox" name="editor_bs_unind_checkbox"> - <property name="text"> - <string>Backspace unindents line</string> - </property> - </widget> - </item> - <item row="0" column="10"> - <spacer name="horizontalSpacer_13"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="10"> - <spacer name="horizontalSpacer_20"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="3"> - <spacer name="horizontalSpacer_10"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>10</width> - <height>0</height> + <width>20</width> + <height>40</height> </size> </property> </spacer> </item> </layout> - </item> + </widget> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_editor_styles"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <attribute name="title"> + <string>Editor Styles</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout_12"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_5"> <item> - <widget class="Line" name="line_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <widget class="QLabel" name="label_10"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="text"> + <string><html><head/><body><p>Select font, font size (as a difference from the default size), font style (<b>b</b>old, <b>i</b>talic, <b>u</b>nderline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color).</p></body></html></string> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <property name="margin"> + <number>4</number> </property> </widget> </item> <item> - <layout class="QGridLayout" name="gridLayout_2"> - <property name="verticalSpacing"> - <number>0</number> + <widget class="QTabWidget" name="tabs_editor_lexers"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <item row="0" column="0"> - <widget class="QCheckBox" name="editor_codeCompletion"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Code completion</string> - </property> - <property name="checked"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="0" column="2"> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>6</number> - </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_terminal"> + <attribute name="title"> + <string>Terminal</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout_14"> + <item> + <widget class="QScrollArea" name="scrollArea_3"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents_4"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>678</width> + <height>378</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout_7"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_8"> <item> - <widget class="QLabel" name="editor_label_ac_threshold"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string># of characters typed before completion list displayed</string> - </property> - </widget> + <layout class="QGridLayout" name="gridLayout_7"> + <item row="1" column="2"> + <layout class="QHBoxLayout" name="horizontalLayout_13"> + <item> + <widget class="QCheckBox" name="terminal_cursorUseForegroundColor"> + <property name="text"> + <string>Use foreground color</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="terminal_cursorBlinking"> + <property name="text"> + <string>Cursor blinking</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_7"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Cursor type:</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="terminal_cursorType"/> + </item> + </layout> + </item> + <item row="0" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_11"> + <item> + <widget class="QLabel" name="label_11"> + <property name="text"> + <string>Font</string> + </property> + </widget> + </item> + <item> + <widget class="QFontComboBox" name="terminal_fontName"> + <property name="editable"> + <bool>false</bool> + </property> + <property name="fontFilters"> + <set>QFontComboBox::MonospacedFonts</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="2"> + <layout class="QHBoxLayout" name="horizontalLayout_12"> + <item> + <widget class="QLabel" name="label_12"> + <property name="text"> + <string>Font size</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="terminal_fontSize"> + <property name="minimum"> + <number>2</number> + </property> + <property name="maximum"> + <number>96</number> + </property> + <property name="value"> + <number>10</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_27"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1"> + <spacer name="horizontalSpacer_28"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="3"> + <spacer name="horizontalSpacer_26"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> </item> <item> - <widget class="QSpinBox" name="editor_spinbox_ac_threshold"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string/> - </property> - <property name="whatsThis"> - <string/> - </property> - <property name="suffix"> - <string/> - </property> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>6</number> - </property> - <property name="value"> - <number>2</number> + <widget class="Line" name="line_7"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> </widget> </item> <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> + <widget class="QGroupBox" name="terminal_colors_box"> + <property name="minimumSize"> <size> - <width>40</width> - <height>20</height> + <width>0</width> + <height>81</height> </size> </property> - </spacer> + <property name="title"> + <string>Terminal Colors</string> + </property> + </widget> </item> - </layout> - </item> - <item row="1" column="2"> - <layout class="QGridLayout" name="gridLayout_3"> - <property name="verticalSpacing"> - <number>0</number> - </property> - <item row="0" column="1"> - <spacer name="horizontalSpacer_15"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> + <item> + <widget class="Line" name="line_5"> + <property name="minimumSize"> <size> - <width>10</width> + <width>0</width> <height>0</height> </size> </property> - </spacer> - </item> - <item row="0" column="0"> - <widget class="QCheckBox" name="editor_checkbox_ac_keywords"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Match keywords</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="editor_checkbox_ac_case"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Case sensitive</string> - </property> - <property name="checked"> - <bool>true</bool> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="1" column="2"> - <widget class="QCheckBox" name="editor_checkbox_ac_replace"> - <property name="enabled"> - <bool>false</bool> - </property> + <item> + <widget class="QCheckBox" name="terminal_focus_command"> <property name="text"> - <string>Replace word by suggested one</string> + <string>Set focus to terminal when running a command from within another widget</string> </property> </widget> </item> - <item row="0" column="3"> - <spacer name="horizontalSpacer_8"> + <item> + <widget class="Line" name="line_6"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="2"> - <widget class="QCheckBox" name="editor_checkbox_ac_document"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Match words in document</string> - </property> </widget> </item> - <item row="1" column="3"> - <spacer name="horizontalSpacer_19"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> </layout> </item> - <item row="0" column="1"> - <spacer name="horizontalSpacer_7"> + <item> + <spacer name="verticalSpacer_3"> <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>Qt::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> - <width>10</width> - <height>0</height> + <width>20</width> + <height>40</height> </size> </property> </spacer> </item> </layout> - </item> - <item> - <widget class="Line" name="line_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout_11"> - <property name="topMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QCheckBox" name="editor_restoreSession"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Restore editor tabs from previous session on startup</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="editor_create_new file"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Create nonexistent files without prompting</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> + </widget> </widget> </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout_10"> - <property name="topMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QCheckBox" name="useCustomFileEditor"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Use custom file editor</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="customEditorLabel"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>command line (%f=file, %l=line):</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="customFileEditor"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>emacs</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> </layout> </widget> - <widget class="QWidget" name="tab_editor_styles"> - <attribute name="title"> - <string>Editor Styles</string> - </attribute> - <widget class="QWidget" name="verticalLayoutWidget_4"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>651</width> - <height>401</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <widget class="QLabel" name="label_10"> - <property name="maximumSize"> - <size> - <width>676</width> - <height>16777215</height> - </size> - </property> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="text"> - <string><html><head/><body><p>Select font, font size (as a difference from the default size), font style (<b>b</b>old, <b>i</b>talic, <b>u</b>nderline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color).</p></body></html></string> - </property> - <property name="scaledContents"> - <bool>false</bool> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - <property name="margin"> - <number>4</number> - </property> - </widget> - </item> - <item> - <widget class="QTabWidget" name="tabs_editor_lexers"> - <property name="maximumSize"> - <size> - <width>676</width> - <height>351</height> - </size> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - <widget class="QWidget" name="tab_terminal"> - <attribute name="title"> - <string>Terminal</string> - </attribute> - <widget class="QWidget" name="verticalLayoutWidget_3"> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>631</width> - <height>371</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_8"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <widget class="QLabel" name="label_11"> - <property name="text"> - <string>Font</string> - </property> - </widget> - </item> - <item> - <widget class="QFontComboBox" name="terminal_fontName"> - <property name="editable"> - <bool>false</bool> - </property> - <property name="fontFilters"> - <set>QFontComboBox::MonospacedFonts</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_12"> - <property name="text"> - <string>Font size</string> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="terminal_fontSize"> - <property name="minimum"> - <number>2</number> - </property> - <property name="maximum"> - <number>96</number> - </property> - <property name="value"> - <number>10</number> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_5"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Cursor type:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="terminal_cursorType"/> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QCheckBox" name="terminal_cursorBlinking"> - <property name="text"> - <string>Cursor blinking</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="terminal_cursorUseForegroundColor"> - <property name="text"> - <string>Use foreground color</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_7"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QGroupBox" name="terminal_colors_box"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>81</height> - </size> - </property> - <property name="title"> - <string>Terminal Colors</string> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_5"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="terminal_focus_command"> - <property name="text"> - <string>Set focus to terminal when running a command from within another widget</string> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer_3"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </widget> <widget class="QWidget" name="tab_file_browser"> <attribute name="title"> <string>File Browser</string> </attribute> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QCheckBox" name="showFileSize"> - <property name="text"> - <string>Show file size</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="showFileType"> - <property name="text"> - <string>Show file type</string> + <widget class="QScrollArea" name="scrollArea_4"> + <property name="widgetResizable"> + <bool>true</bool> </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="showLastModified"> - <property name="text"> - <string>Show date of last modification</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="showHiddenFiles"> - <property name="text"> - <string>Show hidden files</string> - </property> + <widget class="QWidget" name="scrollAreaWidgetContents_5"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>474</width> + <height>318</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout_18"> + <item> + <widget class="QGroupBox" name="groupBox_3"> + <property name="title"> + <string>Display</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_23"> + <item> + <layout class="QGridLayout" name="gridLayout_11"> + <property name="topMargin"> + <number>0</number> + </property> + <item row="1" column="0"> + <widget class="QCheckBox" name="showFileType"> + <property name="text"> + <string>Show file type</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QCheckBox" name="showHiddenFiles"> + <property name="text"> + <string>Show hidden files</string> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="showFileSize"> + <property name="text"> + <string>Show file size</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="showLastModified"> + <property name="text"> + <string>Show date of last modification</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QCheckBox" name="useAlternatingRowColors"> + <property name="text"> + <string>Alternating row colors</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_4"> + <property name="title"> + <string>Behavior</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_24"> + <item> + <layout class="QGridLayout" name="gridLayout_8"> + <item row="4" column="0"> + <widget class="QCheckBox" name="sync_octave_directory"> + <property name="text"> + <string>Synchronize Octave working directory with file browser</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <layout class="QGridLayout" name="lo_file_browser_startup"> + <item row="0" column="0"> + <widget class="QLabel" name="lbl_file_browser_dir"> + <property name="text"> + <string>Startup path</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="le_file_browser_dir"/> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="cb_restore_file_browser_dir"> + <property name="text"> + <string>Restore last directory of previous session</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="pb_file_browser_dir"> + <property name="text"> + <string>Browse</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <spacer name="horizontalSpacer_29"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="3"> + <spacer name="horizontalSpacer_30"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>360</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> </widget> </item> - <item> - <widget class="QCheckBox" name="sync_octave_directory"> - <property name="text"> - <string>Synchronize Octave working directory with file browser</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="useAlternatingRowColors"> - <property name="text"> - <string>Alternating row colors</string> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>360</height> - </size> - </property> - </spacer> - </item> </layout> </widget> <widget class="QWidget" name="tab_workspace"> <attribute name="title"> <string>Workspace</string> </attribute> - <widget class="QWidget" name="verticalLayoutWidget_6"> - <property name="geometry"> - <rect> - <x>10</x> - <y>8</y> - <width>631</width> - <height>381</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_13"> - <item> - <widget class="QGroupBox" name="workspace_colors_box"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>81</height> - </size> - </property> - <property name="title"> - <string>Storage Class Colors</string> + <layout class="QVBoxLayout" name="verticalLayout_15"> + <item> + <widget class="QScrollArea" name="scrollArea_5"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents_6"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>154</width> + <height>114</height> + </rect> </property> - </widget> - </item> - <item> - <widget class="Line" name="line_8"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>1</height> - </size> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> + <layout class="QVBoxLayout" name="verticalLayout_19"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_13"> + <item> + <widget class="QGroupBox" name="workspace_colors_box"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>81</height> + </size> + </property> + <property name="title"> + <string>Storage Class Colors</string> + </property> + </widget> + </item> + <item> + <widget class="Line" name="line_8"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>1</height> + </size> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer_6"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> </widget> - </item> - <item> - <spacer name="verticalSpacer_6"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> + </widget> + </item> + </layout> </widget> <widget class="QWidget" name="tab_network"> <attribute name="title"> @@ -1301,137 +1560,156 @@ </attribute> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QCheckBox" name="checkbox_allow_web_connect"> - <property name="text"> - <string>Allow Octave to connect to the Octave web site to display current news and information</string> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="1" column="1"> - <widget class="QLabel" name="label_4"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Hostname:</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QComboBox" name="proxyType"> - <property name="enabled"> - <bool>false</bool> - </property> + <widget class="QScrollArea" name="scrollArea_6"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>529</width> + <height>204</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout_20"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <property name="text"> - <string>HttpProxy</string> - </property> + <widget class="QCheckBox" name="checkbox_allow_web_connect"> + <property name="text"> + <string>Allow Octave to connect to the Octave web site to display current news and information</string> + </property> + </widget> </item> <item> - <property name="text"> - <string>Socks5Proxy</string> - </property> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="1" column="1"> + <widget class="QLabel" name="label_4"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Hostname:</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QComboBox" name="proxyType"> + <property name="enabled"> + <bool>false</bool> + </property> + <item> + <property name="text"> + <string>HttpProxy</string> + </property> + </item> + <item> + <property name="text"> + <string>Socks5Proxy</string> + </property> + </item> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLabel" name="label_6"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Username:</string> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="useProxyServer"> + <property name="text"> + <string>Use proxy server</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="label_3"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Proxy type:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="label_5"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Port:</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QLabel" name="label_7"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Password:</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QLineEdit" name="proxyHostName"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QLineEdit" name="proxyPort"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QLineEdit" name="proxyUserName"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QLineEdit" name="proxyPassword"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="echoMode"> + <enum>QLineEdit::Password</enum> + </property> + </widget> + </item> + </layout> </item> - </widget> - </item> - <item row="3" column="1"> - <widget class="QLabel" name="label_6"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Username:</string> - </property> - </widget> + </layout> </item> - <item row="0" column="0"> - <widget class="QCheckBox" name="useProxyServer"> - <property name="text"> - <string>Use proxy server</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_3"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Proxy type:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_5"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Port:</string> + <item> + <spacer name="verticalSpacer_5"> + <property name="orientation"> + <enum>Qt::Vertical</enum> </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QLabel" name="label_7"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Password:</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QLineEdit" name="proxyHostName"> - <property name="enabled"> - <bool>false</bool> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QLineEdit" name="proxyPort"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="3" column="2"> - <widget class="QLineEdit" name="proxyUserName"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="4" column="2"> - <widget class="QLineEdit" name="proxyPassword"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="echoMode"> - <enum>QLineEdit::Password</enum> - </property> - </widget> + </spacer> </item> </layout> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer_5"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> + </widget> + </widget> </item> </layout> </widget> @@ -1832,5 +2110,69 @@ </hint> </hints> </connection> + <connection> + <sender>cb_restore_octave_dir</sender> + <signal>toggled(bool)</signal> + <receiver>le_octave_dir</receiver> + <slot>setDisabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>270</x> + <y>255</y> + </hint> + <hint type="destinationlabel"> + <x>270</x> + <y>285</y> + </hint> + </hints> + </connection> + <connection> + <sender>cb_restore_octave_dir</sender> + <signal>toggled(bool)</signal> + <receiver>pb_octave_dir</receiver> + <slot>setDisabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>270</x> + <y>255</y> + </hint> + <hint type="destinationlabel"> + <x>467</x> + <y>285</y> + </hint> + </hints> + </connection> + <connection> + <sender>cb_restore_file_browser_dir</sender> + <signal>toggled(bool)</signal> + <receiver>le_file_browser_dir</receiver> + <slot>setDisabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>250</x> + <y>294</y> + </hint> + <hint type="destinationlabel"> + <x>250</x> + <y>324</y> + </hint> + </hints> + </connection> + <connection> + <sender>cb_restore_file_browser_dir</sender> + <signal>toggled(bool)</signal> + <receiver>pb_file_browser_dir</receiver> + <slot>setDisabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>250</x> + <y>294</y> + </hint> + <hint type="destinationlabel"> + <x>426</x> + <y>324</y> + </hint> + </hints> + </connection> </connections> </ui>
--- a/libinterp/dldfcn/__init_fltk__.cc +++ b/libinterp/dldfcn/__init_fltk__.cc @@ -111,7 +111,7 @@ in_zoom (false), zoom_box (), print_mode (false) { // Ask for double buffering and a depth buffer. - mode (FL_DEPTH | FL_DOUBLE); + mode (FL_DEPTH | FL_DOUBLE | FL_MULTISAMPLE); } ~OpenGL_fltk (void) { } @@ -752,7 +752,7 @@ status->box (FL_ENGRAVED_BOX); // This allows us to have a valid OpenGL context right away. - canvas->mode (FL_DEPTH | FL_DOUBLE ); + canvas->mode (FL_DEPTH | FL_DOUBLE | FL_MULTISAMPLE); if (fp.is_visible ()) { // FIXME: This code should be removed when Octave drops support
--- a/libinterp/parse-tree/lex.ll +++ b/libinterp/parse-tree/lex.ll @@ -277,6 +277,7 @@ EXPON ([DdEe][+-]?{D}+) NUMBER (({D}+\.?{D}*{EXPON}?)|(\.{D}+{EXPON}?)|(0[xX][0-9a-fA-F]+)) +ANY_EXCEPT_NL [^\r\n] ANY_INCLUDING_NL (.|{NL}) %% @@ -309,8 +310,8 @@ // If an argument is in construction, it is completed. %} -<COMMAND_START>(\.\.\.)[^\r\n]*{NL} { - curr_lexer->lexer_debug ("<COMMAND_START>(\\.\\.\\.)[^\\r\\n]*{NL}"); +<COMMAND_START>(\.\.\.){ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("<COMMAND_START>(\\.\\.\\.){ANY_EXCEPT_NL}*{NL}"); COMMAND_ARG_FINISH; @@ -324,8 +325,8 @@ // Commands normally end at the end of a line or a semicolon. %} -<COMMAND_START>({CCHAR}[^\r\n]*)?{NL} { - curr_lexer->lexer_debug ("<COMMAND_START>({CCHAR}[^\\r\\n])?{NL}"); +<COMMAND_START>({CCHAR}{ANY_EXCEPT_NL}*)?{NL} { + curr_lexer->lexer_debug ("<COMMAND_START>({CCHAR}{ANY_EXCEPT_NL}*)?{NL}"); COMMAND_ARG_FINISH; @@ -633,8 +634,8 @@ // Body of a block comment. %} -<BLOCK_COMMENT_START>.*{NL} { - curr_lexer->lexer_debug ("<BLOCK_COMMENT_START>.*{NL}"); +<BLOCK_COMMENT_START>{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("<BLOCK_COMMENT_START>{ANY_EXCEPT_NL}*{NL}"); curr_lexer->input_line_number++; curr_lexer->current_input_column = 1; @@ -645,15 +646,15 @@ // Full-line or end-of-line comment. %} -{S}*{CCHAR}.*{NL} { - curr_lexer->lexer_debug ("{S}*{CCHAR}.*{NL}"); +{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL}"); curr_lexer->push_start_state (LINE_COMMENT_START); yyless (0); } -<LINE_COMMENT_START>{S}*{CCHAR}.*{NL} { - curr_lexer->lexer_debug ("<LINE_COMMENT_START>{S}*{CCHAR}.*{NL}"); +<LINE_COMMENT_START>{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("<LINE_COMMENT_START>{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL}"); bool full_line_comment = curr_lexer->current_input_column == 1; curr_lexer->input_line_number++; @@ -869,8 +870,8 @@ } <DQ_STRING_START>(\.\.\.){S}*{NL} | -<DQ_STRING_START>(\.\.\.){S}*{CCHAR}.*{NL} { - curr_lexer->lexer_debug ("<DQ_STRING_START>(\\.\\.\\.){S}*{NL}|<DQ_STRING_START>(\\.\\.\\.){S}*{CCHAR}.*{NL}"); +<DQ_STRING_START>(\.\.\.){S}*{CCHAR}{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("<DQ_STRING_START>(\\.\\.\\.){S}*{NL}|<DQ_STRING_START>(\\.\\.\\.){S}*{CCHAR}{ANY_EXCEPT_NL}*{NL}"); static const char *msg = "'...' continuations in double-quoted character strings are obsolete and will not be allowed in a future version of Octave; please use '\\' instead"; @@ -887,8 +888,8 @@ } <DQ_STRING_START>\\{S}+{NL} | -<DQ_STRING_START>\\{S}*{CCHAR}.*{NL} { - curr_lexer->lexer_debug ("<DQ_STRING_START>\\\\{S}+{NL}|<DQ_STRING_START>\\\\{S}*{CCHAR}.*{NL}"); +<DQ_STRING_START>\\{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("<DQ_STRING_START>\\\\{S}+{NL}|<DQ_STRING_START>\\\\{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL}"); static const char *msg = "white space and comments after continuation markers in double-quoted character strings are obsolete and will not be allowed in a future version of Octave"; @@ -1077,8 +1078,8 @@ // Continuation lines. Allow arbitrary text after continuations. %} -\.\.\..*{NL} { - curr_lexer->lexer_debug ("\\.\\.\\..*{NL}"); +\.\.\.{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("\\.\\.\\.{ANY_EXCEPT_NL}*{NL}"); curr_lexer->handle_continuation (); } @@ -1088,8 +1089,8 @@ %} \\{S}*{NL} | -\\{S}*{CCHAR}.*{NL} { - curr_lexer->lexer_debug ("\\\\{S}*{NL}|\\\\{S}*{CCHAR}.*{NL}"); +\\{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL} { + curr_lexer->lexer_debug ("\\\\{S}*{NL}|\\\\{S}*{CCHAR}{ANY_EXCEPT_NL}*{NL}"); static const char *msg = "using continuation marker \\ outside of double quoted strings is deprecated and will be removed in a future version of Octave";