From fa45132f29f5a9224481291159cb9345cf24c4dd Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Mon, 18 Oct 2021 02:50:15 +0300 Subject: [PATCH 1/4] [colorpicker] Refer to a property through id GIT_SILENT --- applets/colorpicker/package/contents/ui/main.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applets/colorpicker/package/contents/ui/main.qml b/applets/colorpicker/package/contents/ui/main.qml index a8c4356dd..9a1e6868c 100644 --- a/applets/colorpicker/package/contents/ui/main.qml +++ b/applets/colorpicker/package/contents/ui/main.qml @@ -102,8 +102,8 @@ Item { columns: root.isVertical ? 1 : 3 rows: root.isVertical ? 3 : 1 - Layout.minimumWidth: isVertical ? PlasmaCore.Units.iconSizes.small : ((height * 2) + spacer.width) - Layout.minimumHeight: isVertical ? ((width * 2) + spacer.height) : PlasmaCore.Units.iconSizes.small + Layout.minimumWidth: root.isVertical ? PlasmaCore.Units.iconSizes.small : ((height * 2) + spacer.width) + Layout.minimumHeight: root.isVertical ? ((width * 2) + spacer.height) : PlasmaCore.Units.iconSizes.small // TODO: Still PC2 for now because: // - It never loses visible focus despite panel widgets never getting focus anyway: https://bugs.kde.org/show_bug.cgi?id=424446 -- GitLab From b01511588a5c45cc7d92a09801d2aa24cba4919f Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Mon, 18 Oct 2021 02:50:15 +0300 Subject: [PATCH 2/4] [colorpicker] Fix typo GIT_SILENT --- applets/colorpicker/package/contents/ui/main.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applets/colorpicker/package/contents/ui/main.qml b/applets/colorpicker/package/contents/ui/main.qml index 9a1e6868c..a4e7bda8e 100644 --- a/applets/colorpicker/package/contents/ui/main.qml +++ b/applets/colorpicker/package/contents/ui/main.qml @@ -328,7 +328,7 @@ Item { onPressed: { // grab pixmap only once - if (Drag.imageSource.toString() === "") { // cannot just do !Drage.imageSource on QUrl + if (Drag.imageSource.toString() === "") { // cannot just do !Drag.imageSource on QUrl dragImageDummy.color = currentColor; dragImageDummy.grabToImage(function (result) { Drag.imageSource = result.url; -- GitLab From a3b0d25c54b18487c790f0529bdec0a2594c0d83 Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Mon, 18 Oct 2021 02:50:15 +0300 Subject: [PATCH 3/4] [colorpicker] Add ability to cancel color picking via Escape key --- applets/colorpicker/plugin/grabwidget.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/applets/colorpicker/plugin/grabwidget.cpp b/applets/colorpicker/plugin/grabwidget.cpp index 3e8834ad2..036528f12 100644 --- a/applets/colorpicker/plugin/grabwidget.cpp +++ b/applets/colorpicker/plugin/grabwidget.cpp @@ -78,6 +78,7 @@ void X11Grabber::pick() m_grabWidget->show(); m_grabWidget->installEventFilter(this); m_grabWidget->grabMouse(Qt::CrossCursor); + m_grabWidget->grabKeyboard(); } bool X11Grabber::eventFilter(QObject *watched, QEvent *event) @@ -86,6 +87,7 @@ bool X11Grabber::eventFilter(QObject *watched, QEvent *event) m_grabWidget->removeEventFilter(this); m_grabWidget->hide(); m_grabWidget->releaseMouse(); + m_grabWidget->releaseKeyboard(); QMouseEvent *me = static_cast(event); @@ -99,6 +101,15 @@ bool X11Grabber::eventFilter(QObject *watched, QEvent *event) setColor(color); } } + } else if (watched == m_grabWidget && event->type() == QEvent::KeyPress) { + QKeyEvent *me = static_cast(event); + + if (me->key() == Qt::Key_Escape) { + m_grabWidget->removeEventFilter(this); + m_grabWidget->hide(); + m_grabWidget->releaseMouse(); + m_grabWidget->releaseKeyboard(); + } } return QObject::eventFilter(watched, event); -- GitLab From 764f0505beea4bc68bb09ff5ee84dd43295b6fab Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Mon, 18 Oct 2021 02:56:40 +0300 Subject: [PATCH 4/4] [colorpicker] Factor out widget releasing logic GIT_SILENT --- applets/colorpicker/plugin/grabwidget.cpp | 18 ++++++++++-------- applets/colorpicker/plugin/grabwidget.h | 2 ++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/applets/colorpicker/plugin/grabwidget.cpp b/applets/colorpicker/plugin/grabwidget.cpp index 036528f12..4449bf816 100644 --- a/applets/colorpicker/plugin/grabwidget.cpp +++ b/applets/colorpicker/plugin/grabwidget.cpp @@ -84,10 +84,7 @@ void X11Grabber::pick() bool X11Grabber::eventFilter(QObject *watched, QEvent *event) { if (watched == m_grabWidget && event->type() == QEvent::MouseButtonRelease) { - m_grabWidget->removeEventFilter(this); - m_grabWidget->hide(); - m_grabWidget->releaseMouse(); - m_grabWidget->releaseKeyboard(); + releaseWidget(); QMouseEvent *me = static_cast(event); @@ -105,16 +102,21 @@ bool X11Grabber::eventFilter(QObject *watched, QEvent *event) QKeyEvent *me = static_cast(event); if (me->key() == Qt::Key_Escape) { - m_grabWidget->removeEventFilter(this); - m_grabWidget->hide(); - m_grabWidget->releaseMouse(); - m_grabWidget->releaseKeyboard(); + releaseWidget(); } } return QObject::eventFilter(watched, event); } +void X11Grabber::releaseWidget() +{ + m_grabWidget->removeEventFilter(this); + m_grabWidget->hide(); + m_grabWidget->releaseMouse(); + m_grabWidget->releaseKeyboard(); +} + KWinWaylandGrabber::KWinWaylandGrabber(QObject *parent) : Grabber(parent) { diff --git a/applets/colorpicker/plugin/grabwidget.h b/applets/colorpicker/plugin/grabwidget.h index b79344471..94778d5aa 100644 --- a/applets/colorpicker/plugin/grabwidget.h +++ b/applets/colorpicker/plugin/grabwidget.h @@ -49,6 +49,8 @@ protected: bool eventFilter(QObject *watched, QEvent *event) override; private: + void releaseWidget(); + QWidget *m_grabWidget; }; -- GitLab