From 90631dcbf5683f54e27ecceab9b8f0a1885fdc1e Mon Sep 17 00:00:00 2001 From: Marko Kangas Date: Wed, 13 Apr 2016 15:19:53 +0300 Subject: Change scroll and text areas to respect native wheel focus rule [ChangeLog][QtWidgets][QAbstractScrollArea,QTextEdit,QPlainTextEdit] Changed focus to Qt::StrongFocus. That respects platforms' native guidelines. Task-number: QTBUG-52559 Change-Id: I2aa25d25bbc15facce85ceb7d4a4c1d0ac7df962 Reviewed-by: Marc Mutz --- src/widgets/widgets/qabstractscrollarea.cpp | 2 +- src/widgets/widgets/qplaintextedit.cpp | 2 +- src/widgets/widgets/qtextedit.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/widgets/widgets') diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 65d06eafc5..2e2a042bf1 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -303,7 +303,7 @@ void QAbstractScrollAreaPrivate::init() viewportFilter.reset(new QAbstractScrollAreaFilter(this)); viewport->installEventFilter(viewportFilter.data()); viewport->setFocusProxy(q); - q->setFocusPolicy(Qt::WheelFocus); + q->setFocusPolicy(Qt::StrongFocus); q->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); layoutChildren(); diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 8a64e3a397..59ece406cc 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -795,7 +795,7 @@ void QPlainTextEditPrivate::init(const QString &txt) viewport->setBackgroundRole(QPalette::Base); q->setAcceptDrops(true); - q->setFocusPolicy(Qt::WheelFocus); + q->setFocusPolicy(Qt::StrongFocus); q->setAttribute(Qt::WA_KeyCompression); q->setAttribute(Qt::WA_InputMethodEnabled); q->setInputMethodHints(Qt::ImhMultiLine); diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index c4503538c6..28666f76ce 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -171,7 +171,7 @@ void QTextEditPrivate::init(const QString &html) viewport->setBackgroundRole(QPalette::Base); q->setAcceptDrops(true); - q->setFocusPolicy(Qt::WheelFocus); + q->setFocusPolicy(Qt::StrongFocus); q->setAttribute(Qt::WA_KeyCompression); q->setAttribute(Qt::WA_InputMethodEnabled); q->setInputMethodHints(Qt::ImhMultiLine); -- cgit v1.2.3 From 9e52234da16ba9a82bae5221b9e52dd08b4e712e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Martins?= Date: Sun, 24 Apr 2016 17:13:24 +0100 Subject: Fix clang developer build due to -Winconsistent-missing-override The existing code keeps the overrides from each base class together, so also move them to the correct group after adding Q_DECL_OVERRIDE. Change-Id: I5d89fb4e7f9454ab0c9c6383f8245e64b95e84e9 Reviewed-by: Marc Mutz Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/widgets/widgets/qdatetimeedit_p.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/widgets/widgets') diff --git a/src/widgets/widgets/qdatetimeedit_p.h b/src/widgets/widgets/qdatetimeedit_p.h index 5772647a1a..57bb9d2104 100644 --- a/src/widgets/widgets/qdatetimeedit_p.h +++ b/src/widgets/widgets/qdatetimeedit_p.h @@ -72,15 +72,14 @@ public: void init(const QVariant &var); void readLocaleSettings(); - void emitSignals(EmitPolicy ep, const QVariant &old); - QString textFromValue(const QVariant &f) const; - QVariant valueFromText(const QString &f) const; - QDateTime validateAndInterpret(QString &input, int &, QValidator::State &state, bool fixup = false) const; void clearSection(int index); // Override QAbstractSpinBoxPrivate: + void emitSignals(EmitPolicy ep, const QVariant &old) Q_DECL_OVERRIDE; + QString textFromValue(const QVariant &f) const Q_DECL_OVERRIDE; + QVariant valueFromText(const QString &f) const Q_DECL_OVERRIDE; void _q_editorCursorPositionChanged(int oldpos, int newpos) Q_DECL_OVERRIDE; void interpret(EmitPolicy ep) Q_DECL_OVERRIDE; void clearCache() const Q_DECL_OVERRIDE; @@ -88,16 +87,18 @@ public: void updateEditFieldGeometry() Q_DECL_OVERRIDE; QVariant getZeroVariant() const Q_DECL_OVERRIDE; void setRange(const QVariant &min, const QVariant &max) Q_DECL_OVERRIDE; + void updateEdit() Q_DECL_OVERRIDE; - // Override QDateTimePraser: + // Override QDateTimeParser: QString displayText() const Q_DECL_OVERRIDE { return edit->text(); } QDateTime getMinimum() const Q_DECL_OVERRIDE { return minimum.toDateTime(); } QDateTime getMaximum() const Q_DECL_OVERRIDE { return maximum.toDateTime(); } QLocale locale() const Q_DECL_OVERRIDE { return q_func()->locale(); } + QString getAmPmText(AmPm ap, Case cs) const Q_DECL_OVERRIDE; + int cursorPosition() const Q_DECL_OVERRIDE { return edit ? edit->cursorPosition() : -1; } int absoluteIndex(QDateTimeEdit::Section s, int index) const; int absoluteIndex(const SectionNode &s) const; - void updateEdit(); QDateTime stepBy(int index, int steps, bool test = false) const; int sectionAt(int pos) const; int closestSection(int index, bool forward) const; @@ -108,8 +109,6 @@ public: void updateTimeSpec(); QString valueToText(const QVariant &var) const { return textFromValue(var); } - QString getAmPmText(AmPm ap, Case cs) const; - int cursorPosition() const { return edit ? edit->cursorPosition() : -1; } void _q_resetButton(); void updateArrow(QStyle::StateFlag state); -- cgit v1.2.3 From 002112e80516a29efbb6cef721d74c5fc39fc19d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 28 Apr 2016 14:28:08 +0200 Subject: Fix scroll regression near scroll-view ends Fix regression in a7b0cb467ca5c4a9447d049910c9e3f0abc5897c which caused it to be hard to start scrolling at the ends of a scroll-view if using fine grained scrolling events. Change-Id: I55f3210150b993281545c3ad5a7356d892fa30b5 Reviewed-by: Simon Hausmann --- src/widgets/widgets/qabstractslider.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/widgets/widgets') diff --git a/src/widgets/widgets/qabstractslider.cpp b/src/widgets/widgets/qabstractslider.cpp index 92d2ffde2b..d818d0b6a9 100644 --- a/src/widgets/widgets/qabstractslider.cpp +++ b/src/widgets/widgets/qabstractslider.cpp @@ -723,9 +723,10 @@ bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::Keyb if (stepsToScroll == 0) { // We moved less than a line, but might still have accumulated partial scroll, // unless we already are at one of the ends. - if (offset_accumulated > 0.f && value < maximum) + const float effective_offset = invertedControls ? -offset_accumulated : offset_accumulated; + if (effective_offset > 0.f && value < maximum) return true; - if (offset_accumulated < 0.f && value > minimum) + if (effective_offset < 0.f && value > minimum) return true; offset_accumulated = 0; return false; -- cgit v1.2.3