Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions ManiVault/src/util/PixelSelectionTool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ PixelSelectionTool::PixelSelectionTool(QWidget* targetWidget, const bool& enable
_active(false),
_notifyDuringSelection(true),
_brushRadius(BRUSH_RADIUS_DEFAULT),
_fixedBrushRadiusModifier(Qt::NoModifier),
_mousePosition(),
_mousePositions(),
_mouseButtons(),
Expand Down Expand Up @@ -126,6 +127,16 @@ void PixelSelectionTool::setBrushRadius(const float& brushRadius)
paint();
}

Qt::KeyboardModifier PixelSelectionTool::getFixedBrushRadiusModifier() const
{
return _fixedBrushRadiusModifier;
}

void PixelSelectionTool::setFixedBrushRadiusModifier(Qt::KeyboardModifier fixedBrushRadiusModifier)
{
_fixedBrushRadiusModifier = fixedBrushRadiusModifier;
}

QColor PixelSelectionTool::getMainColor() const
{
return _mainColor;
Expand Down Expand Up @@ -495,6 +506,9 @@ bool PixelSelectionTool::eventFilter(QObject* target, QEvent* event)
case PixelSelectionType::Brush:
case PixelSelectionType::Sample:
{
if (_fixedBrushRadiusModifier != Qt::NoModifier && QGuiApplication::keyboardModifiers() == _fixedBrushRadiusModifier)
break;

if (wheelEvent->angleDelta().y() < 0)
setBrushRadius(_brushRadius - BRUSH_RADIUS_DELTA);
else
Expand Down
9 changes: 8 additions & 1 deletion ManiVault/src/util/PixelSelectionTool.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ class CORE_EXPORT PixelSelectionTool : public QObject
*/
void setBrushRadius(const float& brushRadius);

/** Get fixed brush radius modifier */
Qt::KeyboardModifier getFixedBrushRadiusModifier() const;

/** Set fixed brush radius modifier */
void setFixedBrushRadiusModifier(Qt::KeyboardModifier fixedBrushRadiusModifier);

/** Get main drawing color */
QColor getMainColor() const;

Expand All @@ -99,7 +105,7 @@ class CORE_EXPORT PixelSelectionTool : public QObject
void setChanged();

/**
* Get whether the selection process is cBurrently active
* Get whether the selection process is currently active
* @return Boolean indicating whether the selection process is currently active
*/
bool isActive() const {
Expand Down Expand Up @@ -186,6 +192,7 @@ class CORE_EXPORT PixelSelectionTool : public QObject
bool _active; /** Whether the selection process is active */
bool _notifyDuringSelection; /** Whether the selection is published continuously or at the end */
float _brushRadius; /** Brush radius */
Qt::KeyboardModifier _fixedBrushRadiusModifier; /** Do not change brush radius when fixed by pressing a key (e.g. for navigation) */
QPoint _mousePosition; /** Current mouse position */
QVector<QPoint> _mousePositions; /** Recorded mouse positions */
int _mouseButtons; /** State of the left, middle and right mouse buttons */
Expand Down
Loading