summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2009-11-10 13:48:20 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2009-11-10 13:48:20 (GMT)
commit9c1639b401a87b9a93d07f1b0ad9a18b19bf7cdc (patch)
treedac8e3891720babeaf1c8aae14245a062f3d4610
parent56077c71a771e0e92ead2244df51a85669529274 (diff)
parentb6be1c595fa67ec034f04c8a93e57e593ceb97aa (diff)
downloadQt-9c1639b401a87b9a93d07f1b0ad9a18b19bf7cdc.zip
Qt-9c1639b401a87b9a93d07f1b0ad9a18b19bf7cdc.tar.gz
Qt-9c1639b401a87b9a93d07f1b0ad9a18b19bf7cdc.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-widget-team into 4.6
-rw-r--r--demos/sub-attaq/animationmanager.cpp7
-rw-r--r--demos/sub-attaq/animationmanager.h3
-rw-r--r--demos/sub-attaq/boat.cpp6
-rw-r--r--demos/sub-attaq/graphicsscene.cpp1
-rw-r--r--examples/effects/blurpicker/blurpicker.cpp53
-rw-r--r--examples/effects/blurpicker/blurpicker.h12
-rw-r--r--examples/effects/customshader/blurpicker.cpp53
-rw-r--r--examples/effects/customshader/blurpicker.h12
-rw-r--r--examples/effects/fademessage/fademessage.cpp18
-rw-r--r--examples/effects/fademessage/fademessage.h5
-rw-r--r--src/gui/kernel/qaction.cpp26
-rw-r--r--src/gui/kernel/qaction_p.h2
-rw-r--r--src/gui/kernel/qapplication.cpp3
-rw-r--r--src/gui/widgets/qmenu.cpp44
-rw-r--r--src/gui/widgets/qmenu_p.h1
-rw-r--r--src/gui/widgets/qtoolbar.cpp2
-rw-r--r--src/gui/widgets/qtoolbararealayout.cpp2
-rw-r--r--src/gui/widgets/qtoolbarlayout.cpp5
-rw-r--r--src/gui/widgets/qtoolbarlayout_p.h2
19 files changed, 142 insertions, 115 deletions
diff --git a/demos/sub-attaq/animationmanager.cpp b/demos/sub-attaq/animationmanager.cpp
index eb5a125..b3fc8e1 100644
--- a/demos/sub-attaq/animationmanager.cpp
+++ b/demos/sub-attaq/animationmanager.cpp
@@ -62,11 +62,18 @@ AnimationManager *AnimationManager::self()
void AnimationManager::registerAnimation(QAbstractAnimation *anim)
{
+ QObject::connect(anim, SIGNAL(destroyed(QObject*)), this, SLOT(unregisterAnimation_helper(QObject*)));
animations.append(anim);
}
+void AnimationManager::unregisterAnimation_helper(QObject *obj)
+{
+ unregisterAnimation(static_cast<QAbstractAnimation*>(obj));
+}
+
void AnimationManager::unregisterAnimation(QAbstractAnimation *anim)
{
+ QObject::disconnect(anim, SIGNAL(destroyed(QObject*)), this, SLOT(unregisterAnimation_helper(QObject*)));
animations.removeAll(anim);
}
diff --git a/demos/sub-attaq/animationmanager.h b/demos/sub-attaq/animationmanager.h
index 8db13eb..48d84d1 100644
--- a/demos/sub-attaq/animationmanager.h
+++ b/demos/sub-attaq/animationmanager.h
@@ -62,6 +62,9 @@ public slots:
void pauseAll();
void resumeAll();
+private slots:
+ void unregisterAnimation_helper(QObject *obj);
+
private:
static AnimationManager *instance;
QList<QAbstractAnimation *> animations;
diff --git a/demos/sub-attaq/boat.cpp b/demos/sub-attaq/boat.cpp
index 0ad31b1..6fed9a9 100644
--- a/demos/sub-attaq/boat.cpp
+++ b/demos/sub-attaq/boat.cpp
@@ -62,7 +62,7 @@ static QAbstractAnimation *setupDestroyAnimation(Boat *boat)
for (int i = 1; i <= 4; i++) {
PixmapItem *step = new PixmapItem(QString("explosion/boat/step%1").arg(i),GraphicsScene::Big, boat);
step->setZValue(6);
- step->setOpacity(0);
+ step->setOpacity(0);
//fade-in
QPropertyAnimation *anim = new QPropertyAnimation(step, "opacity");
@@ -92,10 +92,10 @@ Boat::Boat() : PixmapItem(QString("boat"), GraphicsScene::Big),
//The movement animation used to animate the boat
movementAnimation = new QPropertyAnimation(this, "pos");
- //The movement animation used to animate the boat
+ //The destroy animation used to explode the boat
destroyAnimation = setupDestroyAnimation(this);
- //We setup the state machien of the boat
+ //We setup the state machine of the boat
machine = new QStateMachine(this);
QState *moving = new QState(machine);
StopState *stopState = new StopState(this, moving);
diff --git a/demos/sub-attaq/graphicsscene.cpp b/demos/sub-attaq/graphicsscene.cpp
index e29095e..71d4fe7 100644
--- a/demos/sub-attaq/graphicsscene.cpp
+++ b/demos/sub-attaq/graphicsscene.cpp
@@ -278,4 +278,5 @@ void GraphicsScene::clearScene()
boat->stop();
boat->hide();
+ boat->setEnabled(true);
}
diff --git a/examples/effects/blurpicker/blurpicker.cpp b/examples/effects/blurpicker/blurpicker.cpp
index 1f46444..4911c73 100644
--- a/examples/effects/blurpicker/blurpicker.cpp
+++ b/examples/effects/blurpicker/blurpicker.cpp
@@ -49,24 +49,29 @@
#define M_PI 3.14159265358979323846
#endif
-BlurPicker::BlurPicker(QWidget *parent): QGraphicsView(parent), m_index(0.0)
+BlurPicker::BlurPicker(QWidget *parent): QGraphicsView(parent), m_index(0.0), m_animation(this, "index")
{
setBackgroundBrush(QPixmap(":/images/background.jpg"));
- setScene(&m_scene);
+ setScene(new QGraphicsScene(this));
setupScene();
- updateIconPositions();
+ setIndex(0);
- connect(&m_timeLine, SIGNAL(valueChanged(qreal)), SLOT(updateIconPositions()));
- m_timeLine.setDuration(400);
+ m_animation.setDuration(400);
+ m_animation.setEasingCurve(QEasingCurve::InOutSine);
setRenderHint(QPainter::Antialiasing, true);
setFrameStyle(QFrame::NoFrame);
}
-void BlurPicker::updateIconPositions()
+qreal BlurPicker::index() const
{
- m_index = m_timeLine.currentFrame() / 1000.0;
+ return m_index;
+}
+
+void BlurPicker::setIndex(qreal index)
+{
+ m_index = index;
qreal baseline = 0;
for (int i = 0; i < m_icons.count(); ++i) {
@@ -82,12 +87,12 @@ void BlurPicker::updateIconPositions()
static_cast<BlurEffect *>(icon->graphicsEffect())->setBaseLine(baseline);
}
- m_scene.update();
+ scene()->update();
}
void BlurPicker::setupScene()
{
- m_scene.setSceneRect(-200, -120, 400, 240);
+ scene()->setSceneRect(-200, -120, 400, 240);
QStringList names;
names << ":/images/accessories-calculator.png";
@@ -101,32 +106,34 @@ void BlurPicker::setupScene()
for (int i = 0; i < names.count(); i++) {
QPixmap pixmap(names[i]);
- QGraphicsPixmapItem *icon = m_scene.addPixmap(pixmap);
+ QGraphicsPixmapItem *icon = scene()->addPixmap(pixmap);
icon->setZValue(1);
icon->setGraphicsEffect(new BlurEffect(icon));
m_icons << icon;
}
- QGraphicsPixmapItem *bg = m_scene.addPixmap(QPixmap(":/images/background.jpg"));
+ QGraphicsPixmapItem *bg = scene()->addPixmap(QPixmap(":/images/background.jpg"));
bg->setZValue(0);
bg->setPos(-200, -150);
}
void BlurPicker::keyPressEvent(QKeyEvent *event)
{
- if (event->key() == Qt::Key_Left) {
- if (m_timeLine.state() == QTimeLine::NotRunning) {
- m_timeLine.setFrameRange(m_index * 1000, m_index * 1000 - 1000);
- m_timeLine.start();
- event->accept();
- }
+ int delta = 0;
+ switch (event->key())
+ {
+ case Qt::Key_Left:
+ delta = -1;
+ break;
+ case Qt::Key_Right:
+ delta = 1;
+ break;
+ default:
+ break;
}
-
- if (event->key() == Qt::Key_Right) {
- if (m_timeLine.state() == QTimeLine::NotRunning) {
- m_timeLine.setFrameRange(m_index * 1000, m_index * 1000 + 1000);
- m_timeLine.start();
+ if (m_animation.state() == QAbstractAnimation::Stopped && delta) {
+ m_animation.setEndValue(m_index + delta);
+ m_animation.start();
event->accept();
- }
}
}
diff --git a/examples/effects/blurpicker/blurpicker.h b/examples/effects/blurpicker/blurpicker.h
index b460df4..b302db4 100644
--- a/examples/effects/blurpicker/blurpicker.h
+++ b/examples/effects/blurpicker/blurpicker.h
@@ -44,31 +44,31 @@
#include <QGraphicsEffect>
#include <QGraphicsView>
-#include <QTimeLine>
+#include <QPropertyAnimation>
#include "blureffect.h"
class BlurPicker: public QGraphicsView
{
Q_OBJECT
+ Q_PROPERTY(qreal index READ index WRITE setIndex);
public:
BlurPicker(QWidget *parent = 0);
+ qreal index() const;
+ void setIndex(qreal);
+
protected:
void keyPressEvent(QKeyEvent *event);
-private slots:
- void updateIconPositions();
-
private:
void setupScene();
private:
qreal m_index;
- QGraphicsScene m_scene;
QList<QGraphicsItem*> m_icons;
- QTimeLine m_timeLine;
+ QPropertyAnimation m_animation;
};
#endif // BLURPICKER_H
diff --git a/examples/effects/customshader/blurpicker.cpp b/examples/effects/customshader/blurpicker.cpp
index 6cda711..d38d99b 100644
--- a/examples/effects/customshader/blurpicker.cpp
+++ b/examples/effects/customshader/blurpicker.cpp
@@ -50,24 +50,29 @@
#define M_PI 3.14159265358979323846
#endif
-BlurPicker::BlurPicker(QWidget *parent): QGraphicsView(parent), m_index(0.0)
+BlurPicker::BlurPicker(QWidget *parent): QGraphicsView(parent), m_index(0.0), m_animation(this, "index")
{
setBackgroundBrush(QPixmap(":/images/background.jpg"));
- setScene(&m_scene);
+ setScene(new QGraphicsScene(this));
setupScene();
- updateIconPositions();
+ setIndex(0);
- connect(&m_timeLine, SIGNAL(valueChanged(qreal)), SLOT(updateIconPositions()));
- m_timeLine.setDuration(400);
+ m_animation.setDuration(400);
+ m_animation.setEasingCurve(QEasingCurve::InOutSine);
setRenderHint(QPainter::Antialiasing, true);
setFrameStyle(QFrame::NoFrame);
}
-void BlurPicker::updateIconPositions()
+qreal BlurPicker::index() const
{
- m_index = m_timeLine.currentFrame() / 1000.0;
+ return m_index;
+}
+
+void BlurPicker::setIndex(qreal index)
+{
+ m_index = index;
qreal baseline = 0;
for (int i = 0; i < m_icons.count(); ++i) {
@@ -84,12 +89,12 @@ void BlurPicker::updateIconPositions()
static_cast<BlurEffect *>(icon->graphicsEffect())->setBaseLine(baseline);
}
- m_scene.update();
+ scene()->update();
}
void BlurPicker::setupScene()
{
- m_scene.setSceneRect(-200, -120, 400, 240);
+ scene()->setSceneRect(-200, -120, 400, 240);
QStringList names;
names << ":/images/accessories-calculator.png";
@@ -103,7 +108,7 @@ void BlurPicker::setupScene()
for (int i = 0; i < names.count(); i++) {
QPixmap pixmap(names[i]);
- QGraphicsPixmapItem *icon = m_scene.addPixmap(pixmap);
+ QGraphicsPixmapItem *icon = scene()->addPixmap(pixmap);
icon->setZValue(1);
if (i == 3)
icon->setGraphicsEffect(new CustomShaderEffect());
@@ -112,26 +117,28 @@ void BlurPicker::setupScene()
m_icons << icon;
}
- QGraphicsPixmapItem *bg = m_scene.addPixmap(QPixmap(":/images/background.jpg"));
+ QGraphicsPixmapItem *bg = scene()->addPixmap(QPixmap(":/images/background.jpg"));
bg->setZValue(0);
bg->setPos(-200, -150);
}
void BlurPicker::keyPressEvent(QKeyEvent *event)
{
- if (event->key() == Qt::Key_Left) {
- if (m_timeLine.state() == QTimeLine::NotRunning) {
- m_timeLine.setFrameRange(m_index * 1000, m_index * 1000 - 1000);
- m_timeLine.start();
- event->accept();
- }
+ int delta = 0;
+ switch (event->key())
+ {
+ case Qt::Key_Left:
+ delta = -1;
+ break;
+ case Qt::Key_Right:
+ delta = 1;
+ break;
+ default:
+ break;
}
-
- if (event->key() == Qt::Key_Right) {
- if (m_timeLine.state() == QTimeLine::NotRunning) {
- m_timeLine.setFrameRange(m_index * 1000, m_index * 1000 + 1000);
- m_timeLine.start();
+ if (m_animation.state() == QAbstractAnimation::Stopped && delta) {
+ m_animation.setEndValue(m_index + delta);
+ m_animation.start();
event->accept();
- }
}
}
diff --git a/examples/effects/customshader/blurpicker.h b/examples/effects/customshader/blurpicker.h
index b460df4..b302db4 100644
--- a/examples/effects/customshader/blurpicker.h
+++ b/examples/effects/customshader/blurpicker.h
@@ -44,31 +44,31 @@
#include <QGraphicsEffect>
#include <QGraphicsView>
-#include <QTimeLine>
+#include <QPropertyAnimation>
#include "blureffect.h"
class BlurPicker: public QGraphicsView
{
Q_OBJECT
+ Q_PROPERTY(qreal index READ index WRITE setIndex);
public:
BlurPicker(QWidget *parent = 0);
+ qreal index() const;
+ void setIndex(qreal);
+
protected:
void keyPressEvent(QKeyEvent *event);
-private slots:
- void updateIconPositions();
-
private:
void setupScene();
private:
qreal m_index;
- QGraphicsScene m_scene;
QList<QGraphicsItem*> m_icons;
- QTimeLine m_timeLine;
+ QPropertyAnimation m_animation;
};
#endif // BLURPICKER_H
diff --git a/examples/effects/fademessage/fademessage.cpp b/examples/effects/fademessage/fademessage.cpp
index 818d00f..a65c748 100644
--- a/examples/effects/fademessage/fademessage.cpp
+++ b/examples/effects/fademessage/fademessage.cpp
@@ -43,7 +43,7 @@
#include <QtGui>
-FadeMessage::FadeMessage(QWidget *parent): QGraphicsView(parent), m_index(0.0)
+FadeMessage::FadeMessage(QWidget *parent): QGraphicsView(parent)
{
setScene(&m_scene);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -51,9 +51,12 @@ FadeMessage::FadeMessage(QWidget *parent): QGraphicsView(parent), m_index(0.0)
setupScene();
- m_timeLine = new QTimeLine(500, this);
- m_timeLine->setCurveShape(QTimeLine::EaseInOutCurve);
- connect(m_timeLine, SIGNAL(valueChanged(qreal)), m_effect, SLOT(setStrength(qreal)));
+ m_animation = new QPropertyAnimation(m_effect, "strength", this);
+ m_animation->setDuration(500);
+ m_animation->setEasingCurve(QEasingCurve::InOutSine);
+ m_animation->setStartValue(0);
+ m_animation->setEndValue(1);
+
setRenderHint(QPainter::Antialiasing, true);
setFrameStyle(QFrame::NoFrame);
@@ -63,13 +66,12 @@ void FadeMessage::togglePopup()
{
if (m_message->isVisible()) {
m_message->setVisible(false);
- m_timeLine->setDirection(QTimeLine::Backward);
- m_timeLine->start();
+ m_animation->setDirection(QAbstractAnimation::Backward);
} else {
m_message->setVisible(true);
- m_timeLine->setDirection(QTimeLine::Forward);
- m_timeLine->start();
+ m_animation->setDirection(QAbstractAnimation::Forward);
}
+ m_animation->start();
}
void FadeMessage::setupScene()
diff --git a/examples/effects/fademessage/fademessage.h b/examples/effects/fademessage/fademessage.h
index 34e2fb8..e73ef6b 100644
--- a/examples/effects/fademessage/fademessage.h
+++ b/examples/effects/fademessage/fademessage.h
@@ -44,7 +44,7 @@
#include <QGraphicsEffect>
#include <QGraphicsView>
-#include <QTimeLine>
+#include <QPropertyAnimation>
#include "fademessage.h"
@@ -62,11 +62,10 @@ private slots:
void togglePopup();
private:
- qreal m_index;
QGraphicsScene m_scene;
QGraphicsColorizeEffect *m_effect;
QGraphicsItem *m_message;
- QTimeLine *m_timeLine;
+ QPropertyAnimation *m_animation;
};
#endif // FADEMESSAGE_H
diff --git a/src/gui/kernel/qaction.cpp b/src/gui/kernel/qaction.cpp
index 6f3cbaf..3eaf2e1 100644
--- a/src/gui/kernel/qaction.cpp
+++ b/src/gui/kernel/qaction.cpp
@@ -100,6 +100,21 @@ QActionPrivate::~QActionPrivate()
{
}
+bool QActionPrivate::showStatusText(QWidget *widget, const QString &str)
+{
+#ifdef QT_NO_STATUSTIP
+ Q_UNUSED(widget);
+ Q_UNUSED(str);
+#else
+ if(QObject *object = widget ? widget : parent) {
+ QStatusTipEvent tip(str);
+ QApplication::sendEvent(object, &tip);
+ return true;
+ }
+#endif
+ return false;
+}
+
void QActionPrivate::sendDataChanged()
{
Q_Q(QAction);
@@ -1206,16 +1221,7 @@ QAction::setData(const QVariant &data)
bool
QAction::showStatusText(QWidget *widget)
{
-#ifdef QT_NO_STATUSTIP
- Q_UNUSED(widget);
-#else
- if(QObject *object = widget ? widget : parent()) {
- QStatusTipEvent tip(statusTip());
- QApplication::sendEvent(object, &tip);
- return true;
- }
-#endif
- return false;
+ return d_func()->showStatusText(widget, statusTip());
}
/*!
diff --git a/src/gui/kernel/qaction_p.h b/src/gui/kernel/qaction_p.h
index 2527a02..f7b035b 100644
--- a/src/gui/kernel/qaction_p.h
+++ b/src/gui/kernel/qaction_p.h
@@ -75,6 +75,8 @@ public:
QActionPrivate();
~QActionPrivate();
+ bool showStatusText(QWidget *w, const QString &str);
+
QPointer<QActionGroup> group;
QString text;
QString iconText;
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 987aa26..4b8f6a0 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -791,7 +791,8 @@ void QApplicationPrivate::construct(
}
//make sure the plugin is loaded
- qt_guiPlatformPlugin();
+ if (qt_is_gui_used)
+ qt_guiPlatformPlugin();
#endif
}
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index cc39b7f..54d1612 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -602,14 +602,7 @@ void QMenuPrivate::setCurrentAction(QAction *action, int popup, SelectionReason
}
#ifndef QT_NO_STATUSTIP
} else if (previousAction) {
- QWidget *w = causedPopup.widget;
- while (QMenu *m = qobject_cast<QMenu*>(w))
- w = m->d_func()->causedPopup.widget;
- if (w) {
- QString empty;
- QStatusTipEvent tip(empty);
- QApplication::sendEvent(w, &tip);
- }
+ previousAction->d_func()->showStatusText(topCausedWidget(), QString());
#endif
}
if (hideActiveMenu) {
@@ -623,6 +616,15 @@ void QMenuPrivate::setCurrentAction(QAction *action, int popup, SelectionReason
}
}
+//return the top causedPopup.widget that is not a QMenu
+QWidget *QMenuPrivate::topCausedWidget() const
+{
+ QWidget* top = causedPopup.widget;
+ while (QMenu* m = qobject_cast<QMenu *>(top))
+ top = m->d_func()->causedPopup.widget;
+ return top;
+}
+
QAction *QMenuPrivate::actionAt(QPoint p) const
{
if (!q_func()->rect().contains(p)) //sanity check
@@ -1094,10 +1096,7 @@ void QMenuPrivate::activateAction(QAction *action, QAction::ActionEvent action_e
QAccessible::updateAccessibility(q, actionIndex, QAccessible::Selection);
}
#endif
- QWidget *w = causedPopup.widget;
- while (QMenu *m = qobject_cast<QMenu*>(w))
- w = m->d_func()->causedPopup.widget;
- action->showStatusText(w);
+ action->showStatusText(topCausedWidget());
} else {
actionAboutToTrigger = 0;
}
@@ -1801,10 +1800,7 @@ void QMenu::popup(const QPoint &p, QAction *atAction)
#ifndef QT_NO_MENUBAR
// if this menu is part of a chain attached to a QMenuBar, set the
// _NET_WM_WINDOW_TYPE_DROPDOWN_MENU X11 window type
- QWidget* top = this;
- while (QMenu* m = qobject_cast<QMenu *>(top))
- top = m->d_func()->causedPopup.widget;
- setAttribute(Qt::WA_X11NetWmWindowTypeDropDownMenu, qobject_cast<QMenuBar *>(top) != 0);
+ setAttribute(Qt::WA_X11NetWmWindowTypeDropDownMenu, qobject_cast<QMenuBar *>(d->topCausedWidget()) != 0);
#endif
ensurePolished(); // Get the right font
@@ -2752,18 +2748,14 @@ void QMenu::keyPressEvent(QKeyEvent *e)
}
}
if (!key_consumed) {
- if (QWidget *caused = d->causedPopup.widget) {
- while(QMenu *m = qobject_cast<QMenu*>(caused))
- caused = m->d_func()->causedPopup.widget;
#ifndef QT_NO_MENUBAR
- if (QMenuBar *mb = qobject_cast<QMenuBar*>(caused)) {
- QAction *oldAct = mb->d_func()->currentAction;
- QApplication::sendEvent(mb, e);
- if (mb->d_func()->currentAction != oldAct)
- key_consumed = true;
- }
-#endif
+ if (QMenuBar *mb = qobject_cast<QMenuBar*>(d->topCausedWidget())) {
+ QAction *oldAct = mb->d_func()->currentAction;
+ QApplication::sendEvent(mb, e);
+ if (mb->d_func()->currentAction != oldAct)
+ key_consumed = true;
}
+#endif
}
#ifdef Q_OS_WIN32
diff --git a/src/gui/widgets/qmenu_p.h b/src/gui/widgets/qmenu_p.h
index a5bde7c..c021063 100644
--- a/src/gui/widgets/qmenu_p.h
+++ b/src/gui/widgets/qmenu_p.h
@@ -215,6 +215,7 @@ public:
SelectedFromKeyboard,
SelectedFromElsewhere
};
+ QWidget *topCausedWidget() const;
QAction *actionAt(QPoint p) const;
void setFirstActionActive();
void setCurrentAction(QAction *, int popup = -1, SelectionReason reason = SelectedFromElsewhere, bool activateFirst = false);
diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp
index 5596ca4..58a3d28 100644
--- a/src/gui/widgets/qtoolbar.cpp
+++ b/src/gui/widgets/qtoolbar.cpp
@@ -396,7 +396,7 @@ bool QToolBarPrivate::mouseMoveEvent(QMouseEvent *event)
void QToolBarPrivate::unplug(const QRect &_r)
{
Q_Q(QToolBar);
- layout->setExpanded(false, false);
+ layout->setExpanded(false);
QRect r = _r;
r.moveTopLeft(q->mapToGlobal(QPoint(0, 0)));
setWindowState(true, true, r);
diff --git a/src/gui/widgets/qtoolbararealayout.cpp b/src/gui/widgets/qtoolbararealayout.cpp
index 39d5c66..b7e985c 100644
--- a/src/gui/widgets/qtoolbararealayout.cpp
+++ b/src/gui/widgets/qtoolbararealayout.cpp
@@ -515,7 +515,7 @@ QList<int> QToolBarAreaLayoutInfo::gapIndex(const QPoint &pos, int *minDistance)
} else {
const int dist = distance(pos);
//it will only return a path if the minDistance is higher than the current distance
- if (*minDistance > dist) {
+ if (dist >= 0 && *minDistance > dist) {
*minDistance = dist;
QList<int> result;
diff --git a/src/gui/widgets/qtoolbarlayout.cpp b/src/gui/widgets/qtoolbarlayout.cpp
index 7dc1e01..0afe5d8 100644
--- a/src/gui/widgets/qtoolbarlayout.cpp
+++ b/src/gui/widgets/qtoolbarlayout.cpp
@@ -642,7 +642,7 @@ QSize QToolBarLayout::expandedSize(const QSize &size) const
return result;
}
-void QToolBarLayout::setExpanded(bool exp, bool animated)
+void QToolBarLayout::setExpanded(bool exp)
{
if (exp == expanded)
return;
@@ -654,7 +654,6 @@ void QToolBarLayout::setExpanded(bool exp, bool animated)
if (!tb)
return;
if (QMainWindow *win = qobject_cast<QMainWindow*>(tb->parentWidget())) {
- animating = true;
QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
if (expanded) {
tb->raise();
@@ -665,7 +664,7 @@ void QToolBarLayout::setExpanded(bool exp, bool animated)
layoutActions(rect.size());
}
}
- layout->layoutState.toolBarAreaLayout.apply(animated);
+ layout->layoutState.toolBarAreaLayout.apply(win->isAnimated());
}
}
diff --git a/src/gui/widgets/qtoolbarlayout_p.h b/src/gui/widgets/qtoolbarlayout_p.h
index d49a5df..afd0227 100644
--- a/src/gui/widgets/qtoolbarlayout_p.h
+++ b/src/gui/widgets/qtoolbarlayout_p.h
@@ -112,7 +112,7 @@ public:
bool hasExpandFlag() const;
public Q_SLOTS:
- void setExpanded(bool b, bool animated = true);
+ void setExpanded(bool b);
private:
QList<QToolBarItem*> items;