|
Krita Source Code Documentation
|
#include <kis_tool_select_base.h>
Inheritance diagram for KisToolSelectBase< BaseClass >:Public Types | |
| 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 } |
Private Attributes | |
| Interaction | m_currentInteraction {Interaction_None} |
| Qt::KeyboardModifiers | m_currentModifiers |
| QPointF | m_currentPos |
| bool | m_didMove = false |
| 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 61 of file kis_tool_select_base.h.
|
private |
| Enumerator | |
|---|---|
| Interaction_None | |
| Interaction_Select | |
| Interaction_MoveSelection | |
Definition at line 547 of file kis_tool_select_base.h.
| enum KisToolSelectBase::SampleLayersMode |
| Enumerator | |
|---|---|
| SampleAllLayers | |
| SampleCurrentLayer | |
| SampleColorLabeledLayers | |
Definition at line 90 of file kis_tool_select_base.h.
|
inline |
Definition at line 66 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inline |
Definition at line 74 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inline |
Definition at line 82 of file kis_tool_select_base.h.
References KisSelectionModifierMapper::instance().
|
inlineoverride |
Definition at line 115 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 248 of file kis_tool_select_base.h.
|
inline |
Definition at line 233 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_selectionActionAlternate.
|
inline |
Definition at line 193 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::antiAliasSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inlineoverride |
Definition at line 260 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::beginPrimaryAction().
|
inline |
Definition at line 475 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 396 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::beginMoveSelectionInteraction(), KisSharedPtr< T >::data(), KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KIS_SAFE_ASSERT_RECOVER_RETURN, KisToolSelectBase< BaseClass >::locateSelectionMaskUnderCursor(), KisToolSelectBase< BaseClass >::m_didMove, KisToolSelectBase< BaseClass >::m_dragStartPos, KisToolSelectBase< BaseClass >::m_moveStrokeId, KoPointerEvent::modifiers(), and KoPointerEvent::point.
|
inline |
Definition at line 492 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 213 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::selectedColorLabels().
|
inlineoverride |
Definition at line 267 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::continuePrimaryAction().
|
inlineoverride |
Definition at line 425 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::m_dragStartPos, KisToolSelectBase< BaseClass >::m_moveStrokeId, and KoPointerEvent::point.
|
inlineoverride |
Definition at line 154 of file kis_tool_select_base.h.
References connect(), 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().
|
inlineoverride |
Definition at line 148 of file kis_tool_select_base.h.
References KisSignalAutoConnectionsStore::clear(), and KisToolSelectBase< BaseClass >::m_modeConnections.
|
inlineoverride |
Definition at line 254 of file kis_tool_select_base.h.
|
inlineoverride |
Definition at line 274 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::endPrimaryAction().
|
inline |
Definition at line 483 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 438 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::endMoveSelectionInteraction(), KisToolSelectBase< BaseClass >::isMovingSelection(), and KisToolSelectBase< BaseClass >::m_moveStrokeId.
|
inline |
Definition at line 500 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_None, KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_currentInteraction, and KisToolSelectBase< BaseClass >::updateCursorDelayed().
|
inline |
Definition at line 208 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::featherSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inline |
Definition at line 198 of file kis_tool_select_base.h.
References KisSelectionToolConfigWidgetHelper::growSelection(), and KisToolSelectBase< BaseClass >::m_widgetHelper.
|
inline |
Definition at line 509 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 538 of file kis_tool_select_base.h.
|
inline |
Definition at line 513 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::Interaction_Select, and KisToolSelectBase< BaseClass >::m_currentInteraction.
|
inlineoverride |
Definition at line 308 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisSelectionModifierMapper::map(), KisToolSelectBase< BaseClass >::setAlternateSelectionAction(), and KisExtendedModifiersMapper::workaroundShiftAltMetaHell().
|
inlineoverride |
Definition at line 337 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::locateSelectionMaskUnderCursor(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisToolSelectBase< BaseClass >::m_currentPos, KisSelectionModifierMapper::map(), KisCursor::moveSelectionCursor(), KisToolSelectBase< BaseClass >::setAlternateSelectionAction(), and KisExtendedModifiersMapper::workaroundShiftAltMetaHell().
|
inline |
Definition at line 281 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 375 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isMovingSelection(), KisToolSelectBase< BaseClass >::isSelecting(), KisToolSelectBase< BaseClass >::locateSelectionMaskUnderCursor(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisToolSelectBase< BaseClass >::m_currentPos, KisSelectionModifierMapper::map(), KoPointerEvent::modifiers(), KisCursor::moveSelectionCursor(), KoPointerEvent::point, and KisToolSelectBase< BaseClass >::setAlternateSelectionAction().
|
inlineoverride |
Definition at line 455 of file kis_tool_select_base.h.
References KisSelectionToolHelper::getSelectionContextMenu(), KisToolSelectBase< BaseClass >::isSelecting(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.
|
inlineoverride |
Definition at line 467 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::isSelecting().
|
inline |
Definition at line 218 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 185 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::alternateSelectionAction(), KisToolSelectBase< BaseClass >::m_widgetHelper, SELECTION_DEFAULT, and KisSelectionToolConfigWidgetHelper::selectionAction().
|
inline |
Definition at line 450 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_didMove.
|
inline |
Definition at line 180 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::selectionMode().
|
inline |
Definition at line 238 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::optionWidget().
|
inlinevirtual |
Definition at line 243 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_selectionActionAlternate.
|
inline |
Definition at line 203 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::m_widgetHelper, and KisSelectionToolConfigWidgetHelper::stopGrowingAtDarkestPixel().
|
inline |
Definition at line 97 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 517 of file kis_tool_select_base.h.
References KisToolSelectBase< BaseClass >::locateSelectionMaskUnderCursor(), KisToolSelectBase< BaseClass >::m_currentModifiers, KisToolSelectBase< BaseClass >::m_currentPos, KisSelectionModifierMapper::map(), KisCursor::moveSelectionCursor(), and KisToolSelectBase< BaseClass >::setAlternateSelectionAction().
|
inlineprotectedvirtual |
Reimplemented in KisToolSelectContiguous, and KisToolSelectSimilar.
Definition at line 542 of file kis_tool_select_base.h.
|
private |
Definition at line 554 of file kis_tool_select_base.h.
|
private |
Definition at line 556 of file kis_tool_select_base.h.
|
private |
Definition at line 559 of file kis_tool_select_base.h.
|
private |
Definition at line 561 of file kis_tool_select_base.h.
|
private |
Definition at line 558 of file kis_tool_select_base.h.
|
private |
Definition at line 563 of file kis_tool_select_base.h.
|
private |
Definition at line 560 of file kis_tool_select_base.h.
|
protected |
Definition at line 536 of file kis_tool_select_base.h.
|
protected |
Definition at line 535 of file kis_tool_select_base.h.