diff options
author | Marcin Miklas <marcin.miklas@teleca.com> | 2011-01-17 10:58:28 +0100 |
---|---|---|
committer | Daniel d'Andrada <daniel.dandrada@nokia.com> | 2011-01-25 10:54:51 +0200 |
commit | a49534341a46036b940c7f9200c06240f977f81d (patch) | |
tree | e11370100e2e2f21f083a9424a23d7f0dcfd4d4b /src | |
parent | c2c8155562bd3de309acfc027ff83b25c0448326 (diff) |
Fixes: NB#219271 - Tab alignment is broken in certain scenario.
RevBy: Daniel d'Andrada
Details: MNavigationBarView monitors MToolBar viewType changes.
Diffstat (limited to 'src')
-rw-r--r-- | src/views/mnavigationbarview.cpp | 12 | ||||
-rw-r--r-- | src/views/mnavigationbarview.h | 1 | ||||
-rw-r--r-- | src/views/mnavigationbarview_p.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/views/mnavigationbarview.cpp b/src/views/mnavigationbarview.cpp index 364c6f96..b1cade5d 100644 --- a/src/views/mnavigationbarview.cpp +++ b/src/views/mnavigationbarview.cpp @@ -169,7 +169,7 @@ void MNavigationBarViewPrivate::updateDockedToolBar() // Make sure the last toolbar is removed first... if (toolBar) { toolBarIsEmptyWatcher->watch(0); - + q->disconnect(toolBar->model(), SIGNAL(modified(QList<const char*>))); toolBarLayout->removeItem(toolBar); // previous toolBar is not ours anymore, so clean property we added toolBar->setProperty("widgetAlignment", QVariant::Invalid); @@ -180,6 +180,8 @@ void MNavigationBarViewPrivate::updateDockedToolBar() toolBarLayout->addItem(nextToolBar); nextToolBar->show(); toolBarIsEmptyWatcher->watch(nextToolBar); + q->connect(nextToolBar->model(), SIGNAL(modified(QList<const char*>)), + SLOT(_q_toolBarModelChanged(QList<const char*>))); } toolBar = nextToolBar; @@ -259,6 +261,14 @@ void MNavigationBarViewPrivate::_q_updateIsEmptyProperty() controller->setProperty("isEmpty", !hasContent); } +void MNavigationBarViewPrivate::_q_toolBarModelChanged(const QList<const char*>& modifications) +{ + if (modifications.contains(MWidgetModel::ViewType)) { + updateLayout(); + updateToolBarAlignment(); + } +} + void MNavigationBarViewPrivate::updateToolBarAlignment() { Q_Q(MNavigationBarView); diff --git a/src/views/mnavigationbarview.h b/src/views/mnavigationbarview.h index 2e8a142a..be003a44 100644 --- a/src/views/mnavigationbarview.h +++ b/src/views/mnavigationbarview.h @@ -59,6 +59,7 @@ private: Q_DISABLE_COPY(MNavigationBarView) Q_DECLARE_PRIVATE(MNavigationBarView) Q_PRIVATE_SLOT(d_func(), void _q_updateIsEmptyProperty()) + Q_PRIVATE_SLOT(d_func(), void _q_toolBarModelChanged(QList<const char *>)) friend class Ut_MNavigationBarView; }; diff --git a/src/views/mnavigationbarview_p.h b/src/views/mnavigationbarview_p.h index 10302eae..63a8f11f 100644 --- a/src/views/mnavigationbarview_p.h +++ b/src/views/mnavigationbarview_p.h @@ -56,6 +56,7 @@ public: bool isEscapeButtonVisible(); void updateLayout(); void _q_updateIsEmptyProperty(); + void _q_toolBarModelChanged(const QList<const char*>& members); void updateToolBarAlignment(); void setCustomContent(QGraphicsWidget *customContent); |