Mercurial > octave-nkf
diff libgui/src/settings-dialog.cc @ 17676:c060ad097056
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
author | Torsten <ttl@justmail.de> |
---|---|
date | Thu, 17 Oct 2013 20:29:17 +0200 |
parents | a86327a7d9fb |
children | e6ed77b75aec |
line wrap: on
line diff
--- 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 <QDir> #include <QFileInfo> #include <QVector> +#include <QHash> #ifdef HAVE_QSCINTILLA #include <QScrollArea> @@ -50,7 +51,7 @@ #include <Qsci/qscilexerdiff.h> #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 <QString, QWidget*> 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 <QWidget *>(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