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