aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcin Miklas <marcin.miklas@teleca.com>2011-01-17 10:58:28 +0100
committerDaniel d'Andrada <daniel.dandrada@nokia.com>2011-01-25 10:54:51 +0200
commita49534341a46036b940c7f9200c06240f977f81d (patch)
treee11370100e2e2f21f083a9424a23d7f0dcfd4d4b /src
parentc2c8155562bd3de309acfc027ff83b25c0448326 (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.cpp12
-rw-r--r--src/views/mnavigationbarview.h1
-rw-r--r--src/views/mnavigationbarview_p.h1
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);