Krita Source Code Documentation
Loading...
Searching...
No Matches
KisInputEditorDelegate Class Reference

A delegate providing editors for the keys/buttons/etc. of KisShortcutConfiguration. More...

#include <kis_input_editor_delegate.h>

+ Inheritance diagram for KisInputEditorDelegate:

Classes

class  Private
 

Public Member Functions

QWidget * createEditor (QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const override
 
 KisInputEditorDelegate (QObject *parent=0)
 
void setEditorData (QWidget *editor, const QModelIndex &index) const override
 
void setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
 
QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
void updateEditorGeometry (QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const override
 
 ~KisInputEditorDelegate () override
 

Private Attributes

Private *const d
 

Detailed Description

A delegate providing editors for the keys/buttons/etc. of KisShortcutConfiguration.

Definition at line 16 of file kis_input_editor_delegate.h.

Constructor & Destructor Documentation

◆ KisInputEditorDelegate()

KisInputEditorDelegate::KisInputEditorDelegate ( QObject * parent = 0)

Definition at line 28 of file kis_input_editor_delegate.cpp.

29 : QStyledItemDelegate(parent), d(new Private())
30{
31}

◆ ~KisInputEditorDelegate()

KisInputEditorDelegate::~KisInputEditorDelegate ( )
override

Definition at line 33 of file kis_input_editor_delegate.cpp.

34{
35 delete d;
36
37}

References d.

Member Function Documentation

◆ createEditor()

QWidget * KisInputEditorDelegate::createEditor ( QWidget * parent,
const QStyleOptionViewItem & ,
const QModelIndex & index ) const
override

Definition at line 39 of file kis_input_editor_delegate.cpp.

40{
41 QWidget *editor = 0;
42 KisShortcutConfiguration *s = index.data(Qt::EditRole).value<KisShortcutConfiguration *>();
43
44 switch (s->type()) {
46 editor = new KisKeyInputEditor(parent);
47 break;
48
50 editor = new KisMouseInputEditor(parent);
51 break;
52
54 editor = new KisWheelInputEditor(parent);
55 break;
56
58 editor = new KisGestureSelector(parent);
59 break;
60
61 default:
62 break;
63 }
64
65 return editor;
66}
An editor widget for a list of keys.
An editor widget for mouse buttons with modifiers.
A class encapsulating all settings for a single shortcut.
@ MouseButtonType
A mouse button, possibly with key modifiers.
@ MouseWheelType
Mouse wheel movement, possibly with key modifiers.
@ KeyCombinationType
A list of keys that should be pressed.
An editor widget for mouse wheel input with modifiers.

References KisShortcutConfiguration::GestureType, KisShortcutConfiguration::KeyCombinationType, KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, and KisShortcutConfiguration::type().

◆ setEditorData()

void KisInputEditorDelegate::setEditorData ( QWidget * editor,
const QModelIndex & index ) const
override

Definition at line 68 of file kis_input_editor_delegate.cpp.

69{
70 KisShortcutConfiguration *s = index.model()->data(index, Qt::EditRole).value<KisShortcutConfiguration *>();
71
72 switch (s->type()) {
74 KisKeyInputEditor *e = qobject_cast<KisKeyInputEditor *>(editor);
75 e->setKeys(s->keys());
76 break;
77 }
78
80 KisMouseInputEditor *e = qobject_cast<KisMouseInputEditor *>(editor);
81 e->setKeys(s->keys());
82 e->setButtons(s->buttons());
83 break;
84 }
85
87 KisWheelInputEditor *e = qobject_cast<KisWheelInputEditor *>(editor);
88 e->setKeys(s->keys());
89 e->setWheel(s->wheel());
90 break;
91 }
93 KisGestureSelector *e = qobject_cast<KisGestureSelector *>(editor);
94 e->setGesture(s->gesture());
95 break;
96 }
97
98 default:
99 break;
100 }
101}
void setGesture(KisShortcutConfiguration::GestureAction gestureAction)
void setKeys(const QList< Qt::Key > &newKeys)
void setButtons(Qt::MouseButtons newButtons)
void setKeys(const QList< Qt::Key > &newKeys)
void setWheel(KisShortcutConfiguration::MouseWheelMovement newWheel)
void setKeys(const QList< Qt::Key > &newKeys)

