# HG changeset patch # User Torsten # Date 1382034557 -7200 # Node ID c060ad097056ff3037191412486c7dc1d7da3c6b # Parent 4e5c17b3294af052ff28578583ace36eaaaceeaf add menu entries to the editor for directly accessing the editor's settings * settings-dialog.ui: tabs with self explaining names * settings-dialog.cc(constructor): name of desired tab as new parameter, open the last or desired tab depending on this parameter; (destructor, write_lexer_settings): update to new tab names * settings-dialog.h: new parameter in constructor * main-window.cc(process_settings_dialog_request): name of desired tab as new parameter, settings-dialog is created with this parameter * main-window.h: new parameter for process_settings_dialog_request * file-editor.cc(request_preferences,request_styles_preferences): new slots emtting a new signal for opening the settings dialog via the main window; (construct): new actions for opening the editor and editor styles settings * file-editor.h: new actions, related slots and signal for main window diff -r 4e5c17b3294a -r c060ad097056 libgui/src/m-editor/file-editor.cc --- a/libgui/src/m-editor/file-editor.cc Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/m-editor/file-editor.cc Thu Oct 17 20:29:17 2013 +0200 @@ -751,6 +751,18 @@ } void +file_editor::request_preferences (bool) +{ + emit request_settings_dialog ("editor"); +} + +void +file_editor::request_styles_preferences (bool) +{ + emit request_settings_dialog ("editor_styles"); +} + +void file_editor::construct (void) { QWidget *editor_widget = new QWidget (this); @@ -940,6 +952,13 @@ editMenu->addAction (_remove_bookmark_action); editMenu->addSeparator (); editMenu->addAction (_goto_line_action); + editMenu->addSeparator (); + _preferences_action = + editMenu->addAction (QIcon (":/actions/icons/configure.png"), + tr ("&Preferences"), this, SLOT (request_preferences (bool))); + _styles_preferences_action = + editMenu->addAction (QIcon (":/actions/icons/configure.png"), + tr ("&Styles Preferences"), this, SLOT (request_styles_preferences (bool))); _menu_bar->addMenu (editMenu); _debug_menu = new QMenu (tr ("&Debug"), _menu_bar); @@ -981,6 +1000,9 @@ setWidget (editor_widget); // signals + connect (this, SIGNAL (request_settings_dialog (const QString&)), + main_win (), SLOT (process_settings_dialog_request (const QString&))); + connect (main_win (), SIGNAL (new_file_signal (const QString&)), this, SLOT (request_new_file (const QString&))); diff -r 4e5c17b3294a -r c060ad097056 libgui/src/m-editor/file-editor.h --- a/libgui/src/m-editor/file-editor.h Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/m-editor/file-editor.h Thu Oct 17 20:29:17 2013 +0200 @@ -98,6 +98,7 @@ void fetab_do_breakpoint_marker (bool insert, const QWidget* ID, int line = -1); void fetab_set_focus (const QWidget* ID); + void request_settings_dialog (const QString&); public slots: void focus (void); @@ -173,6 +174,8 @@ void request_open_file (const QString& fileName, int line = -1, bool debug_pointer = false, bool breakpoint_marker = false, bool insert = true); + void request_preferences (bool); + void request_styles_preferences (bool); private: @@ -222,6 +225,9 @@ QAction *_redo_action; QAction *_undo_action; + QAction *_preferences_action; + QAction *_styles_preferences_action; + QTabWidget *_tab_widget; int _marker_breakpoint; diff -r 4e5c17b3294a -r c060ad097056 libgui/src/main-window.cc --- a/libgui/src/main-window.cc Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/main-window.cc Thu Oct 17 20:29:17 2013 +0200 @@ -306,9 +306,9 @@ } void -main_window::process_settings_dialog_request (void) +main_window::process_settings_dialog_request (const QString& desired_tab) { - settings_dialog *settingsDialog = new settings_dialog (this); + settings_dialog *settingsDialog = new settings_dialog (this, desired_tab); int change_settings = settingsDialog->exec (); if (change_settings == QDialog::Accepted) { diff -r 4e5c17b3294a -r c060ad097056 libgui/src/main-window.h --- a/libgui/src/main-window.h Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/main-window.h Thu Oct 17 20:29:17 2013 +0200 @@ -115,7 +115,7 @@ void open_agora_page (void); void open_contribute_page (void); void open_developer_page (void); - void process_settings_dialog_request (void); + void process_settings_dialog_request (const QString& desired_tab = QString ()); void show_about_octave (void); void notice_settings (const QSettings *settings); void prepare_to_exit (void); diff -r 4e5c17b3294a -r c060ad097056 libgui/src/settings-dialog.cc --- a/libgui/src/settings-dialog.cc Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/settings-dialog.cc Thu Oct 17 20:29:17 2013 +0200 @@ -31,6 +31,7 @@ #include #include #include +#include #ifdef HAVE_QSCINTILLA #include @@ -50,7 +51,7 @@ #include #endif -settings_dialog::settings_dialog (QWidget *p): +settings_dialog::settings_dialog (QWidget *p, const QString& desired_tab): QDialog (p), ui (new Ui::settings_dialog) { ui->setupUi (this); @@ -194,7 +195,18 @@ delete lexer; #endif - ui->tabWidget->setCurrentIndex (settings->value("settings/last_tab",0).toInt ()); + // which tab is the desired one? + if (desired_tab.isEmpty ()) + ui->tabWidget->setCurrentIndex (settings->value("settings/last_tab",0).toInt ()); + else + { + QHash tab_hash; + tab_hash["editor"] = ui->tab_editor; + tab_hash["editor_styles"] = ui->tab_editor_styles; + ui->tabWidget->setCurrentIndex (ui->tabWidget->indexOf (tab_hash.value (desired_tab))); + } + + } settings_dialog::~settings_dialog () @@ -303,9 +315,9 @@ scroll_area_contents->setObjectName (QString (lexer->language ())+"_styles"); scroll_area_contents->setLayout (style_grid); scroll_area->setWidget (scroll_area_contents); - ui->tabs_editor_styles->addTab (scroll_area,lexer->language ()); + ui->tabs_editor_lexers->addTab (scroll_area,lexer->language ()); - ui->tabs_editor_styles->setCurrentIndex ( + ui->tabs_editor_lexers->setCurrentIndex ( settings->value("settings/last_editor_styles_tab",0).toInt ()); } #endif @@ -499,7 +511,7 @@ void settings_dialog::write_lexer_settings (QsciLexer *lexer, QSettings *settings) { - QWidget *tab = ui->tabs_editor_styles-> + QWidget *tab = ui->tabs_editor_lexers-> findChild (QString (lexer->language ())+"_styles"); int styles[MaxLexerStyles]; // array for saving valid styles (enum is not continuous) int max_style = get_valid_lexer_styles (lexer, styles); @@ -575,7 +587,7 @@ lexer->writeSettings (*settings); settings->setValue ( - "settings/last_editor_styles_tab",ui->tabs_editor_styles->currentIndex ()); + "settings/last_editor_styles_tab",ui->tabs_editor_lexers->currentIndex ()); } #endif diff -r 4e5c17b3294a -r c060ad097056 libgui/src/settings-dialog.h --- a/libgui/src/settings-dialog.h Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/settings-dialog.h Thu Oct 17 20:29:17 2013 +0200 @@ -40,7 +40,7 @@ class settings_dialog:public QDialog { Q_OBJECT public: - explicit settings_dialog (QWidget * parent); + explicit settings_dialog (QWidget * parent, const QString& desired_tab = QString ()); ~settings_dialog (); void write_changed_settings (); diff -r 4e5c17b3294a -r c060ad097056 libgui/src/settings-dialog.ui --- a/libgui/src/settings-dialog.ui Thu Oct 17 10:44:36 2013 -0700 +++ b/libgui/src/settings-dialog.ui Thu Oct 17 20:29:17 2013 +0200 @@ -32,9 +32,9 @@ - 1 + 2 - + true @@ -190,7 +190,7 @@ - + Editor @@ -203,7 +203,7 @@ - -1 + 6 @@ -783,7 +783,7 @@ - + Editor Styles @@ -826,7 +826,7 @@ - + 676 @@ -838,7 +838,7 @@ - + Terminal @@ -1012,7 +1012,7 @@ - + File Browser @@ -1139,7 +1139,7 @@ - + Network