/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "actioncollection.h"
#include "util.h"
-ShortcutsModel::ShortcutsModel(const QHash<QString, ActionCollection *> &actionCollections, QObject *parent)
- : QAbstractItemModel(parent),
- _changedCount(0)
+ShortcutsModel::ShortcutsModel(const QHash<QString, ActionCollection*>& actionCollections, QObject* parent)
+ : QAbstractItemModel(parent)
+ , _changedCount(0)
{
for (int r = 0; r < actionCollections.values().count(); r++) {
- ActionCollection *coll = actionCollections.values().at(r);
- Item *item = new Item();
+ ActionCollection* coll = actionCollections.values().at(r);
+ auto* item = new Item();
item->row = r;
item->collection = coll;
for (int i = 0; i < coll->actions().count(); i++) {
- Action *action = qobject_cast<Action *>(coll->actions().at(i));
+ auto* action = qobject_cast<Action*>(coll->actions().at(i));
if (!action)
continue;
- Item *actionItem = new Item();
+ auto* actionItem = new Item();
actionItem->parentItem = item;
actionItem->row = i;
actionItem->collection = coll;
}
}
-
ShortcutsModel::~ShortcutsModel()
{
qDeleteAll(_categoryItems);
}
-
-QModelIndex ShortcutsModel::parent(const QModelIndex &child) const
+QModelIndex ShortcutsModel::parent(const QModelIndex& child) const
{
if (!child.isValid())
- return QModelIndex();
+ return {};
- Item *item = static_cast<Item *>(child.internalPointer());
+ auto* item = static_cast<Item*>(child.internalPointer());
Q_ASSERT(item);
if (!item->parentItem)
- return QModelIndex();
+ return {};
return createIndex(item->parentItem->row, 0, item->parentItem);
}
-
-QModelIndex ShortcutsModel::index(int row, int column, const QModelIndex &parent) const
+QModelIndex ShortcutsModel::index(int row, int column, const QModelIndex& parent) const
{
if (parent.isValid())
- return createIndex(row, column, static_cast<Item *>(parent.internalPointer())->actionItems.at(row));
+ return createIndex(row, column, static_cast<Item*>(parent.internalPointer())->actionItems.at(row));
// top level category item
return createIndex(row, column, _categoryItems.at(row));
}
-
-int ShortcutsModel::columnCount(const QModelIndex &parent) const
+int ShortcutsModel::columnCount(const QModelIndex&) const
{
return 2;
- if (!parent.isValid())
- return 2;
-
- Item *item = static_cast<Item *>(parent.internalPointer());
- Q_ASSERT(item);
-
- if (!item->parentItem)
- return 2;
-
- return 2;
}
-
-int ShortcutsModel::rowCount(const QModelIndex &parent) const
+int ShortcutsModel::rowCount(const QModelIndex& parent) const
{
if (!parent.isValid())
return _categoryItems.count();
- Item *item = static_cast<Item *>(parent.internalPointer());
+ auto* item = static_cast<Item*>(parent.internalPointer());
Q_ASSERT(item);
if (!item->parentItem)
return 0;
}
-
QVariant ShortcutsModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (orientation != Qt::Horizontal || role != Qt::DisplayRole)
}
}
-
-QVariant ShortcutsModel::data(const QModelIndex &index, int role) const
+QVariant ShortcutsModel::data(const QModelIndex& index, int role) const
{
if (!index.isValid())
return QVariant();
- Item *item = static_cast<Item *>(index.internalPointer());
+ auto* item = static_cast<Item*>(index.internalPointer());
Q_ASSERT(item);
if (!item->parentItem) {
}
}
- Action *action = qobject_cast<Action *>(item->action);
+ auto* action = qobject_cast<Action*>(item->action);
Q_ASSERT(action);
switch (role) {
return QVariant();
case ActionRole:
- return QVariant::fromValue<QObject *>(action);
+ return QVariant::fromValue<QObject*>(action);
case DefaultShortcutRole:
return action->shortcut(Action::DefaultShortcut);
}
}
-
-bool ShortcutsModel::setData(const QModelIndex &index, const QVariant &value, int role)
+bool ShortcutsModel::setData(const QModelIndex& index, const QVariant& value, int role)
{
if (role != ActiveShortcutRole)
return false;
if (!index.parent().isValid())
return false;
- Item *item = static_cast<Item *>(index.internalPointer());
+ auto* item = static_cast<Item*>(index.internalPointer());
Q_ASSERT(item);
QKeySequence newSeq = value.value<QKeySequence>();
if (oldSeq == storedSeq && newSeq != storedSeq) {
if (++_changedCount == 1)
- emit hasChanged(true);
+ emit changed(true);
}
else if (oldSeq != storedSeq && newSeq == storedSeq) {
if (--_changedCount == 0)
- emit hasChanged(false);
+ emit changed(false);
}
return true;
}
-
void ShortcutsModel::load()
{
- foreach(Item *catItem, _categoryItems) {
- foreach(Item *actItem, catItem->actionItems) {
+ foreach (Item* catItem, _categoryItems) {
+ foreach (Item* actItem, catItem->actionItems) {
actItem->shortcut = actItem->action->shortcut(Action::ActiveShortcut);
}
}
- emit dataChanged(index(0, 1), index(rowCount()-1, 1));
+ emit dataChanged(index(0, 1), index(rowCount() - 1, 1));
if (_changedCount != 0) {
_changedCount = 0;
- emit hasChanged(false);
+ emit changed(false);
}
}
-
void ShortcutsModel::commit()
{
- foreach(Item *catItem, _categoryItems) {
- foreach(Item *actItem, catItem->actionItems) {
+ foreach (Item* catItem, _categoryItems) {
+ foreach (Item* actItem, catItem->actionItems) {
actItem->action->setShortcut(actItem->shortcut, Action::ActiveShortcut);
}
}
if (_changedCount != 0) {
_changedCount = 0;
- emit hasChanged(false);
+ emit changed(false);
}
}
-
void ShortcutsModel::defaults()
{
for (int cat = 0; cat < rowCount(); cat++) {