summaryrefslogtreecommitdiffstats
path: root/src/widgets/dialogs/qcolordialog.cpp
diff options
context:
space:
mode:
authorSérgio Martins <sergio.martins@kdab.com>2014-12-26 12:56:11 +0000
committerSérgio Martins <sergio.martins@kdab.com>2015-01-06 14:52:48 +0100
commit5b4f875e129369d92af2e6d9e9eeef019ce10cd1 (patch)
treea96644ae7793c564f45d2a4fae87668b7edbd2aa /src/widgets/dialogs/qcolordialog.cpp
parentebd7df6e5794bbfe4e283f1bed9ac18bf6974d51 (diff)
QColorDialog: Fix flickering when using "Pick screen color"
With non-monospaced fonts the dialog constantly resized itself when hovering with the mouse. This patch has the side effect of fixing another annoyance. Don't present duplicated information to the user, the color name is already shown in the HTML line edit and it's also updated dynamically. Task-number: QTBUG-43448 Change-Id: Ieaeda2a5b876cf15391616aed7d30ed352b463df Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'src/widgets/dialogs/qcolordialog.cpp')
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp
index f7f45c74ac..5b119cf84d 100644
--- a/src/widgets/dialogs/qcolordialog.cpp
+++ b/src/widgets/dialogs/qcolordialog.cpp
@@ -1587,11 +1587,16 @@ void QColorDialogPrivate::_q_pickScreenColor()
buttons->setDisabled(true);
screenColorPickerButton->setDisabled(true);
- q->setCurrentColor(grabScreenColor(QCursor::pos()));
- lblScreenColorInfo->setText(QColorDialog::tr("Cursor at %1, %2, color: %3\nPress ESC to cancel")
- .arg(QCursor::pos().x())
- .arg(QCursor::pos().y())
- .arg(q->currentColor().name()));
+ const QPoint globalPos = QCursor::pos();
+ q->setCurrentColor(grabScreenColor(globalPos));
+ updateColorLabelText(globalPos);
+}
+
+void QColorDialogPrivate::updateColorLabelText(const QPoint &globalPos)
+{
+ lblScreenColorInfo->setText(QColorDialog::tr("Cursor at %1, %2\nPress ESC to cancel")
+ .arg(globalPos.x())
+ .arg(globalPos.y()));
}
void QColorDialogPrivate::releaseColorPicking()
@@ -2196,8 +2201,8 @@ bool QColorDialogPrivate::handleColorPickingMouseMove(QMouseEvent *e)
// QTBUG-39792, do not change standard, custom color selectors while moving as
// otherwise it is not possible to pre-select a custom cell for assignment.
setCurrentColor(color, ShowColor);
- lblScreenColorInfo->setText(QColorDialog::tr("Cursor at %1, %2, color: %3\nPress ESC to cancel")
- .arg(globalPos.x()).arg(globalPos.y()).arg(color.name()));
+ updateColorLabelText(globalPos);
+
return true;
}