References KisShortcutConfiguration::buttons(), KisShortcutConfiguration::gesture(), KisShortcutConfiguration::GestureType, KisShortcutConfiguration::KeyCombinationType, KisShortcutConfiguration::keys(), KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, KisMouseInputEditor::setButtons(), KisGestureSelector::setGesture(), KisKeyInputEditor::setKeys(), KisMouseInputEditor::setKeys(), KisWheelInputEditor::setKeys(), KisWheelInputEditor::setWheel(), KisShortcutConfiguration::type(), and KisShortcutConfiguration::wheel().

◆ setModelData()

void KisInputEditorDelegate::setModelData ( QWidget * editor,
QAbstractItemModel * model,
const QModelIndex & index ) const
override

Definition at line 103 of file kis_input_editor_delegate.cpp.

104{
105 KisShortcutConfiguration *s = model->data(index, Qt::EditRole).value<KisShortcutConfiguration *>();
106
107 switch (s->type()) {
109 KisKeyInputEditor *e = qobject_cast<KisKeyInputEditor *>(editor);
110 s->setKeys(e->keys());
111 break;
112 }
113
115 KisMouseInputEditor *e = qobject_cast<KisMouseInputEditor *>(editor);
116 s->setKeys(e->keys());
117 s->setButtons(e->buttons());
118 break;
119 }
120
122 KisWheelInputEditor *e = qobject_cast<KisWheelInputEditor *>(editor);
123 s->setKeys(e->keys());
124 s->setWheel(e->wheel());
125 break;
126 }
128 KisGestureSelector *e = qobject_cast<KisGestureSelector *>(editor);
129 s->setGesture(e->gesture());
130 break;
131 }
132 break;
133
134 default:
135 break;
136 }
137
138 model->setData(index, QVariant::fromValue(s), Qt::EditRole);
139}
KisShortcutConfiguration::GestureAction gesture()
QList< Qt::Key > keys() const
Qt::MouseButtons buttons() const
QList< Qt::Key > keys() const
void setButtons(Qt::MouseButtons newButtons)
void setWheel(MouseWheelMovement type)
void setKeys(const QList< Qt::Key > &newKeys)
KisShortcutConfiguration::MouseWheelMovement wheel() const
QList< Qt::Key > keys() const

References KisMouseInputEditor::buttons(), KisGestureSelector::gesture(), KisShortcutConfiguration::GestureType, KisShortcutConfiguration::KeyCombinationType, KisKeyInputEditor::keys(), KisMouseInputEditor::keys(), KisWheelInputEditor::keys(), KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, KisShortcutConfiguration::setButtons(), KisShortcutConfiguration::setGesture(), KisShortcutConfiguration::setKeys(), KisShortcutConfiguration::setWheel(), KisShortcutConfiguration::type(), and KisWheelInputEditor::wheel().

◆ sizeHint()

QSize KisInputEditorDelegate::sizeHint ( const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Definition at line 146 of file kis_input_editor_delegate.cpp.

147{
148 return QStyledItemDelegate::sizeHint(option, index) + QSize(6, 6);
149}

◆ updateEditorGeometry()

void KisInputEditorDelegate::updateEditorGeometry ( QWidget * editor,
const QStyleOptionViewItem & option,
const QModelIndex &  ) const
override

Definition at line 141 of file kis_input_editor_delegate.cpp.

142{
143 editor->setGeometry(option.rect);
144}

Member Data Documentation

◆ d

Private* const KisInputEditorDelegate::d
private

Definition at line 31 of file kis_input_editor_delegate.h.


The documentation for this class was generated from the following files: