-
/***************************************************************************
- * Copyright (C) 2010 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <QTimer>
#include "shortcutsmodel.h"
#include "util.h"
-ShortcutsFilter::ShortcutsFilter(QObject *parent) : QSortFilterProxyModel(parent) {
- setDynamicSortFilter(true);
+ShortcutsFilter::ShortcutsFilter(QObject *parent) : QSortFilterProxyModel(parent)
+{
+ setDynamicSortFilter(true);
}
-void ShortcutsFilter::setFilterString(const QString &filterString) {
- _filterString = filterString;
- invalidateFilter();
+
+void ShortcutsFilter::setFilterString(const QString &filterString)
+{
+ _filterString = filterString;
+ invalidateFilter();
}
-bool ShortcutsFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const {
- if(!source_parent.isValid())
- return true;
- QModelIndex index = source_parent.model()->index(source_row, 0, source_parent);
- Q_ASSERT(index.isValid());
- if(!qobject_cast<Action *>(index.data(ShortcutsModel::ActionRole).value<QObject *>())->isShortcutConfigurable())
- return false;
+bool ShortcutsFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+ if (!source_parent.isValid())
+ return true;
+
+ QModelIndex index = source_parent.model()->index(source_row, 0, source_parent);
+ Q_ASSERT(index.isValid());
+ if (!qobject_cast<Action *>(index.data(ShortcutsModel::ActionRole).value<QObject *>())->isShortcutConfigurable())
+ return false;
- for(int col = 0; col < source_parent.model()->columnCount(source_parent); col++) {
- if(source_parent.model()->index(source_row, col, source_parent).data().toString().contains(_filterString, Qt::CaseInsensitive))
- return true;
- }
- return false;
+ for (int col = 0; col < source_parent.model()->columnCount(source_parent); col++) {
+ if (source_parent.model()->index(source_row, col, source_parent).data().toString().contains(_filterString, Qt::CaseInsensitive))
+ return true;
+ }
+ return false;
}
+
/****************************************************************************/
ShortcutsSettingsPage::ShortcutsSettingsPage(const QHash<QString, ActionCollection *> &actionCollections, QWidget *parent)
- : SettingsPage(tr("Interface"), tr("Shortcuts"), parent),
- _shortcutsModel(new ShortcutsModel(actionCollections, this)),
- _shortcutsFilter(new ShortcutsFilter(this))
+ : SettingsPage(tr("Interface"), tr("Shortcuts"), parent),
+ _shortcutsModel(new ShortcutsModel(actionCollections, this)),
+ _shortcutsFilter(new ShortcutsFilter(this))
{
- ui.setupUi(this);
+ ui.setupUi(this);
- _shortcutsFilter->setSourceModel(_shortcutsModel);
- ui.shortcutsView->setModel(_shortcutsFilter);
- ui.shortcutsView->expandAll();
- ui.shortcutsView->resizeColumnToContents(0);
- ui.shortcutsView->sortByColumn(0, Qt::AscendingOrder);
+ _shortcutsFilter->setSourceModel(_shortcutsModel);
+ ui.shortcutsView->setModel(_shortcutsFilter);
+ ui.shortcutsView->expandAll();
+ ui.shortcutsView->resizeColumnToContents(0);
+ ui.shortcutsView->sortByColumn(0, Qt::AscendingOrder);
- ui.keySequenceWidget->setModel(_shortcutsModel);
- connect(ui.keySequenceWidget, SIGNAL(keySequenceChanged(QKeySequence,QModelIndex)), SLOT(keySequenceChanged(QKeySequence,QModelIndex)));
+ ui.keySequenceWidget->setModel(_shortcutsModel);
+ connect(ui.keySequenceWidget, SIGNAL(keySequenceChanged(QKeySequence, QModelIndex)), SLOT(keySequenceChanged(QKeySequence, QModelIndex)));
- connect(ui.shortcutsView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), SLOT(setWidgetStates()));
+ connect(ui.shortcutsView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), SLOT(setWidgetStates()));
- setWidgetStates();
+ setWidgetStates();
- connect(ui.useDefault, SIGNAL(clicked(bool)), SLOT(toggledCustomOrDefault()));
- connect(ui.useCustom, SIGNAL(clicked(bool)), SLOT(toggledCustomOrDefault()));
+ connect(ui.useDefault, SIGNAL(clicked(bool)), SLOT(toggledCustomOrDefault()));
+ connect(ui.useCustom, SIGNAL(clicked(bool)), SLOT(toggledCustomOrDefault()));
- connect(_shortcutsModel, SIGNAL(hasChanged(bool)), SLOT(setChangedState(bool)));
+ connect(_shortcutsModel, SIGNAL(hasChanged(bool)), SLOT(setChangedState(bool)));
- // fugly, but directly setting it from the ctor doesn't seem to work
- QTimer::singleShot(0, ui.searchEdit, SLOT(setFocus()));
+ // fugly, but directly setting it from the ctor doesn't seem to work
+ QTimer::singleShot(0, ui.searchEdit, SLOT(setFocus()));
}
-void ShortcutsSettingsPage::setWidgetStates() {
- if(ui.shortcutsView->currentIndex().isValid() && ui.shortcutsView->currentIndex().parent().isValid()) {
- QKeySequence active = ui.shortcutsView->currentIndex().data(ShortcutsModel::ActiveShortcutRole).value<QKeySequence>();
- QKeySequence def = ui.shortcutsView->currentIndex().data(ShortcutsModel::DefaultShortcutRole).value<QKeySequence>();
- ui.defaultShortcut->setText(def.isEmpty()? tr("None") : def.toString());
- ui.actionBox->setEnabled(true);
- if(active == def) {
- ui.useDefault->setChecked(true);
- ui.keySequenceWidget->setKeySequence(QKeySequence());
- } else {
- ui.useCustom->setChecked(true);
- ui.keySequenceWidget->setKeySequence(active);
+
+void ShortcutsSettingsPage::setWidgetStates()
+{
+ if (ui.shortcutsView->currentIndex().isValid() && ui.shortcutsView->currentIndex().parent().isValid()) {
+ QKeySequence active = ui.shortcutsView->currentIndex().data(ShortcutsModel::ActiveShortcutRole).value<QKeySequence>();
+ QKeySequence def = ui.shortcutsView->currentIndex().data(ShortcutsModel::DefaultShortcutRole).value<QKeySequence>();
+ ui.defaultShortcut->setText(def.isEmpty() ? tr("None") : def.toString(QKeySequence::NativeText));
+ ui.actionBox->setEnabled(true);
+ if (active == def) {
+ ui.useDefault->setChecked(true);
+ ui.keySequenceWidget->setKeySequence(QKeySequence());
+ }
+ else {
+ ui.useCustom->setChecked(true);
+ ui.keySequenceWidget->setKeySequence(active);
+ }
+ }
+ else {
+ ui.defaultShortcut->setText(tr("None"));
+ ui.actionBox->setEnabled(false);
+ ui.useDefault->setChecked(true);
+ ui.keySequenceWidget->setKeySequence(QKeySequence());
}
- } else {
- ui.defaultShortcut->setText(tr("None"));
- ui.actionBox->setEnabled(false);
- ui.useDefault->setChecked(true);
- ui.keySequenceWidget->setKeySequence(QKeySequence());
- }
}
-void ShortcutsSettingsPage::on_searchEdit_textChanged(const QString &text) {
- _shortcutsFilter->setFilterString(text);
+
+void ShortcutsSettingsPage::on_searchEdit_textChanged(const QString &text)
+{
+ _shortcutsFilter->setFilterString(text);
}
-void ShortcutsSettingsPage::keySequenceChanged(const QKeySequence &seq, const QModelIndex &conflicting) {
- if(conflicting.isValid())
- _shortcutsModel->setData(conflicting, QKeySequence(), ShortcutsModel::ActiveShortcutRole);
- QModelIndex rowIdx = _shortcutsFilter->mapToSource(ui.shortcutsView->currentIndex());
- Q_ASSERT(rowIdx.isValid());
- _shortcutsModel->setData(rowIdx, seq, ShortcutsModel::ActiveShortcutRole);
- setWidgetStates();
+void ShortcutsSettingsPage::keySequenceChanged(const QKeySequence &seq, const QModelIndex &conflicting)
+{
+ if (conflicting.isValid())
+ _shortcutsModel->setData(conflicting, QKeySequence(), ShortcutsModel::ActiveShortcutRole);
+
+ QModelIndex rowIdx = _shortcutsFilter->mapToSource(ui.shortcutsView->currentIndex());
+ Q_ASSERT(rowIdx.isValid());
+ _shortcutsModel->setData(rowIdx, seq, ShortcutsModel::ActiveShortcutRole);
+ setWidgetStates();
}
-void ShortcutsSettingsPage::toggledCustomOrDefault() {
- if(!ui.shortcutsView->currentIndex().isValid())
- return;
- QModelIndex index = _shortcutsFilter->mapToSource(ui.shortcutsView->currentIndex());
- Q_ASSERT(index.isValid());
+void ShortcutsSettingsPage::toggledCustomOrDefault()
+{
+ if (!ui.shortcutsView->currentIndex().isValid())
+ return;
- if(ui.useDefault->isChecked()) {
- _shortcutsModel->setData(index, index.data(ShortcutsModel::DefaultShortcutRole));
- } else {
- _shortcutsModel->setData(index, QKeySequence());
- }
- setWidgetStates();
+ QModelIndex index = _shortcutsFilter->mapToSource(ui.shortcutsView->currentIndex());
+ Q_ASSERT(index.isValid());
+
+ if (ui.useDefault->isChecked()) {
+ _shortcutsModel->setData(index, index.data(ShortcutsModel::DefaultShortcutRole));
+ }
+ else {
+ _shortcutsModel->setData(index, QKeySequence());
+ }
+ setWidgetStates();
}
-void ShortcutsSettingsPage::save() {
- _shortcutsModel->commit();
- QtUi::saveShortcuts();
- SettingsPage::save();
+
+void ShortcutsSettingsPage::save()
+{
+ _shortcutsModel->commit();
+ QtUi::saveShortcuts();
+ SettingsPage::save();
}
-void ShortcutsSettingsPage::load() {
- _shortcutsModel->load();
- SettingsPage::load();
+void ShortcutsSettingsPage::load()
+{
+ _shortcutsModel->load();
+
+ SettingsPage::load();
}
-void ShortcutsSettingsPage::defaults() {
- _shortcutsModel->defaults();
- SettingsPage::defaults();
+void ShortcutsSettingsPage::defaults()
+{
+ _shortcutsModel->defaults();
+
+ SettingsPage::defaults();
}