diff options
Diffstat (limited to 'libqmenumodel/src/qmenumodel.cpp')
-rw-r--r-- | libqmenumodel/src/qmenumodel.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libqmenumodel/src/qmenumodel.cpp b/libqmenumodel/src/qmenumodel.cpp index 4c0fc23..cac2f1a 100644 --- a/libqmenumodel/src/qmenumodel.cpp +++ b/libqmenumodel/src/qmenumodel.cpp @@ -46,23 +46,25 @@ QMenuModel::QMenuModel(GMenuModel *other, QObject *parent) rolesNames[Extra] = "extra"; } setRoleNames(rolesNames); - setMenuModel(other); + setMenuModel(other, true); } /*! \internal */ QMenuModel::~QMenuModel() { - setMenuModel(NULL); + setMenuModel(NULL, false); } /*! \internal */ -void QMenuModel::setMenuModel(GMenuModel *other) +void QMenuModel::setMenuModel(GMenuModel *other, bool notify) { if (m_menuModel == other) { return; } - beginResetModel(); + if (notify) { + beginResetModel(); + } if (m_menuModel) { g_signal_handler_disconnect(m_menuModel, m_signalChangedId); @@ -81,7 +83,9 @@ void QMenuModel::setMenuModel(GMenuModel *other) this); } - endResetModel(); + if (notify) { + endResetModel(); + } } /*! \internal */ |