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

#include <SPenSettings.h>

+ Inheritance diagram for SPenSettings:

Public Types

enum  Action {
  Click , DoubleClick , SwipeUp , SwipeDown ,
  SwipeLeft , SwipeRight , CircleCW , CircleCCW
}
 

Public Slots

void slotActivateAction (SPenSettings::Action gestureType)
 
void slotLoadSettings ()
 
void slotTriggerPopupPalette ()
 

Public Member Functions

 SPenSettings (QObject *parent, const QVariantList &)
 
 ~SPenSettings ()
 
- Public Member Functions inherited from KisActionPlugin
 KisActionPlugin (QObject *parent=0)
 
 ~KisActionPlugin () override
 

Private Attributes

QMap< SPenSettings::Action, QString > m_actionMap
 
QScopedPointer< KisActionm_actionShowPopupPalette
 

Additional Inherited Members

- Protected Member Functions inherited from KisActionPlugin
void addAction (const QString &name, KisAction *action)
 
void addOperation (KisOperation *operation)
 
void addUIFactory (KisOperationUIFactory *factory)
 
KisActioncreateAction (const QString &name)
 
QPointer< KisViewManagerviewManager () const
 

Detailed Description

Definition at line 17 of file SPenSettings.h.

Member Enumeration Documentation

◆ Action

Enumerator
Click 
DoubleClick 
SwipeUp 
SwipeDown 
SwipeLeft 
SwipeRight 
CircleCW 
CircleCCW 

Definition at line 24 of file SPenSettings.h.

Constructor & Destructor Documentation

◆ SPenSettings()

SPenSettings::SPenSettings ( QObject * parent,
const QVariantList &  )

Definition at line 29 of file SPenSettings.cpp.

30 : KisActionPlugin(parent)
31{
32 // hack: create action for popup palette
33 m_actionShowPopupPalette.reset(viewManager()->actionManager()->createAction("spen_show_popup_palette"));
34 connect(m_actionShowPopupPalette.data(), SIGNAL(triggered()), this, SLOT(slotTriggerPopupPalette()));
35
37 KisSPenSettingsFactory* settingsFactory = new KisSPenSettingsFactory();
38 preferenceSetRegistry->add("KisSPenSettingsFactory", settingsFactory);
39
40 //emit settingsChanged() if the settings are changed in krita preferences
41 connect(&(settingsFactory->repeater), SIGNAL(settingsUpdated()), this, SLOT(slotLoadSettings()), Qt::UniqueConnection);
42
44
45 KisAction* actionSPenClick = viewManager()->actionManager()->createAction("spen_click");
46 connect(actionSPenClick, &KisAction::triggered, this, [this](){ slotActivateAction(Action::Click); });
47
48 KisAction* actionSPenDoubleClick = viewManager()->actionManager()->createAction("spen_double_click");
49 connect(actionSPenDoubleClick, &KisAction::triggered, this, [this]() { slotActivateAction(Action::DoubleClick); });
50
51 KisAction* actionSPenSwipeUp = viewManager()->actionManager()->createAction("spen_swipe_up");
52 connect(actionSPenSwipeUp, &KisAction::triggered, this, [this]() { slotActivateAction(Action::SwipeUp); });
53
54 KisAction* actionSPenSwipeDown = viewManager()->actionManager()->createAction("spen_swipe_down");
55 connect(actionSPenSwipeDown, &KisAction::triggered, this, [this]() { slotActivateAction(Action::SwipeDown); });
56
57 KisAction* actionSPenSwipeLeft = viewManager()->actionManager()->createAction("spen_swipe_left");
58 connect(actionSPenSwipeLeft, &KisAction::triggered, this, [this]() { slotActivateAction(Action::SwipeLeft); });
59
60 KisAction* actionSPenSwipeRight = viewManager()->actionManager()->createAction("spen_swipe_right");
61 connect(actionSPenSwipeRight, &KisAction::triggered, this, [this]() { slotActivateAction(Action::SwipeRight); });
62
63 KisAction* actionSPenCircleCW = viewManager()->actionManager()->createAction("spen_circle_cw");
64 connect(actionSPenCircleCW, &KisAction::triggered, this, [this]() { slotActivateAction(Action::CircleCW); });
65
66 KisAction* actionSPenCircleCCW = viewManager()->actionManager()->createAction("spen_circle_ccw");
67 connect(actionSPenCircleCCW, &KisAction::triggered, this, [this]() { slotActivateAction(Action::CircleCCW); });
68}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QPointer< KisViewManager > viewManager() const
KisAction * createAction(const QString &name)
KisActionPlugin(QObject *parent=0)
static KisPreferenceSetRegistry * instance()
KisSPenSettingsUpdateRepeater repeater
void slotActivateAction(SPenSettings::Action gestureType)
void slotTriggerPopupPalette()
void slotLoadSettings()
QScopedPointer< KisAction > m_actionShowPopupPalette

