diff options
author | Liang Qi <liang.qi@qt.io> | 2018-10-25 07:21:05 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-10-25 07:21:53 +0200 |
commit | e28e91ae99b8c3859899e04cc9370534c7c7b86d (patch) | |
tree | cca81b1e745be4f25aab78e8e917c2324594e539 /src/widgets/widgets | |
parent | 5ea233ca6782eb27adf596515cb66ef3dadc1d5e (diff) | |
parent | ebfad73b4e44fe6db8059200da105b4b87888718 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
src/corelib/animation/qpropertyanimation.cpp
src/gui/image/qicon.cpp
tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
Change-Id: I3698172b7b44ebb487cb38f50fd2c4a9f8a35b21
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qabstractspinbox.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit_p.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit_p.h | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qmainwindow.cpp | 21 | ||||
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 9 | ||||
-rw-r--r-- | src/widgets/widgets/qtabbar.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qtabbar_p.h | 10 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgetanimator.cpp | 18 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgetanimator_p.h | 2 |
9 files changed, 38 insertions, 40 deletions
diff --git a/src/widgets/widgets/qabstractspinbox.cpp b/src/widgets/widgets/qabstractspinbox.cpp index 1eafb73ba8..4e1aa51b4b 100644 --- a/src/widgets/widgets/qabstractspinbox.cpp +++ b/src/widgets/widgets/qabstractspinbox.cpp @@ -91,7 +91,7 @@ QT_BEGIN_NAMESPACE \li \l alignment: The alignment of the text in the QAbstractSpinBox. \li \l wrapping: Whether the QAbstractSpinBox wraps from the - minimum value to the maximum value and vica versa. + minimum value to the maximum value and vice versa. \endlist @@ -285,7 +285,7 @@ void QAbstractSpinBox::setSpecialValueText(const QString &specialValueText) \brief whether the spin box is circular. If wrapping is true stepping up from maximum() value will take you - to the minimum() value and vica versa. Wrapping only make sense if + to the minimum() value and vice versa. Wrapping only make sense if you have minimum() and maximum() values set. \snippet code/src_gui_widgets_qabstractspinbox.cpp 0 diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp index fce3d47b17..df8d534afa 100644 --- a/src/widgets/widgets/qlineedit_p.cpp +++ b/src/widgets/widgets/qlineedit_p.cpp @@ -57,7 +57,9 @@ #include "qlist.h" #endif #include <qpainter.h> +#if QT_CONFIG(animation) #include <qpropertyanimation.h> +#endif #include <qstylehints.h> #include <qvalidator.h> @@ -389,7 +391,7 @@ void QLineEditIconButton::setOpacity(qreal value) } } -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) void QLineEditIconButton::startOpacityAnimation(qreal endValue) { QPropertyAnimation *animation = new QPropertyAnimation(this, QByteArrayLiteral("opacity")); diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h index 71a67e3d10..7cd91dfc29 100644 --- a/src/widgets/widgets/qlineedit_p.h +++ b/src/widgets/widgets/qlineedit_p.h @@ -89,7 +89,7 @@ public: qreal opacity() const { return m_opacity; } void setOpacity(qreal value); -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) void animateShow(bool visible) { startOpacityAnimation(visible ? 1.0 : 0.0); } #endif @@ -101,7 +101,7 @@ private slots: void updateCursor(); private: -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) void startOpacityAnimation(qreal endValue); #endif QLineEditPrivate *lineEditPrivate() const; diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp index 9172168761..fae3aebba4 100644 --- a/src/widgets/widgets/qmainwindow.cpp +++ b/src/widgets/widgets/qmainwindow.cpp @@ -249,14 +249,7 @@ void QMainWindowPrivate::init() An example of how to create menus follows: - \code - void MainWindow::createMenus() - { - fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(newAct); - fileMenu->addAction(openAct); - fileMenu->addAction(saveAct); - \endcode + \snippet code/src_widgets_widgets_qmainwindow.cpp 0 The \c createPopupMenu() function creates popup menus when the main window receives context menu events. The default @@ -283,12 +276,7 @@ void QMainWindowPrivate::init() An example of toolbar creation follows: - \code - void MainWindow::createToolBars() - { - fileToolBar = addToolBar(tr("File")); - fileToolBar->addAction(newAct); - \endcode + \snippet code/src_widgets_widgets_qmainwindow.cpp 1 \section2 Creating Dock Widgets @@ -1231,9 +1219,8 @@ Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget *dockwidget) const to the relative weight of the sizes. Example: - \code - resizeDocks({blueWidget, yellowWidget}, {20 , 40}, Qt::Horizontal); - \endcode + \snippet code/src_widgets_widgets_qmainwindow.cpp 2 + If the blue and the yellow widget are nested on the same level they will be resized such that the yellowWidget is twice as big as the blueWidget diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 36a150396c..b498d5fe7a 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -294,6 +294,7 @@ void QPlainTextDocumentLayout::documentChanged(int from, int charsRemoved, int c QTextBlock changeStartBlock = doc->findBlock(from); QTextBlock changeEndBlock = doc->findBlock(qMax(0, from + charsChanged - 1)); + bool blockVisibilityChanged = false; if (changeStartBlock == changeEndBlock && newBlockCount == d->blockCount) { QTextBlock block = changeStartBlock; @@ -311,14 +312,18 @@ void QPlainTextDocumentLayout::documentChanged(int from, int charsRemoved, int c QTextBlock block = changeStartBlock; do { block.clearLayout(); + const int lineCount = block.isVisible() ? 1 : 0; + if (block.lineCount() != lineCount) { + blockVisibilityChanged = true; + block.setLineCount(lineCount); + } if (block == changeEndBlock) break; block = block.next(); } while(block.isValid()); } - if (newBlockCount != d->blockCount) { - + if (newBlockCount != d->blockCount || blockVisibilityChanged) { int changeEnd = changeEndBlock.blockNumber(); int blockDiff = newBlockCount - d->blockCount; int oldChangeEnd = changeEnd - blockDiff; diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index 5959dd0ae4..68453e1842 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -2126,13 +2126,13 @@ void QTabBarPrivate::moveTabFinished(int index) Q_Q(QTabBar); bool cleanup = (pressedIndex == index) || (pressedIndex == -1) || !validIndex(index); bool allAnimationsFinished = true; -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) for(int i = 0; allAnimationsFinished && i < tabList.count(); ++i) { const Tab &t = tabList.at(i); if (t.animation && t.animation->state() == QAbstractAnimation::Running) allAnimationsFinished = false; } -#endif //QT_NO_ANIMATION +#endif // animation if (allAnimationsFinished && cleanup) { if(movingTab) movingTab->setVisible(false); // We might not get a mouse release @@ -2697,7 +2697,7 @@ void CloseButton::paintEvent(QPaintEvent *) style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &p, this); } -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) void QTabBarPrivate::Tab::TabBarAnimation::updateCurrentValue(const QVariant ¤t) { priv->moveTab(priv->tabList.indexOf(*tab), current.toInt()); diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h index 3948b42bc1..9b798e89c9 100644 --- a/src/widgets/widgets/qtabbar_p.h +++ b/src/widgets/widgets/qtabbar_p.h @@ -58,7 +58,9 @@ #include <qicon.h> #include <qtoolbutton.h> #include <qdebug.h> +#if QT_CONFIG(animation) #include <qvariantanimation.h> +#endif #define ANIMATION_DURATION 250 @@ -107,9 +109,9 @@ public: inline Tab(const QIcon &ico, const QString &txt) : enabled(true) , shortcutId(0), text(txt), icon(ico), leftWidget(0), rightWidget(0), lastTab(-1), dragOffset(0) -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) , animation(0) -#endif //QT_NO_ANIMATION +#endif // animation {} bool operator==(const Tab &other) const { return &other == this; } bool enabled; @@ -136,7 +138,7 @@ public: QString accessibleName; #endif -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) ~Tab() { delete animation; } struct TabBarAnimation : public QVariantAnimation { TabBarAnimation(Tab *t, QTabBarPrivate *_priv) : tab(t), priv(_priv) @@ -166,7 +168,7 @@ public: #else void startAnimation(QTabBarPrivate *priv, int duration) { Q_UNUSED(duration); priv->moveTabFinished(priv->tabList.indexOf(*this)); } -#endif //QT_NO_ANIMATION +#endif // animation }; QList<Tab> tabList; mutable QHash<QString, QSize> textSizes; diff --git a/src/widgets/widgets/qwidgetanimator.cpp b/src/widgets/widgets/qwidgetanimator.cpp index b6828a14ef..b1e527e3b6 100644 --- a/src/widgets/widgets/qwidgetanimator.cpp +++ b/src/widgets/widgets/qwidgetanimator.cpp @@ -37,15 +37,17 @@ ** ****************************************************************************/ +#include "qwidgetanimator_p.h" + +#if QT_CONFIG(animation) #include <QtCore/qpropertyanimation.h> +#endif #include <QtWidgets/qwidget.h> #include <QtWidgets/qstyle.h> #if QT_CONFIG(mainwindow) #include <private/qmainwindowlayout_p.h> #endif -#include "qwidgetanimator_p.h" - QT_BEGIN_NAMESPACE QWidgetAnimator::QWidgetAnimator(QMainWindowLayout *layout) : m_mainWindowLayout(layout) @@ -54,7 +56,7 @@ QWidgetAnimator::QWidgetAnimator(QMainWindowLayout *layout) : m_mainWindowLayout void QWidgetAnimator::abort(QWidget *w) { -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) const auto it = m_animation_map.constFind(w); if (it == m_animation_map.cend()) return; @@ -68,16 +70,16 @@ void QWidgetAnimator::abort(QWidget *w) #endif #else Q_UNUSED(w); //there is no animation to abort -#endif //QT_NO_ANIMATION +#endif // animation } -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) void QWidgetAnimator::animationFinished() { QPropertyAnimation *anim = qobject_cast<QPropertyAnimation*>(sender()); abort(static_cast<QWidget*>(anim->targetObject())); } -#endif //QT_NO_ANIMATION +#endif // animation void QWidgetAnimator::animate(QWidget *widget, const QRect &_final_geometry, bool animate) { @@ -91,7 +93,7 @@ void QWidgetAnimator::animate(QWidget *widget, const QRect &_final_geometry, boo const QRect final_geometry = _final_geometry.isValid() || widget->isWindow() ? _final_geometry : QRect(QPoint(-500 - widget->width(), -500 - widget->height()), widget->size()); -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) //If the QStyle has animations, animate if (const int animationDuration = widget->style()->styleHint(QStyle::SH_Widget_Animation_Duration, 0, widget)) { AnimationMap::const_iterator it = m_animation_map.constFind(widget); @@ -106,7 +108,7 @@ void QWidgetAnimator::animate(QWidget *widget, const QRect &_final_geometry, boo connect(anim, SIGNAL(finished()), SLOT(animationFinished())); anim->start(QPropertyAnimation::DeleteWhenStopped); } else -#endif //QT_NO_ANIMATION +#endif // animation { //we do it in one shot widget->setGeometry(final_geometry); diff --git a/src/widgets/widgets/qwidgetanimator_p.h b/src/widgets/widgets/qwidgetanimator_p.h index 90be22c271..920cc3ffc8 100644 --- a/src/widgets/widgets/qwidgetanimator_p.h +++ b/src/widgets/widgets/qwidgetanimator_p.h @@ -73,7 +73,7 @@ public: void abort(QWidget *widget); -#ifndef QT_NO_ANIMATION +#if QT_CONFIG(animation) private Q_SLOTS: void animationFinished(); #endif |