diff options
Diffstat (limited to 'src/frontend/displaywindow/btactioncollection.cpp')
-rw-r--r-- | src/frontend/displaywindow/btactioncollection.cpp | 67 |
1 files changed, 17 insertions, 50 deletions
diff --git a/src/frontend/displaywindow/btactioncollection.cpp b/src/frontend/displaywindow/btactioncollection.cpp index 55909b7..f25b972 100644 --- a/src/frontend/displaywindow/btactioncollection.cpp +++ b/src/frontend/displaywindow/btactioncollection.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2011 by the BibleTime developers. +* Copyright 1999-2014 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -12,10 +12,8 @@ #include <QAction> #include <QDebug> #include <QKeySequence> -#include <QSettings> #include <QString> #include <QStringList> -#include "backend/config/cbtconfig.h" #include "util/directory.h" @@ -40,7 +38,7 @@ QList<QAction*> BtActionCollection::actions() { QList<QAction*> actionList; for (ActionMap::const_iterator iter = m_actions.constBegin(); iter != m_actions.constEnd(); - iter++) + ++iter) { actionList.append(iter.value()->action); } @@ -79,7 +77,7 @@ QAction* BtActionCollection::addAction(const QString &name, const QObject *recei QKeySequence BtActionCollection::getDefaultShortcut(QAction* action) { for (ActionMap::const_iterator iter = m_actions.constBegin(); iter != m_actions.constEnd(); - iter++) + ++iter) { if (iter.value()->action == action) { return iter.value()->defaultKeys; @@ -88,57 +86,26 @@ QKeySequence BtActionCollection::getDefaultShortcut(QAction* action) { return QKeySequence(); } -void BtActionCollection::readSettings() { - QSettings* settings = CBTConfig::getConfig(); - settings->beginGroup(m_groupName); - - Q_FOREACH (const QString &key, settings->childKeys()) { - QAction *a = action(key); +void BtActionCollection::readShortcuts(const QString &group) { + QHash<QString, QList <QKeySequence > > shortcuts = btConfig().getShortcuts(group); + for(QHash<QString, QList <QKeySequence> >::const_iterator iter = shortcuts.begin(); + iter != shortcuts.end(); + ++iter) + { + QAction *a = action(iter.key()); if (a == 0) continue; - - QVariant variant = settings->value(key); - // qDebug() << variant << " | " << variant.typeName(); - if (variant.type() != QVariant::List - && variant.type() != QVariant::StringList) - { - continue; - } - - QList<QKeySequence> shortcuts; - if (variant.type() == QVariant::List) { // For BibleTime before 2.9 - Q_FOREACH (const QVariant &shortcut, variant.toList()) { - shortcuts.append(shortcut.toString()); - } - } else { - Q_ASSERT(variant.type() == QVariant::StringList); - Q_FOREACH (const QString &shortcut, variant.toStringList()) { - shortcuts.append(shortcut); - } - } - a->setShortcuts(shortcuts); + action(iter.key())->setShortcuts(iter.value()); } - - settings->endGroup(); } -void BtActionCollection::writeSettings() { - QSettings* settings = CBTConfig::getConfig(); - settings->beginGroup(m_groupName); - +void BtActionCollection::writeShortcuts(const QString &group) { + QHash< QString, QList<QKeySequence> > shortcuts; for (ActionMap::const_iterator iter = m_actions.constBegin(); - iter != m_actions.constEnd(); - iter++) + iter != m_actions.constEnd(); + ++iter) { - // Write beautiful string lists (since 2.9): - QStringList varList; - Q_FOREACH (const QKeySequence &shortcut, iter.value()->action->shortcuts()) { - /// \note saving QKeySequences directly doesn't appear to work! - varList.append(shortcut.toString()); - } - settings->setValue(iter.key(), varList); - // qDebug() << ">>" << settings->value(iter.key()).typeName(); + shortcuts.insert(iter.key(), iter.value()->action->shortcuts()); } - - settings->endGroup(); + btConfig().setShortcuts(group, shortcuts); } |