Wed, 25 May 2022 17:47:06 +0300
simplify further
#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 {}; }