on xenial help sign in
Fixed QMenuModel::submenu bug
commit70a7d39f10ea7f4dc880cdc46e775922a9e43187 authorNick Dedekind <nicholas.dedekind@gmail.com> dateThu 3 Oct 2013, 17:01 (13 years ago) parent5e74b3d
2 files changed+5−11
tests/mocks/QMenuModel/unitymenumodel.cpp+5−9 tests/mocks/QMenuModel/unitymenumodel.h−2
tests/mocks/QMenuModel/unitymenumodel.cpp+5−9
@@ -38,13 +38,6 @@ UnityMenuModel::UnityMenuModel(QObject *parent)
3838{
3939}
4040
41−UnityMenuModel::UnityMenuModel(const QVariant& data, QObject *parent)
42−: QAbstractListModel(parent)
43−{
44− QVariantList li = data.toList();
45− m_modelData = li;
46−}
47−
4841QVariant UnityMenuModel::modelData() const
4942{
5043 return m_modelData;
@@ -201,9 +194,12 @@ QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
201194 if (submenuData.type() == (int)QMetaType::QVariantList) {
202195 UnityMenuModel*& model = submenus[position];
203196 if (!model) {
204− model = new UnityMenuModel(submenuData, this);
205− return model;
197+ model = new UnityMenuModel(this);
198+ }
199+ if (model->modelData() != submenuData) {
200+ model->setModelData(submenuData);
206201 }
202+ return model;
207203 }
208204
209205 return NULL;
tests/mocks/QMenuModel/unitymenumodel.h−2
@@ -81,8 +81,6 @@ Q_SIGNALS:
8181 void modelDataChanged();
8282
8383private:
84− UnityMenuModel(const QVariant& data, QObject *parent = NULL);
85−
8684 QVariantMap rowData(int row) const;
8785 QVariant subMenuData(int row) const;
8886