Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy > Class Template Reference

#include <kis_delegated_tool.h>

+ Inheritance diagram for KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >:

Public Member Functions

void activate (const QSet< KoShape * > &shapes) override
 
QList< QPointer< QWidget > > createOptionWidgets () override
 
void deactivate () override
 
 KisDelegatedTool (KoCanvasBase *canvas, const QCursor &cursor, DelegateTool *delegateTool)
 
DelegateTool * localTool () const
 
void mouseDoubleClickEvent (KoPointerEvent *event) override
 
void mouseMoveEvent (KoPointerEvent *event) override
 
void mousePressEvent (KoPointerEvent *event) override
 
void mouseReleaseEvent (KoPointerEvent *event) override
 
void paint (QPainter &painter, const KoViewConverter &converter) override
 

Protected Attributes

QScopedPointer< DelegateTool > m_localTool
 

Detailed Description

template<class BaseClass, class DelegateTool, class ActivationPolicy = NoopActivationPolicy>
class KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >

Definition at line 28 of file kis_delegated_tool.h.

Constructor & Destructor Documentation

◆ KisDelegatedTool()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::KisDelegatedTool ( KoCanvasBase * canvas,
const QCursor & cursor,
DelegateTool * delegateTool )
inline

Definition at line 31 of file kis_delegated_tool.h.

34 : BaseClass(canvas, cursor),
35 m_localTool(delegateTool)
36 {
37 }
QScopedPointer< DelegateTool > m_localTool

Member Function Documentation

◆ activate()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::activate ( const QSet< KoShape * > & shapes)
inlineoverride

Definition at line 43 of file kis_delegated_tool.h.

44 {
45 BaseClass::activate(shapes);
46 m_localTool->activate(shapes);
47 ActivationPolicy::onActivate(BaseClass::canvas());
48
49 KisInputManager *inputManager = (static_cast<KisCanvas2*>(BaseClass::canvas()))->globalInputManager();
50 if (inputManager) {
51 inputManager->attachPriorityEventFilter(this);
52 }
53 }
Central object to manage canvas input.
void attachPriorityEventFilter(QObject *filter, int priority=0)
attachPriorityEventFilter

References KisInputManager::attachPriorityEventFilter(), and KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

◆ createOptionWidgets()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
QList< QPointer< QWidget > > KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::createOptionWidgets ( )
inlineoverride

Definition at line 123 of file kis_delegated_tool.h.

124 {
125 QList<QPointer<QWidget>> baseWidgetList =
126 BaseClass::createOptionWidgets();
127 QList<QPointer<QWidget>> localWidgetList =
128 m_localTool->createOptionWidgets();
129
130 if (baseWidgetList.size() > 0
131 && dynamic_cast<KisOptionCollectionWidget *>(
132 baseWidgetList.first().data())) {
133 KisOptionCollectionWidget *baseOptionsWidget =
134 dynamic_cast<KisOptionCollectionWidget *>(
135 baseWidgetList.first().data());
136 for (int i = 0; i < localWidgetList.size(); ++i) {
137 QWidget *widget = localWidgetList[i];
140 widget->windowTitle());
141 const QString sectionName = "section" + QString::number(i);
142 section->appendWidget(sectionName + "Widget", widget);
143 baseOptionsWidget->appendWidget(sectionName, section);
144 }
145 } else {
146 baseWidgetList.append(localWidgetList);
147 }
148 return baseWidgetList;
149 }
Wrapper class around a KisOptionCollectionWidget that also provide a header with a title label and an...
void appendWidget(const QString &id, QWidget *widget)
Insert the given widget with the given id at the end of the list. The list widget takes ownership of ...
Class providing a list of widgets with some addons such as separators, orientation or individual widg...
void appendWidget(const QString &id, QWidget *widget)
Insert the given widget with the given id at the end of the list. The list widget takes ownership of ...

References KisOptionCollectionWidget::appendWidget(), KisOptionCollectionWidgetWithHeader::appendWidget(), and KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

◆ deactivate()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::deactivate ( )
inlineoverride

