on xenial help sign in
Only use the parser when needed.
commitbd301e7777b53b8ca28058408414512fd107b88d authorNick Dedekind <nicholas.dedekind@gmail.com> dateFri 11 Oct 2013, 16:06 (13 years ago) parent456368d
2 files changed+8−10
plugins/Unity/Indicators/rootactionstate.cpp+6−7 tests/plugins/Unity/Indicators/rootactionstatetest.cpp+2−3
plugins/Unity/Indicators/rootactionstate.cpp+6−7
@@ -37,10 +37,6 @@ RootActionState::RootActionState(QObject *parent)
3737
3838RootActionState::~RootActionState()
3939{
40− if (m_menu) {
41− m_menu->disconnect(this);
42− m_menu->setActionStateParser(NULL);
43− }
4440}
4541
4642UnityMenuModel* RootActionState::menu() const
@@ -53,7 +49,6 @@ void RootActionState::setMenu(UnityMenuModel* menu)
5349 if (m_menu != menu) {
5450 if (m_menu) {
5551 m_menu->disconnect(this);
56− m_menu->setActionStateParser(NULL);
5752 }
5853 m_menu = menu;
5954
@@ -63,8 +58,6 @@ void RootActionState::setMenu(UnityMenuModel* menu)
6358 connect(m_menu, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)), SLOT(onModelDataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)));
6459
6560 connect(m_menu, SIGNAL(destroyed()), SLOT(reset()));
66−
67− m_menu->setActionStateParser(this);
6861 }
6962 updateActionState();
7063 Q_EMIT menuChanged();
@@ -110,7 +103,13 @@ void RootActionState::reset() {
110103void RootActionState::updateActionState()
111104{
112105 if (m_menu && m_menu->rowCount() > 0) {
106+
107+ ActionStateParser* oldParser = m_menu->actionStateParser();
108+ m_menu->setActionStateParser(this);
109+
113110 m_cachedState = m_menu->get(0, "actionState").toMap();
111+
112+ m_menu->setActionStateParser(oldParser);
114113 } else {
115114 m_cachedState.clear();
116115 }
tests/plugins/Unity/Indicators/rootactionstatetest.cpp+2−3
@@ -30,14 +30,13 @@ private Q_SLOTS:
3030 void testDeleteRootActionState()
3131 {
3232 UnityMenuModel* menuModel = new UnityMenuModel();
33+ ActionStateParser* originalParser = menuModel->actionStateParser();
3334 RootActionState* rootState = new RootActionState();
3435
3536 rootState->setMenu(menuModel);
3637
37− QCOMPARE(menuModel->actionStateParser(), rootState);
3838 delete rootState;
39− QVERIFY(menuModel->actionStateParser() == NULL);
40−
39+ QCOMPARE(menuModel->actionStateParser(), originalParser);
4140 delete menuModel;
4241 }
4342