on xenial help sign in
Workaround for non-deletion of indicator page menu items. Fixes: https://bugs.launchpad.net/bugs/1183065, https://bugs.launchpad.net/bugs/1206991.
dbafbfaNick Dedekind
plugins/Unity/Indicators/flatmenuproxymodel.cpp+10−7
@@ -55,31 +55,34 @@ void FlatMenuProxyModel::setSourceModel(QAbstractItemModel *source)
55 if (source) {
55 if (source) {
56
56
57 // FIXME - not working correctly with dynamic inserts/removes
57 // FIXME - not working correctly with dynamic inserts/removes
58+ // FIXME 2 - We're using Queud connections as a workaround to QTBUG-32859
59+ // The signals from qmenumodel are coming straight off the glib event loop,
60+ // which is not supported and has the effect of listview delegates not to be deleted.
58
61
59 connect(source,
62 connect(source,
60 SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
63 SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
61− SLOT(onModelAboutToBeReset()));
64+ SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
62 connect(source,
65 connect(source,
63 SIGNAL(rowsInserted(QModelIndex,int,int)),
66 SIGNAL(rowsInserted(QModelIndex,int,int)),
64− SLOT(onModelReset()));
67+ SLOT(onModelReset()), Qt::QueuedConnection);
65
68
66 connect(source,
69 connect(source,
67 SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
70 SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
68− SLOT(onModelAboutToBeReset()));
71+ SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
69 connect(source,
72 connect(source,
70 SIGNAL(rowsRemoved(QModelIndex,int,int)),
73 SIGNAL(rowsRemoved(QModelIndex,int,int)),
71− SLOT(onModelReset()));
74+ SLOT(onModelReset()), Qt::QueuedConnection);
72
75
73 connect(source,
76 connect(source,
74 SIGNAL(modelAboutToBeReset()),
77 SIGNAL(modelAboutToBeReset()),
75− SLOT(onModelAboutToBeReset()));
78+ SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
76 connect(source,
79 connect(source,
77 SIGNAL(modelReset()),
80 SIGNAL(modelReset()),
78− SLOT(onModelReset()));
81+ SLOT(onModelReset()), Qt::QueuedConnection);
79
82
80 connect(source,
83 connect(source,
81 SIGNAL(statusChanged(DBusEnums::ConnectionStatus)),
84 SIGNAL(statusChanged(DBusEnums::ConnectionStatus)),
82− SIGNAL(statusChanged()));
85+ SIGNAL(statusChanged()), Qt::QueuedConnection);
83
86
84 // initiliaze rowCount
87 // initiliaze rowCount
85 QModelIndex lastItem = source->index(source->rowCount() - 1, 0);
88 QModelIndex lastItem = source->index(source->rowCount() - 1, 0);