[graphics/krita] libs/ui: Add scroll area into cursor settings as it's getting crowded
Emmet O'Neill <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit f9e0fc741e3b0e0da4f8bada36778d6a7f24243b by Emmet O'Neill, on behalf of Le Tien Dat.
Committed on 13/08/2026 at 23:16.
Pushed by emmetoneill into branch 'master'.
Add scroll area into cursor settings as it's getting crowded
Also some variable name changes and added some inline comment
M +161 -199 libs/ui/forms/wdggeneralsettings.ui
M +4 -2 libs/ui/tool/KisAsyncColorSamplerHelper.cpp
https://invent.kde.org/graphics/krita/-/commit/f9e0fc741e3b0e0da4f8bada36778d6a7f24243b
diff --git a/libs/ui/forms/wdggeneralsettings.ui b/libs/ui/forms/wdggeneralsettings.ui
index a4f1feb0ef6..da39cdb7ba7 100644
--- a/libs/ui/forms/wdggeneralsettings.ui
+++ b/libs/ui/forms/wdggeneralsettings.ui
@@ -26,7 +26,7 @@
<height>295</height>
</size>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_6">
+ <layout class="QVBoxLayout" name="verticalLayout_9">
<property name="leftMargin">
<number>0</number>
</property>
@@ -685,216 +685,178 @@
<attribute name="title">
<string>Cursor</string>
</attribute>
- <layout class="QFormLayout" name="formLayout_9">
- <item row="0" column="0">
- <widget class="QLabel" name="textLabel1">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Brush Cursor Icon:</string>
- </property>
- <property name="buddy">
- <cstring>frame</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QComboBox" name="m_cmbCursorShape"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="textLabel1_2">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Brush Outline Shape:</string>
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <item>
+ <widget class="QScrollArea" name="scrollArea_2">
+ <property name="widgetResizable">
+ <bool>true</bool>
</property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QWidget" name="widget_2" native="true">
- <layout class="QVBoxLayout" name="verticalLayout_8">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
+ <widget class="QWidget" name="scrollAreaWidgetContents_2">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>-260</y>
+ <width>1528</width>
+ <height>864</height>
+ </rect>
</property>
- <item>
- <widget class="QComboBox" name="m_cmbOutlineShape"/>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>While painting...</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <property name="spacing">
- <number>3</number>
+ <layout class="QVBoxLayout" name="verticalLayout_13">
+ <item>
+ <widget class="QComboBox" name="m_cmbCursorShape"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="leftMargin">
- <number>9</number>
+ <property name="text">
+ <string>Brush Cursor Icon:</string>
</property>
- <property name="topMargin">
- <number>3</number>
+ <property name="buddy">
+ <cstring>frame</cstring>
</property>
- <property name="bottomMargin">
- <number>3</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel1_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <item>
- <widget class="QCheckBox" name="m_showOutlinePainting">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>200</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>Show outline</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="m_changeBrushOutline">
- <property name="toolTip">
- <string>Dynamically adjust outline to match the effective size of the brush. (For example, as brush size changes due to pen pressure.)</string>
- </property>
- <property name="text">
- <string>Use effective outline size</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_11">
- <property name="text">
- <string>Brush Outline Color:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="KisColorButton" name="cursorColorButton">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QGroupBox" name="m_chkSeparateEraserCursor">
- <property name="title">
- <string>Use separate settings for eraser</string>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <property name="checked">
- <bool>false</bool>
- </property>
- <layout class="QFormLayout" name="formLayout_14">
- <item row="0" column="1">
- <widget class="QComboBox" name="m_cmbEraserCursorShape"/>
- </item>
- <item row="0" column="0">
- <widget class="QLabel" name="label_19">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Eraser Cursor Icon:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_20">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Eraser Outline Shape:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QWidget" name="widget_7" native="true">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_10">
- <property name="leftMargin">
- <number>0</number>
+ <property name="text">
+ <string>Brush Outline Shape:</string>
</property>
- <property name="topMargin">
- <number>0</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget_2" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_8">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="m_cmbOutlineShape"/>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>While painting...</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <property name="leftMargin">
+ <number>9</number>
+ </property>
+ <property name="topMargin">
+ <number>3</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="m_showOutlinePainting">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Show outline</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="m_changeBrushOutline">
+ <property name="toolTip">
+ <string>Dynamically adjust outline to match the effective size of the brush. (For example, as brush size changes due to pen pressure.)</string>
+ </property>
+ <property name="text">
+ <string>Use effective outline size</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="KisColorButton" name="cursorColorButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="rightMargin">
- <number>0</number>
+ <property name="text">
+ <string/>
</property>
- <property name="bottomMargin">
- <number>0</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_11">
+ <property name="text">
+ <string>Brush Outline Color:</string>
</property>
- <item>
- <widget class="QComboBox" name="m_cmbEraserOutlineShape"/>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_6">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>While painting with an eraser...</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_5">
- <property name="spacing">
- <number>3</number>
- </property>
- <property name="topMargin">
- <number>3</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_chkSeparateEraserCursor">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Use separate settings for eraser</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QFormLayout" name="formLayout_14">
+ <item row="0" column="1">
+ <widget class="QComboBox" name="m_cmbEraserCursorShape"/>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_19">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="bottomMargin">
- <number>3</number>
+ <property name="text">
+ <string>Eraser Cursor Icon:</string>
</property>
+<<<<<<< HEAD
<item>
<widget class="QCheckBox" name="m_showEraserOutlinePainting">
<property name="text">
diff --git a/libs/ui/tool/KisAsyncColorSamplerHelper.cpp b/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
index bed260c2eab..00348eb856d 100644
--- a/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
+++ b/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
@@ -586,10 +586,10 @@ void KisAsyncColorSamplerHelper::paintCircle(QPainter &gc,
void KisAsyncColorSamplerHelper::paintCircleCanvasPreview(QPainter &gc, const QRectF &viewRectF, const QRectF &sampleDocRectF, const QPainterPath &clip) {
gc.save();
- QRectF canvasSampleRectF = m_d->canvas->image()->documentToPixel(sampleDocRectF);
+ QRectF sampleCanvasRectF = m_d->canvas->image()->documentToPixel(sampleDocRectF);
// Copy a piece of canvas image with size = (previewDocRect size) / (zoom preview scale)
- QImage canvasPreview = m_d->canvas->image()->convertToQImage(canvasSampleRectF.toRect(), nullptr);
+ QImage canvasPreview = m_d->canvas->image()->convertToQImage(sampleCanvasRectF.toRect(), nullptr);
gc.setCompositionMode(QPainter::CompositionMode_SourceOver);
gc.setClipPath(clip);
@@ -636,6 +636,8 @@ void KisAsyncColorSamplerHelper::paintCircleReferenceImagePreview(QPainter &gc,
QRectF sampleRefRectF = QRectF(sampleRefPointF, QSizeF(shapeRectF.width() / xScale, shapeRectF.height() / yScale));
sampleRefRectF.moveCenter(sampleRefPointF);
+ // Rotate the painter, draw, rotate back is seemingly easier than
+ // trying to rotate the image and the shenanighens that follow
gc.translate(viewRectF.center());
gc.rotate(refImage->rotation());
gc.translate(-viewRectF.center());