diff options
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qabstractbutton.cpp | 16 | ||||
-rw-r--r-- | src/widgets/widgets/qcombobox.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qfontcombobox.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit.cpp | 3 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit_p.h | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qmenubar.cpp | 10 | ||||
-rw-r--r-- | src/widgets/widgets/qprogressbar.cpp | 8 | ||||
-rw-r--r-- | src/widgets/widgets/qprogressbar.h | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qslider.cpp | 14 | ||||
-rw-r--r-- | src/widgets/widgets/qtextedit.cpp | 13 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbar.cpp | 16 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbar.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgetlinecontrol.cpp | 34 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgetlinecontrol_p.h | 31 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 19 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol_p_p.h | 1 |
16 files changed, 63 insertions, 126 deletions
diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp index 8c0bcc098f..5f75bd3913 100644 --- a/src/widgets/widgets/qabstractbutton.cpp +++ b/src/widgets/widgets/qabstractbutton.cpp @@ -1178,11 +1178,11 @@ void QAbstractButton::keyPressEvent(QKeyEvent *e) } break; case Qt::Key_Up: - case Qt::Key_Left: next = false; // fall through + case Qt::Key_Left: case Qt::Key_Right: - case Qt::Key_Down: + case Qt::Key_Down: { #ifdef QT_KEYPAD_NAVIGATION if ((QApplication::keypadNavigationEnabled() && (e->key() == Qt::Key_Left || e->key() == Qt::Key_Right)) @@ -1192,13 +1192,13 @@ void QAbstractButton::keyPressEvent(QKeyEvent *e) return; } #endif - QWidget *pw; + QWidget *pw = parentWidget(); if (d->autoExclusive #ifndef QT_NO_BUTTONGROUP || d->group #endif #ifndef QT_NO_ITEMVIEWS - || ((pw = parentWidget()) && qobject_cast<QAbstractItemView *>(pw->parentWidget())) + || (pw && qobject_cast<QAbstractItemView *>(pw->parentWidget())) #endif ) { // ### Using qobject_cast to check if the parent is a viewport of @@ -1209,9 +1209,17 @@ void QAbstractButton::keyPressEvent(QKeyEvent *e) if (hasFocus()) // nothing happend, propagate e->ignore(); } else { + // Prefer parent widget, use this if parent is absent + QWidget *w = pw ? pw : this; + bool reverse = (w->layoutDirection() == Qt::RightToLeft); + if ((e->key() == Qt::Key_Left && !reverse) + || (e->key() == Qt::Key_Right && reverse)) { + next = false; + } focusNextPrevChild(next); } break; + } case Qt::Key_Escape: if (d->down) { setDown(false); diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index dc1e0dbfab..bea4061076 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -2468,7 +2468,7 @@ void QComboBox::showPopup() } container->setGeometry(listRect); -#ifndef Q_WS_MAC +#ifndef Q_OS_MAC const bool updatesEnabled = container->updatesEnabled(); #endif @@ -2484,7 +2484,7 @@ void QComboBox::showPopup() // If updates are disabled at this point we'll miss our chance at painting the popup // menu before it's shown, causing flicker since the window then displays the standard gray // background. -#ifndef Q_WS_MAC +#ifndef Q_OS_MAC container->setUpdatesEnabled(false); #endif @@ -2498,7 +2498,7 @@ void QComboBox::showPopup() ? QAbstractItemView::PositionAtCenter : QAbstractItemView::EnsureVisible); -#ifndef Q_WS_MAC +#ifndef Q_OS_MAC container->setUpdatesEnabled(updatesEnabled); #endif diff --git a/src/widgets/widgets/qfontcombobox.cpp b/src/widgets/widgets/qfontcombobox.cpp index 5a8e083e44..09cbfd663d 100644 --- a/src/widgets/widgets/qfontcombobox.cpp +++ b/src/widgets/widgets/qfontcombobox.cpp @@ -120,8 +120,8 @@ public: QFontFamilyDelegate::QFontFamilyDelegate(QObject *parent) : QAbstractItemDelegate(parent) { - truetype = QIcon(QLatin1String(":/trolltech/styles/commonstyle/images/fonttruetype-16.png")); - bitmap = QIcon(QLatin1String(":/trolltech/styles/commonstyle/images/fontbitmap-16.png")); + truetype = QIcon(QLatin1String(":/qt-project.org/styles/commonstyle/images/fonttruetype-16.png")); + bitmap = QIcon(QLatin1String(":/qt-project.org/styles/commonstyle/images/fontbitmap-16.png")); writingSystem = QFontDatabase::Any; } diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index 07843136ff..1ea636ffb2 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -1669,7 +1669,7 @@ QVariant QLineEdit::inputMethodQuery(Qt::InputMethodQuery property) const case Qt::ImCursorPosition: return QVariant(d->control->cursor()); case Qt::ImSurroundingText: - return QVariant(d->control->realText()); + return QVariant(d->control->text()); case Qt::ImCurrentSelection: return QVariant(selectedText()); case Qt::ImMaximumTextLength: @@ -1748,7 +1748,6 @@ void QLineEdit::focusOutEvent(QFocusEvent *e) reason != Qt::PopupFocusReason) deselect(); - d->control->commitPreedit(); d->setCursorVisible(false); d->control->setCursorBlinkPeriod(0); #ifdef QT_KEYPAD_NAVIGATION diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h index 3b7a0d1b91..d6af91fd65 100644 --- a/src/widgets/widgets/qlineedit_p.h +++ b/src/widgets/widgets/qlineedit_p.h @@ -70,7 +70,7 @@ QT_BEGIN_NAMESPACE -class QLineEditPrivate : public QWidgetPrivate +class Q_AUTOTEST_EXPORT QLineEditPrivate : public QWidgetPrivate { Q_DECLARE_PUBLIC(QLineEdit) public: @@ -109,6 +109,10 @@ public: return !control->isReadOnly(); } + static inline QLineEditPrivate *get(QLineEdit *lineEdit) { + return lineEdit->d_func(); + } + QPoint tripleClick; QBasicTimer tripleClickTimer; uint frame : 1; diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp index 5ec41b8ba6..c9818e056c 100644 --- a/src/widgets/widgets/qmenubar.cpp +++ b/src/widgets/widgets/qmenubar.cpp @@ -1906,16 +1906,6 @@ QAction *QMenuBar::defaultAction() const */ /*! - \enum QMenuBar::Separator - - \compat - - \value Never - \value InWindowsStyle - -*/ - -/*! \fn void QMenuBar::addAction(QAction *action) \overload diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp index 3e5b78fe2b..c02aa0e875 100644 --- a/src/widgets/widgets/qprogressbar.cpp +++ b/src/widgets/widgets/qprogressbar.cpp @@ -526,9 +526,9 @@ void QProgressBar::setInvertedAppearance(bool invert) update(); } -bool QProgressBar::invertedAppearance() +bool QProgressBar::invertedAppearance() const { - Q_D(QProgressBar); + Q_D(const QProgressBar); return d->invertedAppearance; } @@ -549,9 +549,9 @@ void QProgressBar::setTextDirection(QProgressBar::Direction textDirection) update(); } -QProgressBar::Direction QProgressBar::textDirection() +QProgressBar::Direction QProgressBar::textDirection() const { - Q_D(QProgressBar); + Q_D(const QProgressBar); return d->textDirection; } diff --git a/src/widgets/widgets/qprogressbar.h b/src/widgets/widgets/qprogressbar.h index fad1ee4e0b..65ec5fa404 100644 --- a/src/widgets/widgets/qprogressbar.h +++ b/src/widgets/widgets/qprogressbar.h @@ -92,11 +92,9 @@ public: Qt::Orientation orientation() const; void setInvertedAppearance(bool invert); - bool invertedAppearance(); //### Qt5 make const - bool invertedAppearance() const { return const_cast<QProgressBar *>(this)->invertedAppearance(); } + bool invertedAppearance() const; void setTextDirection(QProgressBar::Direction textDirection); - QProgressBar::Direction textDirection(); //### Qt5 make const - QProgressBar::Direction textDirection() const { return const_cast<QProgressBar *>(this)->textDirection(); } + QProgressBar::Direction textDirection() const; void setFormat(const QString &format); QString format() const; diff --git a/src/widgets/widgets/qslider.cpp b/src/widgets/widgets/qslider.cpp index 7f77bc9d03..5f37240d67 100644 --- a/src/widgets/widgets/qslider.cpp +++ b/src/widgets/widgets/qslider.cpp @@ -536,20 +536,6 @@ QSlider::TickPosition QSlider::tickPosition() const } /*! - \fn TickPosition QSlider::tickmarks() const - \compat - - Use tickPosition() instead. -*/ - -/*! - \fn QSlider::setTickmarks(TickPosition position) - \compat - - Use setTickPosition() instead. -*/ - -/*! \property QSlider::tickInterval \brief the interval between tickmarks diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 4b7e1b5978..217fda61dc 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -2491,19 +2491,6 @@ void QTextEdit::ensureCursorVisible() } /*! - \enum QTextEdit::KeyboardAction - - \compat - - \value ActionBackspace - \value ActionDelete - \value ActionReturn - \value ActionKill - \value ActionWordBackspace - \value ActionWordDelete -*/ - -/*! \fn bool QTextEdit::find(const QString &exp, bool cs, bool wo) Use the find() overload that takes a QTextDocument::FindFlags diff --git a/src/widgets/widgets/qtoolbar.cpp b/src/widgets/widgets/qtoolbar.cpp index 84cb5fd10c..6ba29c13b8 100644 --- a/src/widgets/widgets/qtoolbar.cpp +++ b/src/widgets/widgets/qtoolbar.cpp @@ -1279,22 +1279,6 @@ void QToolBar::initStyleOption(QStyleOptionToolBar *option) const layout->getStyleOptionInfo(option, const_cast<QToolBar *>(this)); } -/*! - \reimp -*/ -void QToolBar::childEvent(QChildEvent *event) // ### remove me in 5.0 -{ - QWidget::childEvent(event); -} - -/*! - \reimp -*/ -void QToolBar::resizeEvent(QResizeEvent *event) // ### remove me in 5.0 -{ - QWidget::resizeEvent(event); -} - QT_END_NAMESPACE #include "moc_qtoolbar.cpp" diff --git a/src/widgets/widgets/qtoolbar.h b/src/widgets/widgets/qtoolbar.h index ac59d9803a..1fd5da797b 100644 --- a/src/widgets/widgets/qtoolbar.h +++ b/src/widgets/widgets/qtoolbar.h @@ -147,9 +147,7 @@ Q_SIGNALS: protected: void actionEvent(QActionEvent *event); void changeEvent(QEvent *event); - void childEvent(QChildEvent *event); void paintEvent(QPaintEvent *event); - void resizeEvent(QResizeEvent *event); bool event(QEvent *event); void initStyleOption(QStyleOptionToolBar *option) const; diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index b4a7007190..c9300d3cdd 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -184,21 +184,15 @@ void QWidgetLineControl::paste(QClipboard::Mode clipboardMode) /*! \internal - - Exits preedit mode and commits parts marked as tentative commit */ void QWidgetLineControl::commitPreedit() { if (!composeMode()) return; - qApp->inputMethod()->reset(); - - if (!m_tentativeCommit.isEmpty()) { - internalInsert(m_tentativeCommit); - m_tentativeCommit.clear(); - finishChange(-1, true/*not used, not documented*/, false); - } + qApp->inputMethod()->commit(); + if (!composeMode()) + return; m_preeditCursor = 0; setPreeditArea(-1, QString()); @@ -573,13 +567,7 @@ void QWidgetLineControl::processInputMethodEvent(QInputMethodEvent *event) else if (m_preeditCursor != oldPreeditCursor) emit updateMicroFocus(); - bool tentativeCommitChanged = (m_tentativeCommit != event->tentativeCommitString()); - if (tentativeCommitChanged) { - m_textDirty = true; - m_tentativeCommit = event->tentativeCommitString(); - } - - if (isGettingInput || tentativeCommitChanged) + if (isGettingInput) finishChange(priorState); if (selectionChange) @@ -687,15 +675,6 @@ bool QWidgetLineControl::finishChange(int validateFromState, bool update, bool e return true; } m_cursor = cursorCopy; - - if (!m_tentativeCommit.isEmpty()) { - textCopy.insert(m_cursor, m_tentativeCommit); - bool validInput = (m_validator->validate(textCopy, cursorCopy) != QValidator::Invalid); - if (!validInput) - m_tentativeCommit.clear(); - } - } else { - m_tentativeCommit.clear(); } } #endif @@ -806,6 +785,11 @@ void QWidgetLineControl::internalInsert(const QString &s) if (m_passwordEchoTimer != 0) killTimer(m_passwordEchoTimer); int delay = qGuiApp->styleHints()->passwordMaskDelay(); +#ifdef QT_BUILD_INTERNAL + if (m_passwordMaskDelayOverride >= 0) + delay = m_passwordMaskDelayOverride; +#endif + if (delay > 0) m_passwordEchoTimer = startTimer(delay); } diff --git a/src/widgets/widgets/qwidgetlinecontrol_p.h b/src/widgets/widgets/qwidgetlinecontrol_p.h index 62184a27bb..ba3b202bda 100644 --- a/src/widgets/widgets/qwidgetlinecontrol_p.h +++ b/src/widgets/widgets/qwidgetlinecontrol_p.h @@ -98,6 +98,9 @@ public: , m_threadChecks(false) , m_textLayoutThread(0) #endif +#if defined(QT_BUILD_INTERNAL) + , m_passwordMaskDelayOverride(-1) +#endif , m_keyboardScheme(0) { init(txt); @@ -217,22 +220,13 @@ public: QString text() const { QString content = m_text; - if (!m_tentativeCommit.isEmpty()) - content.insert(m_cursor, m_tentativeCommit); QString res = m_maskData ? stripString(content) : content; return (res.isNull() ? QString::fromLatin1("") : res); } - // like text() but doesn't include preedit - QString realText() const - { - QString res = m_maskData ? stripString(m_text) : m_text; - return (res.isNull() ? QString::fromLatin1("") : res); - } void setText(const QString &txt) { if (composeMode()) qApp->inputMethod()->reset(); - m_tentativeCommit.clear(); internalSetText(txt, -1, false); } void commitPreedit(); @@ -286,7 +280,18 @@ public: bool hasAcceptableInput() const { return hasAcceptableInput(m_text); } bool fixup(); - QString inputMask() const { return m_maskData ? m_inputMask + QLatin1Char(';') + m_blank : QString(); } + QString inputMask() const + { + QString mask; + if (m_maskData) { + mask = m_inputMask; + if (m_blank != QLatin1Char(' ')) { + mask += QLatin1Char(';'); + mask += m_blank; + } + } + return mask; + } void setInputMask(const QString &mask) { parseInputMask(mask); @@ -402,7 +407,6 @@ private: int m_cursor; int m_preeditCursor; int m_cursorWidth; - QString m_tentativeCommit; Qt::LayoutDirection m_layoutDirection; uint m_hideCursor : 1; // used to hide the m_cursor inside preedit areas uint m_separator : 1; @@ -495,6 +499,11 @@ private: mutable QThread *m_textLayoutThread; #endif +public: +#if defined(QT_BUILD_INTERNAL) + int m_passwordMaskDelayOverride; +#endif + Q_SIGNALS: void cursorPositionChanged(int, int); void selectionChanged(); diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index 86dfb30389..d602d6daa5 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -2000,7 +2000,6 @@ void QWidgetTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) } } layout->setAdditionalFormats(overrides); - tentativeCommit = e->tentativeCommitString(); cursor.endEditBlock(); @@ -2057,7 +2056,6 @@ void QWidgetTextControlPrivate::focusEvent(QFocusEvent *e) } #endif } else { - commitPreedit(); setBlinkingCursorEnabled(false); if (cursorIsFocusIndicator @@ -2758,14 +2756,12 @@ void QWidgetTextControlPrivate::commitPreedit() if (!isPreediting()) return; - cursor.beginEditBlock(); - qApp->inputMethod()->reset(); + qApp->inputMethod()->commit(); - if (!tentativeCommit.isEmpty()) { - cursor.insertText(tentativeCommit); - tentativeCommit.clear(); - } + if (!isPreediting()) + return; + cursor.beginEditBlock(); preeditCursor = 0; QTextBlock block = cursor.block(); QTextLayout *layout = block.layout(); @@ -2936,17 +2932,12 @@ bool QWidgetTextControl::find(const QString &exp, QTextDocument::FindFlags optio QString QWidgetTextControl::toPlainText() const { - Q_D(const QWidgetTextControl); - QString plainText = document()->toPlainText(); - if (!d->tentativeCommit.isEmpty()) - plainText.insert(textCursor().position(), d->tentativeCommit); - return plainText; + return document()->toPlainText(); } #ifndef QT_NO_TEXTHTMLPARSER QString QWidgetTextControl::toHtml() const { - // note: currently not including tentative commit return document()->toHtml(); } #endif diff --git a/src/widgets/widgets/qwidgettextcontrol_p_p.h b/src/widgets/widgets/qwidgettextcontrol_p_p.h index d0d940e521..4efb59152a 100644 --- a/src/widgets/widgets/qwidgettextcontrol_p_p.h +++ b/src/widgets/widgets/qwidgettextcontrol_p_p.h @@ -209,7 +209,6 @@ public: int preeditCursor; bool hideCursor; // used to hide the cursor in the preedit area - QString tentativeCommit; QVector<QAbstractTextDocumentLayout::Selection> extraSelections; |