on xenial help sign in
Don't use signal forwarding n FilterOption / CombinedFilterOption classes, use private handlers for UnityCore signals and convert string type to QString on Q_EMIT.
2a98e93Pawel Stolowski
plugins/Unity/abstractfilteroption.h+3−3
@@ -46,9 +46,9 @@ public:
46 virtual void setActive(bool active) = 0;
46 virtual void setActive(bool active) = 0;
47
47
48Q_SIGNALS:
48Q_SIGNALS:
49− void idChanged(std::string);
49+ void idChanged(const QString &);
50− void nameChanged(std::string);
50+ void nameChanged(const QString &);
51− void iconHintChanged(std::string);
51+ void iconHintChanged(const QString &);
52 void activeChanged(bool);
52 void activeChanged(bool);
53};
53};
54
54
plugins/Unity/combinedfilteroption.cpp+20−10
@@ -28,30 +28,30 @@ CombinedFilterOption::CombinedFilterOption(unity::dash::FilterOption::Ptr unityF
28 setUnityFilterOption(unityFilterOption1, unityFilterOption2);
28 setUnityFilterOption(unityFilterOption1, unityFilterOption2);
29}
29}
30
30
31−std::string CombinedFilterOption::getCombinedId() const
31+QString CombinedFilterOption::getCombinedId() const
32{
32{
33 if (m_unityFilterOption[1] != nullptr)
33 if (m_unityFilterOption[1] != nullptr)
34− return m_unityFilterOption[0]->id() + "-" + m_unityFilterOption[1]->id();
34+ return QString::fromStdString(m_unityFilterOption[0]->id() + "-" + m_unityFilterOption[1]->id());
35− return m_unityFilterOption[0]->id();
35+ return QString::fromStdString(m_unityFilterOption[0]->id());
36}
36}
37
37
38−std::string CombinedFilterOption::getCombinedName() const
38+QString CombinedFilterOption::getCombinedName() const
39{
39{
40 if (m_unityFilterOption[1] != nullptr)
40 if (m_unityFilterOption[1] != nullptr)
41 return tr("%1 - %2")
41 return tr("%1 - %2")
42 .arg(QString::fromStdString(m_unityFilterOption[0]->name()))
42 .arg(QString::fromStdString(m_unityFilterOption[0]->name()))
43− .arg(QString::fromStdString(m_unityFilterOption[1]->name())).toStdString();
43+ .arg(QString::fromStdString(m_unityFilterOption[1]->name()));
44− return m_unityFilterOption[0]->name();
44+ return QString::fromStdString(m_unityFilterOption[0]->name());
45}
45}
46
46
47QString CombinedFilterOption::id() const
47QString CombinedFilterOption::id() const
48{
48{
49− return QString::fromStdString(getCombinedId());
49+ return getCombinedId();
50}
50}
51
51
52QString CombinedFilterOption::name() const
52QString CombinedFilterOption::name() const
53{
53{
54− return QString::fromStdString(getCombinedName());
54+ return getCombinedName();
55}
55}
56
56
57QString CombinedFilterOption::iconHint() const
57QString CombinedFilterOption::iconHint() const
@@ -97,6 +97,16 @@ void CombinedFilterOption::onIdChanged(const std::string &/* id */)
97 Q_EMIT idChanged(getCombinedId());
97 Q_EMIT idChanged(getCombinedId());
98}
98}
99
99
100+void CombinedFilterOption::onNameChanged(const std::string &/* name */)
101+{
102+ Q_EMIT nameChanged(getCombinedName());
103+}
104+
105+void CombinedFilterOption::onIconHintChanged(const std::string &/* iconHint */)
106+{
107+ Q_EMIT iconHintChanged(iconHint());
108+}
109+
100void CombinedFilterOption::onActiveChanged(bool /*active*/)
110void CombinedFilterOption::onActiveChanged(bool /*active*/)
101{
111{
102 bool combinedState = CombinedFilterOption::active();
112 bool combinedState = CombinedFilterOption::active();
@@ -117,8 +127,8 @@ void CombinedFilterOption::setUnityFilterOption(unity::dash::FilterOption::Ptr u
117 for (int i=0; i<2; i++) {
127 for (int i=0; i<2; i++) {
118 if (m_unityFilterOption[i] != nullptr) {
128 if (m_unityFilterOption[i] != nullptr) {
119 m_signals << m_unityFilterOption[i]->id.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onIdChanged))
129 m_signals << m_unityFilterOption[i]->id.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onIdChanged))
120− << m_unityFilterOption[i]->name.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::nameChanged))
130+ << m_unityFilterOption[i]->name.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onNameChanged))
121− << m_unityFilterOption[i]->icon_hint.changed.connect(sigc::mem_fun(this,&CombinedFilterOption::iconHintChanged))
131+ << m_unityFilterOption[i]->icon_hint.changed.connect(sigc::mem_fun(this,&CombinedFilterOption::onIconHintChanged))
122 << m_unityFilterOption[i]->active.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onActiveChanged));
132 << m_unityFilterOption[i]->active.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onActiveChanged));
123 }
133 }
124 }
134 }
plugins/Unity/combinedfilteroption.h+5−4
@@ -49,13 +49,14 @@ public:
49 /* setters */
49 /* setters */
50 void setActive(bool active) override;
50 void setActive(bool active) override;
51
51
52−private Q_SLOTS:
52+private:
53 void onIdChanged(const std::string &id);
53 void onIdChanged(const std::string &id);
54+ void onNameChanged(const std::string &name);
55+ void onIconHintChanged(const std::string &iconHint);
54 void onActiveChanged(bool active);
56 void onActiveChanged(bool active);
55
57
56−private:
57− std::string getCombinedId() const;
58+ QString getCombinedId() const;
58− std::string getCombinedName() const;
59+ QString getCombinedName() const;
59 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption1,
60 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption1,
60 unity::dash::FilterOption::Ptr unityFilterOption2 = nullptr);
61 unity::dash::FilterOption::Ptr unityFilterOption2 = nullptr);
61
62
plugins/Unity/filteroption.cpp+24−4
@@ -64,10 +64,30 @@ void FilterOption::setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilt
64 m_unityFilterOption = unityFilterOption;
64 m_unityFilterOption = unityFilterOption;
65
65
66 /* Property change signals */
66 /* Property change signals */
67− m_signals << m_unityFilterOption->id.changed.connect(sigc::mem_fun(this, &FilterOption::idChanged))
67+ m_signals << m_unityFilterOption->id.changed.connect(sigc::mem_fun(this, &FilterOption::onIdChanged))
68− << m_unityFilterOption->name.changed.connect(sigc::mem_fun(this, &FilterOption::nameChanged))
68+ << m_unityFilterOption->name.changed.connect(sigc::mem_fun(this, &FilterOption::onNameChanged))
69− << m_unityFilterOption->icon_hint.changed.connect(sigc::mem_fun(this, &FilterOption::iconHintChanged))
69+ << m_unityFilterOption->icon_hint.changed.connect(sigc::mem_fun(this, &FilterOption::onIconHintChanged))
70− << m_unityFilterOption->active.changed.connect(sigc::mem_fun(this, &FilterOption::activeChanged));
70+ << m_unityFilterOption->active.changed.connect(sigc::mem_fun(this, &FilterOption::onActiveChanged));
71+}
72+
73+void FilterOption::onIdChanged(const std::string &/* id */)
74+{
75+ Q_EMIT idChanged(id());
76+}
77+
78+void FilterOption::onNameChanged(const std::string &/* name */)
79+{
80+ Q_EMIT nameChanged(name());
81+}
82+
83+void FilterOption::onIconHintChanged(const std::string &/* iconHint */)
84+{
85+ Q_EMIT iconHintChanged(iconHint());
86+}
87+
88+void FilterOption::onActiveChanged(bool active)
89+{
90+ Q_EMIT activeChanged(active);
71}
91}
72
92
73#include "filteroption.moc"
93#include "filteroption.moc"
plugins/Unity/filteroption.h+5
@@ -46,6 +46,11 @@ public:
46 void setActive(bool active) override;
46 void setActive(bool active) override;
47
47
48private:
48private:
49+ void onIdChanged(const std::string &id);
50+ void onNameChanged(const std::string &name);
51+ void onIconHintChanged(const std::string &iconHint);
52+ void onActiveChanged(bool active);
53+
49 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption);
54 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption);
50 SignalsList m_signals;
55 SignalsList m_signals;
51
56