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
62 editor = new KisNativeGestureSelector(parent);
63 break;
64
65 default:
66 break;
67 }
68
69 return editor;
70}
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::KeyCombinationType, KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, KisShortcutConfiguration::NativeGestureType, KisShortcutConfiguration::TouchGestureType, and KisShortcutConfiguration::type().

◆ setEditorData()

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

Definition at line 72 of file kis_input_editor_delegate.cpp.

73{
74 KisShortcutConfiguration *s = index.model()->data(index, Qt::EditRole).value<KisShortcutConfiguration *>();
75
76 switch (s->type()) {
78 KisKeyInputEditor *e = qobject_cast<KisKeyInputEditor *>(editor);
79 e->setKeys(s->keys());
80 break;
81 }
82
84 KisMouseInputEditor *e = qobject_cast<KisMouseInputEditor *>(editor);
85 e->setKeys(s->keys());
86 e->setButtons(s->buttons());
87 break;
88 }
89
91 KisWheelInputEditor *e = qobject_cast<KisWheelInputEditor *>(editor);
92 e->setKeys(s->keys());
93 e->setWheel(s->wheel());
94 break;
95 }
97 KisGestureSelector *e = qobject_cast<KisGestureSelector *>(editor);
99 break;
100 }
102 KisNativeGestureSelector *e = qobject_cast<KisNativeGestureSelector *>(editor);
104 break;
105 }
106
107 default:
108 break;
109 }
110}
void setTouchGesture(KisShortcutConfiguration::TouchGestureAction gestureAction)
void setKeys(const QList< Qt::Key > &newKeys)
void setButtons(Qt::MouseButtons newButtons)
void setKeys(const QList< Qt::Key > &newKeys)
void setNativeGesture(KisShortcutConfiguration::NativeGestureAction gestureAction)
NativeGestureAction nativeGesture() const
TouchGestureAction touchGesture() const
void setWheel(KisShortcutConfiguration::MouseWheelMovement newWheel)
void setKeys(const QList< Qt::Key > &newKeys)

References KisShortcutConfiguration::buttons(), KisShortcutConfiguration::KeyCombinationType, KisShortcutConfiguration::keys(), KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, KisShortcutConfiguration::nativeGesture(), KisShortcutConfiguration::NativeGestureType, KisMouseInputEditor::setButtons(), KisKeyInputEditor::setKeys(), KisMouseInputEditor::setKeys(), KisWheelInputEditor::setKeys(), KisNativeGestureSelector::setNativeGesture(), KisGestureSelector::setTouchGesture(), KisWheelInputEditor::setWheel(), KisShortcutConfiguration::touchGesture(), KisShortcutConfiguration::TouchGestureType, KisShortcutConfiguration::type(), and KisShortcutConfiguration::wheel().

◆ setModelData()

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

Definition at line 112 of file kis_input_editor_delegate.cpp.

113{
114 KisShortcutConfiguration *s = model->data(index, Qt::EditRole).value<KisShortcutConfiguration *>();
115
116 switch (s->type()) {
118 KisKeyInputEditor *e = qobject_cast<KisKeyInputEditor *>(editor);
119 s->setKeys(e->keys());
120 break;
121 }
122
124 KisMouseInputEditor *e = qobject_cast<KisMouseInputEditor *>(editor);
125 s->setKeys(e->keys());
126 s->setButtons(e->buttons());
127 break;
128 }
129
131 KisWheelInputEditor *e = qobject_cast<KisWheelInputEditor *>(editor);
132 s->setKeys(e->keys());
133 s->setWheel(e->wheel());
134 break;
135 }
137 KisGestureSelector *e = qobject_cast<KisGestureSelector *>(editor);
139 break;
140 }
142 KisNativeGestureSelector *e = qobject_cast<KisNativeGestureSelector *>(editor);
144 break;
145 }
146 break;
147
148 default:
149 break;
150 }
151
152 model->setData(index, QVariant::fromValue(s), Qt::EditRole);
153}
KisShortcutConfiguration::TouchGestureAction touchGesture()
QList< Qt::Key > keys() const
Qt::MouseButtons buttons() const
QList< Qt::Key > keys() const
KisShortcutConfiguration::NativeGestureAction nativeGesture()
void setButtons(Qt::MouseButtons newButtons)
void setWheel(MouseWheelMovement type)
void setNativeGesture(NativeGestureAction type)
void setTouchGesture(TouchGestureAction type)
void setKeys(const QList< Qt::Key > &newKeys)
KisShortcutConfiguration::MouseWheelMovement wheel() const
QList< Qt::Key > keys() const

References KisMouseInputEditor::buttons(), KisShortcutConfiguration::KeyCombinationType, KisKeyInputEditor::keys(), KisMouseInputEditor::keys(), KisWheelInputEditor::keys(), KisShortcutConfiguration::MouseButtonType, KisShortcutConfiguration::MouseWheelType, KisNativeGestureSelector::nativeGesture(), KisShortcutConfiguration::NativeGestureType, KisShortcutConfiguration::setButtons(), KisShortcutConfiguration::setKeys(), KisShortcutConfiguration::setNativeGesture(), KisShortcutConfiguration::setTouchGesture(), KisShortcutConfiguration::setWheel(), KisGestureSelector::touchGesture(), KisShortcutConfiguration::TouchGestureType, KisShortcutConfiguration::type(), and KisWheelInputEditor::wheel().

◆ sizeHint()

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

Definition at line 160 of file kis_input_editor_delegate.cpp.

161{
162 return QStyledItemDelegate::sizeHint(option, index) + QSize(6, 6);
163}

◆ updateEditorGeometry()

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

Definition at line 155 of file kis_input_editor_delegate.cpp.

156{
157 editor->setGeometry(option.rect);
158}

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: