on xenial help sign in
Don't connect to itemAdded/itemRemoved signals, just rely on options.changed.
27c40fcPawel Stolowski
plugins/Unity/combinedfilteroptions.cpp+3−19
@@ -19,13 +19,10 @@
19
19
20#include "combinedfilteroptions.h"
20#include "combinedfilteroptions.h"
21
21
22−CombinedFilterOptions::CombinedFilterOptions(const std::vector<unity::dash::FilterOption::Ptr>& list,
22+CombinedFilterOptions::CombinedFilterOptions(const std::vector<unity::dash::FilterOption::Ptr>& list, QObject *parent)
23− sigc::signal<void, unity::dash::FilterOption::Ptr> itemAddedSignal,
24− sigc::signal<void, unity::dash::FilterOption::Ptr> itemRemovedSignal,
25− QObject *parent)
26 : QAbstractListModel(parent)
23 : QAbstractListModel(parent)
27{
24{
28− initList(list, itemAddedSignal, itemRemovedSignal);
25+ initList(list);
29}
26}
30
27
31
28
@@ -44,9 +41,7 @@ int CombinedFilterOptions::rowCount(const QModelIndex& /* parent */) const
44 return m_list.count();
41 return m_list.count();
45}
42}
46
43
47−void CombinedFilterOptions::initList(const std::vector<unity::dash::FilterOption::Ptr>& list,
44+void CombinedFilterOptions::initList(const std::vector<unity::dash::FilterOption::Ptr>& list)
48− sigc::signal<void, unity::dash::FilterOption::Ptr> itemAddedSignal,
49− sigc::signal<void, unity::dash::FilterOption::Ptr> itemRemovedSignal)
50{
45{
51 // combine options, e.g. A, B, C becomes A-B, B-C, C
46 // combine options, e.g. A, B, C becomes A-B, B-C, C
52 unsigned int i = 0;
47 unsigned int i = 0;
@@ -62,9 +57,6 @@ void CombinedFilterOptions::initList(const std::vector<unity::dash::FilterOption
62 auto co = new CombinedFilterOption(list[i], NULL);
57 auto co = new CombinedFilterOption(list[i], NULL);
63 addOption(co);
58 addOption(co);
64 }
59 }
65−
66− itemAddedSignal.connect(sigc::mem_fun(this, &CombinedFilterOptions::onItemAdded));
67− itemRemovedSignal.connect(sigc::mem_fun(this, &CombinedFilterOptions::onItemRemoved));
68}
60}
69
61
70void CombinedFilterOptions::addOption(CombinedFilterOption *option)
62void CombinedFilterOptions::addOption(CombinedFilterOption *option)
@@ -91,11 +83,3 @@ void CombinedFilterOptions::onActiveChanged(bool state)
91 }
83 }
92 }
84 }
93}
85}
94−
95−void CombinedFilterOptions::onItemAdded(unity::dash::FilterOption::Ptr item)
96−{
97−}
98−
99−void CombinedFilterOptions::onItemRemoved(unity::dash::FilterOption::Ptr item)
100−{
101−}
plugins/Unity/combinedfilteroptions.h+2−9
@@ -35,10 +35,7 @@ class CombinedFilterOptions : public QAbstractListModel
35 Q_OBJECT
35 Q_OBJECT
36
36
37public:
37public:
38− CombinedFilterOptions(const std::vector<unity::dash::FilterOption::Ptr>& list,
38+ CombinedFilterOptions(const std::vector<unity::dash::FilterOption::Ptr>& list, QObject *parent = 0);
39− sigc::signal<void, unity::dash::FilterOption::Ptr> itemAddedSignal,
40− sigc::signal<void, unity::dash::FilterOption::Ptr> itemRemovedSignal,
41− QObject *parent = 0);
42
39
43 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
40 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
44 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
41 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
@@ -47,12 +44,8 @@ private Q_SLOTS:
47 void onActiveChanged(bool state);
44 void onActiveChanged(bool state);
48
45
49private:
46private:
50− void initList(const std::vector<unity::dash::FilterOption::Ptr>& list,
47+ void initList(const std::vector<unity::dash::FilterOption::Ptr>& list);
51− sigc::signal<void, unity::dash::FilterOption::Ptr> itemAddedSignal,
52− sigc::signal<void, unity::dash::FilterOption::Ptr> itemRemovedSignal);
53 void addOption(CombinedFilterOption *option);
48 void addOption(CombinedFilterOption *option);
54− void onItemAdded(unity::dash::FilterOption::Ptr item);
55− void onItemRemoved(unity::dash::FilterOption::Ptr item);
56
49
57 QList<CombinedFilterOption*> m_list;
50 QList<CombinedFilterOption*> m_list;
58};
51};
plugins/Unity/multirangefilter.cpp+2−3
@@ -46,9 +46,8 @@ void MultiRangeFilter::onOptionsChanged(unity::dash::MultiRangeFilter::Options /
46 m_options = NULL;
46 m_options = NULL;
47 }
47 }
48
48
49− m_options = new CombinedFilterOptions(m_unityMultiRangeFilter->options,
49+ m_options = new CombinedFilterOptions(m_unityMultiRangeFilter->options);
50− m_unityMultiRangeFilter->option_added,
50+
51− m_unityMultiRangeFilter->option_removed);
52 /* Property change signals */
51 /* Property change signals */
53 m_signals << m_unityMultiRangeFilter->options.changed.connect(sigc::mem_fun(this, &MultiRangeFilter::onOptionsChanged));
52 m_signals << m_unityMultiRangeFilter->options.changed.connect(sigc::mem_fun(this, &MultiRangeFilter::onOptionsChanged));
54
53