|
Krita Source Code Documentation
|
#include <kis_tool_select_base.h>
Inheritance diagram for KisToolSelectBase< BaseClass >:Public Types | |
| enum | CursorHit { CursorHit_None , CursorHit_Border , CursorHit_Inside , CursorHit_Outside } |
| enum | SampleLayersMode { SampleAllLayers , SampleCurrentLayer , SampleColorLabeledLayers } |
Protected Member Functions | |
| virtual bool | isPixelOnly () const |
| virtual bool | usesColorLabels () const |
Protected Attributes | |
| SelectionAction | m_selectionActionAlternate |
| KisSelectionToolConfigWidgetHelper | m_widgetHelper |
Private Types | |
| enum | Interaction { Interaction_None , Interaction_Select , Interaction_MoveSelection , Interaction_MoveContent } |
Private Member Functions | |
| Interaction | currentInteraction () const |
Private Attributes | |
| QPoint | m_accumulatedOffset |
| Interaction | m_currentInteraction {Interaction_None} |
| Qt::KeyboardModifiers | m_currentModifiers |
| QPointF | m_currentPos |
| bool | m_didMove = false |
| QPoint | m_dragStartOffset |
| QPointF | m_dragStartPos |
| KisSignalAutoConnectionsStore | m_modeConnections |
| KisStrokeId | m_moveStrokeId |
This is a basic template to create selection tools from basic path based drawing tools. The template overrides the ability to execute alternate actions correctly. The default behavior for the modifier keys is as follows:
Shift: add to selection Alt: subtract from selection Shift+Alt: intersect current selection Ctrl+Alt: symmetric difference Ctrl: replace selection
The mapping itself is done in KisSelectionModifierMapper.
Certain tools also use modifier keys to alter their behavior, e.g. forcing square proportions with the rectangle tool. The template enables the following rules for forwarding keys:
1) If the user is not selecting, then changing the modifier combination changes the selection method.
2) If the user is selecting then the modifier keys are forwarded to the specific tool, so that it can do with them whatever it wants. The selection method is not changed in this stage and it will be the same as just before the user started selecting.
3) Once the user finishes selecting, the selection method is updated to reflect the current modifier combination
4) If the user is moving the selection, then changing the modifiers
Definition at line 62 of file kis_tool_select_base.h.
| enum KisToolSelectBase::CursorHit |
| Enumerator | |
|---|---|
| CursorHit_None | |
| CursorHit_Border | |
| CursorHit_Inside | |
| CursorHit_Outside | |
Definition at line 91 of file kis_tool_select_base.h.
|
private |
| Enumerator | |
|---|---|
| Interaction_None | |
| Interaction_Select | |
| Interaction_MoveSelection | |
| Interaction_MoveContent | |
Definition at line 743 of file kis_tool_select_base.h.
| enum KisToolSelectBase::SampleLayersMode |
| Enumerator | |
|---|---|
| SampleAllLayers | |
| SampleCurrentLayer | |
| SampleColorLabeledLayers | |
Definition at line 99 of file kis_tool_select_base.h.
|
inline |
Definition at line 67 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inline |
Definition at line 75 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inline |
Definition at line 83 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inlineoverride |
Definition at line 124 of file kis_tool_select_base.h.
References KisSignalAutoConnectionsStore::addUniqueConnection(), KisToolSelectBase< BaseClass >::isPixelOnly(), KisToolSelectBase< BaseClass >::m_modeConnections, KisToolSelectBase< BaseClass >::m_widgetHelper, KisSelectionToolConfigWidgetHelper::optionWidget(), KisSelectionOptions::setAdjustmentsSectionVisible(), KisSelectionOptions::setModeSectionVisible(), KisSelectionOptions::setReferenceSectionVisible(), KisToolSelectBase< BaseClass >::updateActionShortcutToolTips(), and KisToolSelectBase< BaseClass >::usesColorLabels().
|
inlineoverride |
Definition at line 263 of file kis_tool_select_base.h.
|
inline |
Definition at line 248 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_selectionActionAlternate.
|
inline |
Definition at line 208 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::antiAliasSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inlineoverride |
Definition at line 275 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::beginPrimaryAction().
|
inline |
Definition at line 611 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_MoveContent, KisToolSelectBase< BaseClass >::Interaction_None, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inline |
Definition at line 594 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_MoveSelection, KisToolSelectBase< BaseClass >::Interaction_None, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inlineoverride |
Definition at line 483 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::beginMoveContentInteraction(), KisToolSelectBase< BaseClass >::beginMoveSelectionInteraction(), KisToolSelectBase< BaseClass >::canBeginNewAction(), KisToolSelectBase< BaseClass >::checkCursorHit(), KisToolSelectBase< BaseClass >::CursorHit_Border, KisToolSelectBase< BaseClass >::CursorHit_Inside, KisSharedPtr< T >::data(), KisToolSelectBase< BaseClass >::initializeStrokeAttributes(), KisToolSelectBase< BaseClass >::Interaction_MoveContent, KIS_SAFE_ASSERT_RECOVER_RETURN, KisToolSelectBase< BaseClass >::locateSelectionMaskUnderCursor(), KisToolSelectBase< BaseClass >::m_currentInteraction, KisToolSelectBase< BaseClass >::m_didMove, KoPointerEvent::modifiers(), KisToolSelectBase< BaseClass >::moveSelectedContent(), KoPointerEvent::point, KisViewManager::selection(), KisToolSelectBase< BaseClass >::updateCursor(), and KisCanvas2::viewManager().
|
inline |
Definition at line 628 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::Interaction_Select, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inline |
Definition at line 458 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::commitMoveSelectionStroke(), KisToolSelectBase< BaseClass >::CursorHit_Outside, KisToolSelectBase< BaseClass >::isMovingContent(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_accumulatedOffset, KisToolSelectBase< BaseClass >::m_dragStartOffset, and KisToolSelectBase< BaseClass >::m_dragStartPos.
|
inline |
Definition at line 306 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::commitMoveSelectionStrokeImpl().
|
inline |
Definition at line 428 of file kis_tool_select_base.h.
References KisCanvas2::coordinatesConverter, KisToolSelectBase< BaseClass >::CursorHit_Border, KisToolSelectBase< BaseClass >::CursorHit_Inside, KisToolSelectBase< BaseClass >::CursorHit_Outside, KisCoordinatesConverter::effectiveZoom(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, KisSelection::outlineCache(), KisSelection::outlineCacheValid(), KisViewManager::selection(), and KisCanvas2::viewManager().
|
inline |
Definition at line 228 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::selectedColorLabels().
|
inline |
Definition at line 310 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::commitMoveSelectionStrokeImpl().
|
inline |
Definition at line 314 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::endMoveContentInteraction(), KisToolSelectBase< BaseClass >::isMovingContent(), KisToolSelectBase< BaseClass >::m_accumulatedOffset, KisToolSelectBase< BaseClass >::m_dragStartOffset, and KisToolSelectBase< BaseClass >::m_moveStrokeId.
|
inlineoverride |
Definition at line 282 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::continuePrimaryAction().
|
inlineoverride |
Definition at line 529 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingContent(), KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::m_accumulatedOffset, KisToolSelectBase< BaseClass >::m_dragStartOffset, KisToolSelectBase< BaseClass >::m_dragStartPos, KisToolSelectBase< BaseClass >::m_moveStrokeId, and KoPointerEvent::point.
|
inlineoverride |
Definition at line 164 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::createOptionWidget(), KisToolSelectBase< BaseClass >::isPixelOnly(), KisToolSelectBase< BaseClass >::m_widgetHelper, KisSelectionToolConfigWidgetHelper::optionWidget(), KisSelectionOptions::setAdjustmentsSectionVisible(), KisSelectionToolConfigWidgetHelper::setConfigGroupForExactTool(), KisSelectionOptions::setModeSectionVisible(), KisSelectionOptions::setReferenceSectionVisible(), KisToolSelectBase< BaseClass >::updateActionShortcutToolTips(), and KisToolSelectBase< BaseClass >::usesColorLabels().
|
inlineprivate |
Definition at line 753 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inlineoverride |
Definition at line 157 of file kis_tool_select_base.h.
References KisSignalAutoConnectionsStore::clear(), KisToolSelectBase< BaseClass >::commitMoveSelectionStroke(), and KisToolSelectBase< BaseClass >::m_modeConnections.
|
inlineoverride |
Definition at line 269 of file kis_tool_select_base.h.
|
inlineoverride |
Definition at line 289 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::endPrimaryAction().
|
inline |
Definition at line 619 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::isMovingContent(), KisToolSelectBase< BaseClass >::m_currentInteraction, and KisToolSelectBase< BaseClass >::updateCursorDelayed().
|
inline |
Definition at line 602 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::m_currentInteraction, and KisToolSelectBase< BaseClass >::updateCursorDelayed().
|
inlineoverride |
Definition at line 543 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::endMoveSelectionInteraction(), KisToolSelectBase< BaseClass >::isMovingContent(), KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::m_accumulatedOffset, KisToolSelectBase< BaseClass >::m_dragStartOffset, KisToolSelectBase< BaseClass >::m_dragStartPos, KisToolSelectBase< BaseClass >::m_moveStrokeId, and KoPointerEvent::point.
|
inline |
Definition at line 636 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_currentInteraction, and KisToolSelectBase< BaseClass >::updateCursorDelayed().
|
inlineoverride |
Definition at line 296 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::commitMoveSelectionStroke().
|
inline |
Definition at line 223 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::featherSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inline |
Definition at line 213 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::growSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inline |
Definition at line 586 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_accumulatedOffset, KisToolSelectBase< BaseClass >::m_didMove, KisToolSelectBase< BaseClass >::m_dragStartOffset, KisToolSelectBase< BaseClass >::m_dragStartPos, and KisToolSelectBase< BaseClass >::m_moveStrokeId.
|
inline |
Definition at line 649 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_MoveContent, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inline |
Definition at line 645 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_MoveSelection, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inlineprotectedvirtual |
Reimplemented in KisToolSelectContiguous, and KisToolSelectSimilar.
Definition at line 734 of file kis_tool_select_base.h.
|
inline |
Definition at line 653 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_Select, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inlineoverride |
Definition at line 356 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisSelectionModifierMapper::map(), KisToolSelectBase< BaseClass >::setAlternateSelectionAction(), KisToolSelectBase< BaseClass >::updateCursor(), and KisExtendedModifiersMapper::workaroundShiftAltMetaHell().
|
inlineoverride |
Definition at line 385 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisSelectionModifierMapper::map(), KisToolSelectBase< BaseClass >::setAlternateSelectionAction(), KisToolSelectBase< BaseClass >::updateCursor(), and KisExtendedModifiersMapper::workaroundShiftAltMetaHell().
|
inline |
Definition at line 329 of file kis_tool_select_base.h.
References KisCanvas2::coordinatesConverter, KisCoordinatesConverter::effectiveZoom(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, KisSelection::outlineCache(), KisSelection::outlineCacheValid(), KisSelection::parentNode, KisViewManager::selection(), and KisCanvas2::viewManager().
|
inlineoverride |
Definition at line 419 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_currentModifiers, KisToolSelectBase< BaseClass >::m_currentPos, KoPointerEvent::point, and KisToolSelectBase< BaseClass >::updateCursor().
|
inline |
Definition at line 203 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::moveSelectedContent().
|
inlineoverride |
Definition at line 566 of file kis_tool_select_base.h.
References KisSelectionToolHelper::getSelectionContextMenu(), KisToolSelectBase< BaseClass >::isSelecting(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.
|
inlineoverride |
Definition at line 578 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isSelecting().
|
inlineoverride |
Definition at line 301 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::cancelMoveSelectionStroke().
|
inline |
Definition at line 233 of file kis_tool_select_base.h.
References KisSelectionOptions::AllLayers, KisSelectionOptions::ColorLabeledLayers, KisSelectionOptions::CurrentLayer, KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, KisToolSelectBase< BaseClass >::m_widgetHelper, KisSelectionToolConfigWidgetHelper::referenceLayers(), KisToolSelectBase< BaseClass >::SampleAllLayers, KisToolSelectBase< BaseClass >::SampleColorLabeledLayers, and KisToolSelectBase< BaseClass >::SampleCurrentLayer.
|
inline |
Definition at line 195 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::alternateSelectionAction(), KisToolSelectBase< BaseClass >::m_widgetHelper, SELECTION_DEFAULT, and KisSelectionToolConfigWidgetHelper::selectionAction().
|
inline |
Definition at line 561 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_didMove.
|
inline |
Definition at line 190 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::selectionMode().
|
inline |
Definition at line 253 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::optionWidget().
|
inlinevirtual |
Definition at line 258 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_selectionActionAlternate.
|
inline |
Definition at line 218 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::stopGrowingAtDarkestPixel().
|
inline |
Definition at line 106 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, KisSelectionToolConfigWidgetHelper::optionWidget(), SELECTION_ADD, SELECTION_INTERSECT, SELECTION_REPLACE, SELECTION_SUBTRACT, and KisSelectionOptions::updateActionButtonToolTip().
|
inline |
Definition at line 657 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::checkCursorHit(), KisToolSelectBase< BaseClass >::currentInteraction(), KisToolSelectBase< BaseClass >::CursorHit_Border, KisToolSelectBase< BaseClass >::CursorHit_Inside, KisToolSelectBase< BaseClass >::CursorHit_None, KisToolSelectBase< BaseClass >::CursorHit_Outside, KisToolSelectBase< BaseClass >::Interaction_MoveContent, KisToolSelectBase< BaseClass >::Interaction_MoveSelection, KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::Interaction_Select, KisToolSelectBase< BaseClass >::m_currentModifiers, KisToolSelectBase< BaseClass >::m_currentPos, KisCursor::moveCursor(), KisToolSelectBase< BaseClass >::moveSelectedContent(), and KisCursor::moveSelectionCursor().
|
inline |
Definition at line 718 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_currentModifiers, KisSelectionModifierMapper::map(), KisToolSelectBase< BaseClass >::setAlternateSelectionAction(), and KisToolSelectBase< BaseClass >::updateCursor().
|
inlineprotectedvirtual |
Reimplemented in KisToolSelectContiguous, and KisToolSelectSimilar.
Definition at line 738 of file kis_tool_select_base.h.
|
private |
Definition at line 761 of file kis_tool_select_base.h.
|
private |
Definition at line 751 of file kis_tool_select_base.h.
|
private |
Definition at line 757 of file kis_tool_select_base.h.
|
private |
Definition at line 760 of file kis_tool_select_base.h.
|
private |
Definition at line 764 of file kis_tool_select_base.h.
|
private |
Definition at line 762 of file kis_tool_select_base.h.
|
private |
Definition at line 759 of file kis_tool_select_base.h.
|
private |
Definition at line 766 of file kis_tool_select_base.h.
|
private |
Definition at line 763 of file kis_tool_select_base.h.
|
protected |
Definition at line 732 of file kis_tool_select_base.h.
|
protected |
Definition at line 731 of file kis_tool_select_base.h.