changeset 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 4e5c17b3294a
children c14e5af64de4
files libgui/src/m-editor/file-editor.cc libgui/src/m-editor/file-editor.h libgui/src/main-window.cc libgui/src/main-window.h libgui/src/settings-dialog.cc libgui/src/settings-dialog.h libgui/src/settings-dialog.ui
diffstat 7 files changed, 59 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- 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&)));
 
--- 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;
--- 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)
     {
--- 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);
--- 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
 
--- 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 ();
 
--- 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 @@
    <item>
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
-      <number>1</number>
+      <number>2</number>
      </property>
-     <widget class="QWidget" name="tab_4">
+     <widget class="QWidget" name="tab_general">
       <property name="enabled">
        <bool>true</bool>
       </property>
@@ -190,7 +190,7 @@
        </layout>
       </widget>
      </widget>
-     <widget class="QWidget" name="tab">
+     <widget class="QWidget" name="tab_editor">
       <attribute name="title">
        <string>Editor</string>
       </attribute>
@@ -203,7 +203,7 @@
          <item>
           <layout class="QGridLayout" name="editor_common_settings_grid">
            <property name="spacing">
-            <number>-1</number>
+            <number>6</number>
            </property>
            <item row="2" column="0">
             <widget class="QCheckBox" name="editor_ws_checkbox">
@@ -783,7 +783,7 @@
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="tab_6">
+     <widget class="QWidget" name="tab_editor_styles">
       <attribute name="title">
        <string>Editor Styles</string>
       </attribute>
@@ -826,7 +826,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QTabWidget" name="tabs_editor_styles">
+         <widget class="QTabWidget" name="tabs_editor_lexers">
           <property name="maximumSize">
            <size>
             <width>676</width>
@@ -838,7 +838,7 @@
        </layout>
       </widget>
      </widget>
-     <widget class="QWidget" name="tab_5">
+     <widget class="QWidget" name="tab_terminal">
       <attribute name="title">
        <string>Terminal</string>
       </attribute>
@@ -1012,7 +1012,7 @@
        </layout>
       </widget>
      </widget>
-     <widget class="QWidget" name="tab_2">
+     <widget class="QWidget" name="tab_file_browser">
       <attribute name="title">
        <string>File Browser</string>
       </attribute>
@@ -1139,7 +1139,7 @@
        </layout>
       </widget>
      </widget>
-     <widget class="QWidget" name="tab_3">
+     <widget class="QWidget" name="tab_network">
       <attribute name="title">
        <string>Network</string>
       </attribute>