--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/settingseditor/keyboardshortcutseditor.cpp Fri Nov 08 19:05:07 2019 +0200 @@ -0,0 +1,58 @@ +#include <QAction> +#include "keyboardshortcutseditor.h" +#include "uiutilities.h" + +KeyboardShortcutsEditor::KeyboardShortcutsEditor(QObject* subject, QObject* parent) : + QAbstractTableModel{parent}, + actions{uiutilities::collectActions(subject)} +{ +} + +int KeyboardShortcutsEditor::rowCount(const QModelIndex&) const +{ + return this->actions.size(); +} + +int KeyboardShortcutsEditor::columnCount(const QModelIndex&) const +{ + return 2; +} + +QVariant KeyboardShortcutsEditor::data( + const QModelIndex& index, + int role) const +{ + QAction* const action = this->actions[index.row()]; + const Column column = static_cast<Column>(index.column()); + switch(role) + { + case Qt::DisplayRole: + switch (column) { + case TitleColumn: + return action->text(); + case ShortcutColumn: + return action->shortcut().toString(QKeySequence::NativeText); + } + break; + } + return {}; +} + +QVariant KeyboardShortcutsEditor::headerData( + int section, + Qt::Orientation orientation, + int role) const +{ + if (orientation == Qt::Horizontal and role == Qt::DisplayRole) + { + switch (static_cast<Column>(section)) + { + case TitleColumn: + return tr("Action"); + case ShortcutColumn: + return tr("Shortcut"); + } + } + return {}; +} +