# HG changeset patch # User Torsten # Date 1446980390 -3600 # Node ID be130eb147f8401e401067b6f36f14ea2cf48aa9 # Parent e4593adad5cc6f6e940009ea80c397ffeb87a34a provide only one set of gui shortcuts at a time * settings-dialog.cc (settings_dialog): remove initializations of all items related to the second shortcut set; (write_changed_settings): remove storing the values of the second set; (import_shortcut_set, export_shortcut_set): renamed slots for import/export; (import_shortcut_set2, export_shortcut_set2): removed slots of second set * settings-dialog.h: renamed and remoced slots for import/export of shortcuts * settings-dialog.ui: removed all items related to the second shortcut set * shortcut-manager.cc (do_init_data): shortcut structure and the used hash only stores on shortcut now; (do_fill_treewidget): adapt filling the table in the settings dialog; (do_write_shortcuts): Only write the one shortcut set into the settings file; (do_set_shortcut): Do not check for active shortcut set; (handle_double_clicked): slot for changing a shortcut adapted to the new table in the settings dialog; (shortcut_dialog, shortcut_dialog_finish): only considering one shortcut set; (import_shortcuts, do_import_export): do not consider a second set to import or export * shortcut-manager.h (write_shortcuts, do_write_shortcuts, import_export, do_import_export, import_shortcuts): remove function parameter for shortcut set; (shortcut_t): no more arrays of QKeySequence in the structure for storing the shortcuts; removed class variable _selected_set diff -r e4593adad5cc -r be130eb147f8 libgui/src/settings-dialog.cc --- a/libgui/src/settings-dialog.cc Sat Nov 07 17:24:02 2015 -0800 +++ b/libgui/src/settings-dialog.cc Sun Nov 08 11:59:50 2015 +0100 @@ -540,22 +540,15 @@ ui->cb_prevent_readline_conflicts->setChecked ( settings->value ("shortcuts/prevent_readline_conflicts", true).toBool ()); - int set = settings->value ("shortcuts/set",0).toInt (); - ui->rb_sc_set1->setChecked (set == 0); - ui->rb_sc_set2->setChecked (set == 1); // initialize the tree view with all shortcut data shortcut_manager::fill_treewidget (ui->shortcuts_treewidget); // connect the buttons for import/export of the shortcut sets - connect (ui->btn_import_shortcut_set1, SIGNAL (clicked ()), - this, SLOT (import_shortcut_set1 ())); - connect (ui->btn_export_shortcut_set1, SIGNAL (clicked ()), - this, SLOT (export_shortcut_set1 ())); - connect (ui->btn_import_shortcut_set2, SIGNAL (clicked ()), - this, SLOT (import_shortcut_set2 ())); - connect (ui->btn_export_shortcut_set2, SIGNAL (clicked ()), - this, SLOT (export_shortcut_set2 ())); + connect (ui->btn_import_shortcut_set, SIGNAL (clicked ()), + this, SLOT (import_shortcut_set ())); + connect (ui->btn_export_shortcut_set, SIGNAL (clicked ()), + this, SLOT (export_shortcut_set ())); #ifdef HAVE_QSCINTILLA @@ -912,11 +905,7 @@ // shortcuts settings->setValue ("shortcuts/prevent_readline_conflicts", ui->cb_prevent_readline_conflicts->isChecked ()); - int set = 0; - if (ui->rb_sc_set2->isChecked ()) - set = 1; - settings->setValue ("shortcuts/set",set); - shortcut_manager::write_shortcuts (0, settings, closing); // 0: write both sets + shortcut_manager::write_shortcuts (settings, closing); // settings dialog's geometry settings->setValue ("settings/last_tab",ui->tabWidget->currentIndex ()); @@ -1022,25 +1011,13 @@ // slots for import/export of shortcut sets void -settings_dialog::import_shortcut_set1 () +settings_dialog::import_shortcut_set () { - shortcut_manager::import_export (true,1); + shortcut_manager::import_export (true); } void -settings_dialog::export_shortcut_set1 () -{ - shortcut_manager::import_export (false,1); -} - -void -settings_dialog::import_shortcut_set2 () +settings_dialog::export_shortcut_set () { - shortcut_manager::import_export (true,2); -} - -void -settings_dialog::export_shortcut_set2 () -{ - shortcut_manager::import_export (false,2); -} + shortcut_manager::import_export (false); +} \ No newline at end of file diff -r e4593adad5cc -r be130eb147f8 libgui/src/settings-dialog.h --- a/libgui/src/settings-dialog.h Sat Nov 07 17:24:02 2015 -0800 +++ b/libgui/src/settings-dialog.h Sun Nov 08 11:59:50 2015 +0100 @@ -55,10 +55,8 @@ void button_clicked (QAbstractButton *button); // slots for import/export-buttons of shortcut sets - void import_shortcut_set1 (); - void export_shortcut_set1 (); - void import_shortcut_set2 (); - void export_shortcut_set2 (); + void import_shortcut_set (); + void export_shortcut_set (); private: Ui::settings_dialog * ui; diff -r e4593adad5cc -r be130eb147f8 libgui/src/settings-dialog.ui --- a/libgui/src/settings-dialog.ui Sat Nov 07 17:24:02 2015 -0800 +++ b/libgui/src/settings-dialog.ui Sun Nov 08 11:59:50 2015 +0100 @@ -32,7 +32,7 @@ - 4 + 6 @@ -52,7 +52,7 @@ 0 0 - 570 + 662 382 @@ -1461,8 +1461,8 @@ 0 0 - 488 - 236 + 678 + 378 @@ -1875,8 +1875,8 @@ 0 0 - 203 - 79 + 678 + 378 @@ -1944,8 +1944,8 @@ 0 0 - 368 - 244 + 678 + 378 @@ -1986,52 +1986,14 @@ 10 - + 0 - - - - Use this set - - - - - - - Set 1: - - - - - - - Export - - - - - - - Import - - - - - - Use this set - - - true - - - - Qt::Horizontal @@ -2044,43 +2006,20 @@ - - - - Export - - - - - + + Import - - + + - Set 2: + Export - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - @@ -2128,7 +2067,7 @@ false - 5 + 3 false @@ -2157,27 +2096,12 @@ - Set 1 Default - - - - - Set 1 Actual + Default - Set 2 Default - - - - false - - - - - - Set 2 Actual + Actual @@ -2207,8 +2131,8 @@ 0 0 - 529 - 204 + 678 + 378 diff -r e4593adad5cc -r be130eb147f8 libgui/src/shortcut-manager.cc --- a/libgui/src/shortcut-manager.cc Sat Nov 07 17:24:02 2015 -0800 +++ b/libgui/src/shortcut-manager.cc Sun Nov 08 11:59:50 2015 +0100 @@ -321,29 +321,21 @@ void shortcut_manager::init (QString description, QString key, QKeySequence def_sc) { - QKeySequence actual_0 + QKeySequence actual = QKeySequence (_settings->value ("shortcuts/"+key, def_sc).toString ()); - QKeySequence actual_1 - = QKeySequence (_settings->value ("shortcuts/"+key+"_1", def_sc).toString ()); // append the new shortcut to the list shortcut_t shortcut_info; shortcut_info.description = description; shortcut_info.settings_key = key; - shortcut_info.actual_sc [0] = actual_0; - shortcut_info.actual_sc [1] = actual_1; - shortcut_info.default_sc [0] = def_sc; - shortcut_info.default_sc [1] = def_sc; // TODO: Different defaults + shortcut_info.actual_sc = actual; + shortcut_info.default_sc = def_sc; _sc << shortcut_info; // insert shortcut prepended by widget in order check for duplicates later QString widget = key.section ('_',0,0); // get widget that uses the shortcut - if (! actual_0.isEmpty ()) - _shortcut_hash[widget + ":" + actual_0.toString ()] = - _sc.count (); // offset of 1 to avoid 0 - if (! actual_1.isEmpty ()) - _shortcut_hash[widget + "_1:" + actual_1.toString ()] = - _sc.count (); // offset of 1 to avoid 0 + if (! actual.isEmpty ()) + _shortcut_hash[widget + ":" + actual.toString ()] = _sc.count (); // offset of 1 to avoid 0 _action_hash[key] = _sc.count (); // offset of 1 to avoid 0 } @@ -415,14 +407,11 @@ QColor fg = QColor (tree_item->foreground (1).color ()); fg.setAlpha (128); tree_item->setForeground (1, QBrush (fg)); - tree_item->setForeground (3, QBrush (fg)); // write the shortcuts tree_item->setText (0, sc.description); - tree_item->setText (1, sc.default_sc [0]); - tree_item->setText (2, sc.actual_sc [0]); - tree_item->setText (3, sc.default_sc [1]); - tree_item->setText (4, sc.actual_sc [1]); + tree_item->setText (1, sc.default_sc); + tree_item->setText (2, sc.actual_sc); _item_index_hash[tree_item] = i + 1; // index+1 to avoid 0 _index_item_hash[i] = tree_item; @@ -432,36 +421,18 @@ // write one or all actual shortcut set(s) into a settings file void -shortcut_manager::do_write_shortcuts (int set, QSettings* settings, +shortcut_manager::do_write_shortcuts (QSettings* settings, bool closing) { - if (set) - { - // set is not zero, only write the desired set (index = set-1) - // into the settings file that the user has selected for this export - for (int i = 0; i < _sc.count (); i++) // loop over all shortcuts - { - settings->setValue("shortcuts/"+_sc.at (i).settings_key, - _sc.at (i).actual_sc[set-1].toString ()); - } - } - else + for (int i = 0; i < _sc.count (); i++) // loop over all shortcuts { - // set is zero, write all sets into the normal octave settings file - // (this is only the case when called from the closing settings dialog) - for (int i = 0; i < _sc.count (); i++) // loop over all shortcuts - { - settings->setValue("shortcuts/"+_sc.at (i).settings_key, - _sc.at (i).actual_sc[0].toString ()); - settings->setValue("shortcuts/"+_sc.at (i).settings_key+"_1", - _sc.at (i).actual_sc[1].toString ()); - } - - if (closing) - { - delete _dialog; // the dialog for key sequences can be removed now - _dialog = 0; // make sure it is zero again - } + settings->setValue("shortcuts/"+_sc.at (i).settings_key, + _sc.at (i).actual_sc.toString ()); + } + if (closing) + { + delete _dialog; // the dialog for key sequences can be removed now + _dialog = 0; // make sure it is zero again } settings->sync (); // sync the settings file @@ -470,35 +441,22 @@ void shortcut_manager::do_set_shortcut (QAction* action, const QString& key) { - int set = _settings->value ("shortcuts/set",0).toInt (); int index; index = _action_hash[key] - 1; - QString key_set = key; - if (set == 1) - key_set = key+"_1"; - if (index > -1 && index < _sc.count ()) action->setShortcut (QKeySequence ( - _settings->value ("shortcuts/" + key_set, _sc.at (index).default_sc[set]).toString ())); + _settings->value ("shortcuts/" + key, _sc.at (index).default_sc).toString ())); else - qDebug () << "Key: " << key_set << " not found in _action_hash"; + qDebug () << "Key: " << key << " not found in _action_hash"; } void shortcut_manager::handle_double_clicked (QTreeWidgetItem* item, int col) { - switch (col) - { - case 2: - case 4: - _selected_set = col/2 - 1; - break; - - default: - return; - } + if (col != 2) + return; int i = _item_index_hash[item]; if (i == 0) @@ -514,8 +472,7 @@ { _dialog = new QDialog (this); - _dialog->setWindowTitle (tr ("Enter new Shortcut for Set %1") - .arg (_selected_set + 1)); + _dialog->setWindowTitle (tr ("Enter new Shortcut")); QVBoxLayout *box = new QVBoxLayout(_dialog); @@ -569,8 +526,8 @@ } - _edit_actual->setText (_sc.at (index).actual_sc[_selected_set]); - _label_default->setText (_sc.at (index).default_sc[_selected_set]); + _edit_actual->setText (_sc.at (index).actual_sc); + _label_default->setText (_sc.at (index).default_sc); _handled_index = index; _edit_actual->setFocus (); @@ -590,8 +547,6 @@ QString widget = _sc.at (_handled_index).settings_key.section ('_',0,0); // and look for shortcut QString sep = ":"; - if (_selected_set) - sep = "_1:"; int double_index = _shortcut_hash[widget + sep + _edit_actual->text()] - 1; @@ -609,26 +564,25 @@ if (ret == QMessageBox::Yes) { shortcut_t double_shortcut = _sc.at (double_index); - double_shortcut.actual_sc[_selected_set] = QKeySequence (); + double_shortcut.actual_sc = QKeySequence (); _sc.replace (double_index, double_shortcut); - _index_item_hash[double_index]->setText ((_selected_set + 1)*2, QKeySequence ()); + _index_item_hash[double_index]->setText (2, QKeySequence ()); } else return; } shortcut_t shortcut = _sc.at (_handled_index); - if (! shortcut.actual_sc[_selected_set].isEmpty ()) + if (! shortcut.actual_sc.isEmpty ()) _shortcut_hash.remove (widget + sep + - shortcut.actual_sc[_selected_set].toString ()); - shortcut.actual_sc[_selected_set] = _edit_actual->text(); + shortcut.actual_sc.toString ()); + shortcut.actual_sc = _edit_actual->text(); _sc.replace (_handled_index, shortcut); - _index_item_hash[_handled_index]->setText ((_selected_set + 1)*2, - shortcut.actual_sc[_selected_set]); + _index_item_hash[_handled_index]->setText (2, shortcut.actual_sc); - if (! shortcut.actual_sc[_selected_set].isEmpty ()) - _shortcut_hash[widget + sep + shortcut.actual_sc[_selected_set].toString ()] = + if (! shortcut.actual_sc.isEmpty ()) + _shortcut_hash[widget + sep + shortcut.actual_sc.toString ()] = _handled_index + 1; } @@ -640,27 +594,27 @@ // import a shortcut set from a given settings file and refresh the tree view void -shortcut_manager::import_shortcuts (int set, QSettings *settings) +shortcut_manager::import_shortcuts (QSettings *settings) { for (int i = 0; i < _sc.count (); i++) { // update the list of all shortcuts shortcut_t sc = _sc.at (i); // make a copy - sc.actual_sc[set-1] = QKeySequence ( // get new shortcut from settings - settings->value ("shortcuts/"+sc.settings_key,sc.actual_sc[set-1]). + sc.actual_sc = QKeySequence ( // get new shortcut from settings + settings->value ("shortcuts/"+sc.settings_key,sc.actual_sc). toString ()); // and use the old one as default _sc.replace (i,sc); // replace the old with the new one // update the tree view QTreeWidgetItem* tree_item = _index_item_hash[i]; // get related tree item - tree_item->setText (2*set, sc.actual_sc [set-1]); // display new shortcut + tree_item->setText (2, sc.actual_sc); // display new shortcut } } // import or export of shortcut sets, // called from settings dialog when related buttons are clicked void -shortcut_manager::do_import_export (bool import, int set) +shortcut_manager::do_import_export (bool import) { QString file; @@ -669,13 +623,13 @@ if (import) { file = QFileDialog::getOpenFileName (this, - tr ("Import shortcut set %1 from file ...").arg (set), QString (), + tr ("Import shortcuts from file ..."), QString (), tr ("Octave Shortcut Files (*.osc);;All Files (*)")); } else { file = QFileDialog::getSaveFileName (this, - tr ("Export shortcut set %1 into file ...").arg (set), QString (), + tr ("Export shortcuts into file ..."), QString (), tr ("Octave Shortcut Files (*.osc);;All Files (*)")); } @@ -685,9 +639,9 @@ { // the settings object was successfully created: carry on if (import) - import_shortcuts (set, osc_settings); // import (special action) + import_shortcuts (osc_settings); // import (special action) else - do_write_shortcuts (set, osc_settings, false); // export, (saving settings) + do_write_shortcuts (osc_settings, false); // export, (saving settings) } else qWarning () << tr ("Failed to open %1 as octave shortcut file"). arg (file); diff -r e4593adad5cc -r be130eb147f8 libgui/src/shortcut-manager.h --- a/libgui/src/shortcut-manager.h Sat Nov 07 17:24:02 2015 -0800 +++ b/libgui/src/shortcut-manager.h Sun Nov 08 11:59:50 2015 +0100 @@ -63,10 +63,10 @@ instance->do_init_data (); } - static void write_shortcuts (int set, QSettings *settings, bool closing) + static void write_shortcuts (QSettings *settings, bool closing) { if (instance_ok ()) - instance->do_write_shortcuts (set, settings, closing); + instance->do_write_shortcuts (settings, closing); } static void set_shortcut (QAction *action, const QString& key) @@ -81,10 +81,10 @@ instance->do_fill_treewidget (tree_view); } - static void import_export (bool import, int set) + static void import_export (bool import) { if (instance_ok ()) - instance->do_import_export (import, set); + instance->do_import_export (import); } public slots: @@ -113,12 +113,12 @@ void init (QString, QString, QKeySequence); void do_init_data (); - void do_write_shortcuts (int set, QSettings *settings, bool closing); + void do_write_shortcuts (QSettings *settings, bool closing); void do_set_shortcut (QAction *action, const QString& key); void do_fill_treewidget (QTreeWidget *tree_view); - void do_import_export (bool import, int set); + void do_import_export (bool import); void shortcut_dialog (int); - void import_shortcuts (int set, QSettings *settings); + void import_shortcuts (QSettings *settings); class shortcut_t { @@ -126,25 +126,15 @@ shortcut_t (void) : tree_item (0), description (), settings_key (), - actual_sc (new QKeySequence[2]), default_sc (new QKeySequence[2]) - { - actual_sc[0] = QKeySequence (); - actual_sc[1] = QKeySequence (); - - default_sc[0] = QKeySequence (); - default_sc[1] = QKeySequence (); - } + actual_sc (QKeySequence ()), default_sc (QKeySequence ()) + { } shortcut_t (const shortcut_t& x) : tree_item (x.tree_item), description (x.description), - settings_key (x.settings_key), - actual_sc (new QKeySequence[2]), default_sc (new QKeySequence[2]) + settings_key (x.settings_key) { - actual_sc[0] = x.actual_sc[0]; - actual_sc[1] = x.actual_sc[1]; - - default_sc[0] = x.default_sc[0]; - default_sc[1] = x.default_sc[1]; + actual_sc = x.actual_sc; + default_sc = x.default_sc; } shortcut_t& operator = (const shortcut_t& x) @@ -155,14 +145,11 @@ description = x.description; settings_key = x.settings_key; - actual_sc = new QKeySequence[2]; - default_sc = new QKeySequence[2]; + actual_sc = QKeySequence (); + default_sc = QKeySequence (); - actual_sc[0] = x.actual_sc[0]; - actual_sc[1] = x.actual_sc[1]; - - default_sc[0] = x.default_sc[0]; - default_sc[1] = x.default_sc[1]; + actual_sc = x.actual_sc; + default_sc = x.default_sc; } return *this; @@ -170,15 +157,13 @@ ~shortcut_t (void) { - delete [] actual_sc; - delete [] default_sc; } QTreeWidgetItem *tree_item; QString description; QString settings_key; - QKeySequence *actual_sc; - QKeySequence *default_sc; + QKeySequence actual_sc; + QKeySequence default_sc; }; QList _sc; @@ -194,7 +179,6 @@ int _handled_index; QSettings *_settings; - int _selected_set; };