References KisAction::actionManager, KoGenericRegistry< T >::add(), connect(), KisActionManager::createAction(), KisPreferenceSetRegistry::instance(), and KisSPenSettingsFactory::repeater.

◆ ~SPenSettings()

SPenSettings::~SPenSettings ( )

Definition at line 70 of file SPenSettings.cpp.

71{
72}

Member Function Documentation

◆ slotActivateAction

void SPenSettings::slotActivateAction ( SPenSettings::Action gestureType)
slot

Definition at line 74 of file SPenSettings.cpp.

75{
76 QString actionName = m_actionMap.value(gestureType);
77// qDebug() << "Gesture " << gestureType << " action " << actionName;
78
79 if (!actionName.isEmpty()) {
81 QAction* action = actionCollection->action(actionName);
82 if (action) {
83// qDebug() << "triggering action " << actionName;
84 action->trigger();
85 }
86 }
87}
A container for a set of QAction objects.
QAction * action(int index) const
virtual KisKActionCollection * actionCollection() const
static KisPart * instance()
Definition KisPart.cpp:131
KisMainWindow * currentMainwindow() const
Definition KisPart.cpp:483
QMap< SPenSettings::Action, QString > m_actionMap

References KisKActionCollection::action(), KisKXMLGUIClient::actionCollection(), KisPart::currentMainwindow(), KisPart::instance(), and m_actionMap.

◆ slotLoadSettings

void SPenSettings::slotLoadSettings ( )
slot

Definition at line 89 of file SPenSettings.cpp.

90{
91 m_actionMap.clear();
92
93 KConfigGroup cfg = KSharedConfig::openConfig()->group("SPenSettings");
94
95 m_actionMap.insert(Action::Click, cfg.readEntry("actionButtonClick", QString()));
96 m_actionMap.insert(Action::DoubleClick,cfg.readEntry("actionButtonDoubleClick", QString()));
97 m_actionMap.insert(Action::SwipeUp,cfg.readEntry("actionGestureSwipeUp", QString()));
98 m_actionMap.insert(Action::SwipeDown, cfg.readEntry("actionGestureSwipeDown", QString()));
99 m_actionMap.insert(Action::SwipeLeft, cfg.readEntry("actionGestureSwipeLeft", QString()));
100 m_actionMap.insert(Action::SwipeRight, cfg.readEntry("actionGestureSwipeRight", QString()));
101 m_actionMap.insert(Action::CircleCW, cfg.readEntry("actionGestureCircleCW", QString()));
102 m_actionMap.insert(Action::CircleCCW, cfg.readEntry("actionGestureCircleCCW", QString()));
103}

References CircleCCW, CircleCW, Click, DoubleClick, m_actionMap, SwipeDown, SwipeLeft, SwipeRight, and SwipeUp.

◆ slotTriggerPopupPalette

void SPenSettings::slotTriggerPopupPalette ( )
slot

Definition at line 105 of file SPenSettings.cpp.

106{
107 if (KisPart::instance()->currentInputManager()->canvas()) {
108 // determine the current location of cursor on the screen, for popup palette placement
109 QPoint cursorPosition = KisPart::instance()->currentInputManager()->canvas()->canvasWidget()->mapFromGlobal(QCursor::pos());
111 if (popupPalette) {
112 if (popupPalette->isVisible()) {
113 popupPalette->dismiss();
114 } else {
115 popupPalette->popup(cursorPosition);
116 }
117 }
118 }
119}
KisPopupPalette * popupPalette
KisAbstractCanvasWidget * canvasWidget
KisCanvas2 * canvas() const
KisInputManager * currentInputManager()
Definition KisPart.cpp:643
void dismiss() override
Called when you want to dismiss a popup widget.
void popup(const QPoint &position) override
Called when and where you want a widget to popup.

References KisInputManager::canvas(), KisCanvas2::canvasWidget, KisPart::currentInputManager(), KisPopupPalette::dismiss(), KisPart::instance(), KisPopupPalette::popup(), and KisCanvas2::popupPalette.

Member Data Documentation

◆ m_actionMap

QMap<SPenSettings::Action, QString> SPenSettings::m_actionMap
private

Definition at line 42 of file SPenSettings.h.

◆ m_actionShowPopupPalette

QScopedPointer<KisAction> SPenSettings::m_actionShowPopupPalette
private

Definition at line 43 of file SPenSettings.h.


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