Definition at line 55 of file kis_delegated_tool.h.

56 {
57 m_localTool->deactivate();
58 BaseClass::deactivate();
59
60 KisInputManager *inputManager = (static_cast<KisCanvas2*>(BaseClass::canvas()))->globalInputManager();
61 if (inputManager) {
62 inputManager->detachPriorityEventFilter(this);
63 }
64 }
void detachPriorityEventFilter(QObject *filter)
detachPriorityEventFilter

References KisInputManager::detachPriorityEventFilter(), and KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

◆ localTool()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
DelegateTool * KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::localTool ( ) const
inline

Definition at line 39 of file kis_delegated_tool.h.

39 {
40 return m_localTool.data();
41 }

References KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

◆ mouseDoubleClickEvent()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::mouseDoubleClickEvent ( KoPointerEvent * event)
inlineoverride

Definition at line 82 of file kis_delegated_tool.h.

83 {
85 Qt::LeftButton, Qt::ShiftModifier |
86 Qt::ControlModifier | Qt::AltModifier)) {
87
88 Q_ASSERT(m_localTool);
89 m_localTool->mouseDoubleClickEvent(event);
90 }
91 else {
92 BaseClass::mouseDoubleClickEvent(event);
93 }
94 }
#define PRESS_CONDITION_OM(_event, _mode, _button, _modifier)
@ HOVER_MODE
Definition kis_tool.h:299

References KisTool::HOVER_MODE, KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool, and PRESS_CONDITION_OM.

◆ mouseMoveEvent()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::mouseMoveEvent ( KoPointerEvent * event)
inlineoverride

Definition at line 96 of file kis_delegated_tool.h.

97 {
98 Q_ASSERT(m_localTool);
99 m_localTool->mouseMoveEvent(event);
100
101 BaseClass::mouseMoveEvent(event);
102 }

References KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

◆ mousePressEvent()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::mousePressEvent ( KoPointerEvent * event)
inlineoverride

Definition at line 66 of file kis_delegated_tool.h.

67 {
69 Qt::LeftButton, Qt::ShiftModifier |
70 Qt::ControlModifier | Qt::AltModifier)) {
71
72 this->setMode(KisTool::PAINT_MODE);
73
74 Q_ASSERT(m_localTool);
75 m_localTool->mousePressEvent(event);
76 }
77 else {
78 BaseClass::mousePressEvent(event);
79 }
80 }
@ PAINT_MODE
Definition kis_tool.h:300

References KisTool::HOVER_MODE, KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool, KisTool::PAINT_MODE, and PRESS_CONDITION_OM.

◆ mouseReleaseEvent()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::mouseReleaseEvent ( KoPointerEvent * event)
inlineoverride

Definition at line 104 of file kis_delegated_tool.h.

105 {
106 if (this->mode() == KisTool::PAINT_MODE && event->button() == Qt::LeftButton) {
107 this->setMode(KisTool::HOVER_MODE);
108
109 Q_ASSERT(m_localTool);
110 m_localTool->mouseReleaseEvent(event);
111 }
112 else {
113 BaseClass::mouseReleaseEvent(event);
114 }
115 }
Qt::MouseButton button() const
return button pressed (see QMouseEvent::button());

References KoPointerEvent::button(), KisTool::HOVER_MODE, KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool, and KisTool::PAINT_MODE.

◆ paint()

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
void KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::paint ( QPainter & painter,
const KoViewConverter & converter )
inlineoverride

Definition at line 117 of file kis_delegated_tool.h.

118 {
119 Q_ASSERT(m_localTool);
120 m_localTool->paint(painter, converter);
121 }

References KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool.

Member Data Documentation

◆ m_localTool

template<class BaseClass , class DelegateTool , class ActivationPolicy = NoopActivationPolicy>
QScopedPointer<DelegateTool> KisDelegatedTool< BaseClass, DelegateTool, ActivationPolicy >::m_localTool
protected

Definition at line 152 of file kis_delegated_tool.h.


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