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.
commit2a98e93f4ced4632767131c00a40548afbc26438 authorPawel Stolowski <pawel.stolowski@canonical.com> dateFri 12 Jul 2013, 14:49 (13 years ago) parentbb6329c
5 files changed+57−21
plugins/Unity/abstractfilteroption.h+3−3 plugins/Unity/combinedfilteroption.cpp+20−10 plugins/Unity/combinedfilteroption.h+5−4 plugins/Unity/filteroption.cpp+24−4 plugins/Unity/filteroption.h+5
plugins/Unity/abstractfilteroption.h+3−3
@@ -46,9 +46,9 @@ public:
4646 virtual void setActive(bool active) = 0;
4747
4848Q_SIGNALS:
49− void idChanged(std::string);
50− void nameChanged(std::string);
51− void iconHintChanged(std::string);
49+ void idChanged(const QString &);
50+ void nameChanged(const QString &);
51+ void iconHintChanged(const QString &);
5252 void activeChanged(bool);
5353};
5454
plugins/Unity/combinedfilteroption.cpp+20−10
@@ -28,30 +28,30 @@ CombinedFilterOption::CombinedFilterOption(unity::dash::FilterOption::Ptr unityF
2828 setUnityFilterOption(unityFilterOption1, unityFilterOption2);
2929}
3030
31−std::string CombinedFilterOption::getCombinedId() const
31+QString CombinedFilterOption::getCombinedId() const
3232{
3333 if (m_unityFilterOption[1] != nullptr)
34− return m_unityFilterOption[0]->id() + "-" + m_unityFilterOption[1]->id();
35− return m_unityFilterOption[0]->id();
34+ return QString::fromStdString(m_unityFilterOption[0]->id() + "-" + m_unityFilterOption[1]->id());
35+ return QString::fromStdString(m_unityFilterOption[0]->id());
3636}
3737
38−std::string CombinedFilterOption::getCombinedName() const
38+QString CombinedFilterOption::getCombinedName() const
3939{
4040 if (m_unityFilterOption[1] != nullptr)
4141 return tr("%1 - %2")
4242 .arg(QString::fromStdString(m_unityFilterOption[0]->name()))
43− .arg(QString::fromStdString(m_unityFilterOption[1]->name())).toStdString();
44− return m_unityFilterOption[0]->name();
43+ .arg(QString::fromStdString(m_unityFilterOption[1]->name()));
44+ return QString::fromStdString(m_unityFilterOption[0]->name());
4545}
4646
4747QString CombinedFilterOption::id() const
4848{
49− return QString::fromStdString(getCombinedId());
49+ return getCombinedId();
5050}
5151
5252QString CombinedFilterOption::name() const
5353{
54− return QString::fromStdString(getCombinedName());
54+ return getCombinedName();
5555}
5656
5757QString CombinedFilterOption::iconHint() const
@@ -97,6 +97,16 @@ void CombinedFilterOption::onIdChanged(const std::string &/* id */)
9797 Q_EMIT idChanged(getCombinedId());
9898}
9999
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+
100110void CombinedFilterOption::onActiveChanged(bool /*active*/)
101111{
102112 bool combinedState = CombinedFilterOption::active();
@@ -117,8 +127,8 @@ void CombinedFilterOption::setUnityFilterOption(unity::dash::FilterOption::Ptr u
117127 for (int i=0; i<2; i++) {
118128 if (m_unityFilterOption[i] != nullptr) {
119129 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))
121− << m_unityFilterOption[i]->icon_hint.changed.connect(sigc::mem_fun(this,&CombinedFilterOption::iconHintChanged))
130+ << m_unityFilterOption[i]->name.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onNameChanged))
131+ << m_unityFilterOption[i]->icon_hint.changed.connect(sigc::mem_fun(this,&CombinedFilterOption::onIconHintChanged))
122132 << m_unityFilterOption[i]->active.changed.connect(sigc::mem_fun(this, &CombinedFilterOption::onActiveChanged));
123133 }
124134 }
plugins/Unity/combinedfilteroption.h+5−4
@@ -49,13 +49,14 @@ public:
4949 /* setters */
5050 void setActive(bool active) override;
5151
52−private Q_SLOTS:
52+private:
5353 void onIdChanged(const std::string &id);
54+ void onNameChanged(const std::string &name);
55+ void onIconHintChanged(const std::string &iconHint);
5456 void onActiveChanged(bool active);
5557
56−private:
57− std::string getCombinedId() const;
58− std::string getCombinedName() const;
58+ QString getCombinedId() const;
59+ QString getCombinedName() const;
5960 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption1,
6061 unity::dash::FilterOption::Ptr unityFilterOption2 = nullptr);
6162
plugins/Unity/filteroption.cpp+24−4
@@ -64,10 +64,30 @@ void FilterOption::setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilt
6464 m_unityFilterOption = unityFilterOption;
6565
6666 /* Property change signals */
67− m_signals << m_unityFilterOption->id.changed.connect(sigc::mem_fun(this, &FilterOption::idChanged))
68− << m_unityFilterOption->name.changed.connect(sigc::mem_fun(this, &FilterOption::nameChanged))
69− << m_unityFilterOption->icon_hint.changed.connect(sigc::mem_fun(this, &FilterOption::iconHintChanged))
70− << m_unityFilterOption->active.changed.connect(sigc::mem_fun(this, &FilterOption::activeChanged));
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::onNameChanged))
69+ << m_unityFilterOption->icon_hint.changed.connect(sigc::mem_fun(this, &FilterOption::onIconHintChanged))
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);
7191}
7292
7393#include "filteroption.moc"
plugins/Unity/filteroption.h+5
@@ -46,6 +46,11 @@ public:
4646 void setActive(bool active) override;
4747
4848private:
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+
4954 void setUnityFilterOption(unity::dash::FilterOption::Ptr unityFilterOption);
5055 SignalsList m_signals;
5156