Mercurial > hg > octave-nkf
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 +++ b/libgui/src/m-editor/file-editor.cc @@ -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 +++ b/libgui/src/m-editor/file-editor.h @@ -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 +++ b/libgui/src/main-window.cc @@ -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 +++ b/libgui/src/main-window.h @@ -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 +++ b/libgui/src/settings-dialog.cc @@ -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 +++ b/libgui/src/settings-dialog.h @@ -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 +++ b/libgui/src/settings-dialog.ui @@ -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>