Index: src/FilterEngine.cpp |
=================================================================== |
--- a/src/FilterEngine.cpp |
+++ b/src/FilterEngine.cpp |
@@ -72,23 +72,45 @@ |
func.Call(*this); |
} |
bool Filter::operator==(const Filter& filter) const |
{ |
return GetProperty("text").AsString() == filter.GetProperty("text").AsString(); |
} |
+Subscription::Subscription(const Subscription& src) |
+ : JsValue(src) |
+{ |
+} |
+ |
+Subscription::Subscription(Subscription&& src) |
+ : JsValue(std::move(src)) |
+{ |
+} |
+ |
Subscription::Subscription(JsValue&& value) |
: JsValue(std::move(value)) |
{ |
if (!IsObject()) |
throw std::runtime_error("JavaScript value is not an object"); |
} |
+Subscription& Subscription::operator=(const Subscription& src) |
+{ |
+ *this = src; |
+ return *this; |
+} |
+ |
+Subscription& Subscription::operator=(Subscription&& src) |
+{ |
+ *this = std::move(src); |
+ return *this; |
+} |
+ |
bool Subscription::IsListed() const |
{ |
JsValue func = jsEngine->Evaluate("API.isListedSubscription"); |
return func.Call(*this).AsBool(); |
} |
void Subscription::AddToList() |
{ |
@@ -277,49 +299,49 @@ |
} |
Filter FilterEngine::GetFilter(const std::string& text) const |
{ |
JsValue func = jsEngine->Evaluate("API.getFilterFromText"); |
return Filter(func.Call(jsEngine->NewValue(text))); |
} |
-SubscriptionPtr FilterEngine::GetSubscription(const std::string& url) const |
+Subscription FilterEngine::GetSubscription(const std::string& url) const |
{ |
JsValue func = jsEngine->Evaluate("API.getSubscriptionFromUrl"); |
- return SubscriptionPtr(new Subscription(func.Call(jsEngine->NewValue(url)))); |
+ return Subscription(func.Call(jsEngine->NewValue(url))); |
} |
std::vector<Filter> FilterEngine::GetListedFilters() const |
{ |
JsValue func = jsEngine->Evaluate("API.getListedFilters"); |
JsValueList values = func.Call().AsList(); |
std::vector<Filter> result; |
for (JsValueList::iterator it = values.begin(); it != values.end(); it++) |
result.push_back(Filter(std::move(*it))); |
return result; |
} |
-std::vector<SubscriptionPtr> FilterEngine::GetListedSubscriptions() const |
+std::vector<Subscription> FilterEngine::GetListedSubscriptions() const |
{ |
JsValue func = jsEngine->Evaluate("API.getListedSubscriptions"); |
JsValueList values = func.Call().AsList(); |
- std::vector<SubscriptionPtr> result; |
+ std::vector<Subscription> result; |
for (JsValueList::iterator it = values.begin(); it != values.end(); it++) |
- result.push_back(SubscriptionPtr(new Subscription(std::move(*it)))); |
+ result.push_back(Subscription(std::move(*it))); |
return result; |
} |
-std::vector<SubscriptionPtr> FilterEngine::FetchAvailableSubscriptions() const |
+std::vector<Subscription> FilterEngine::FetchAvailableSubscriptions() const |
{ |
JsValue func = jsEngine->Evaluate("API.getRecommendedSubscriptions"); |
JsValueList values = func.Call().AsList(); |
- std::vector<SubscriptionPtr> result; |
+ std::vector<Subscription> result; |
for (JsValueList::iterator it = values.begin(); it != values.end(); it++) |
- result.push_back(SubscriptionPtr(new Subscription(std::move(*it)))); |
+ result.push_back(Subscription(std::move(*it))); |
return result; |
} |
void FilterEngine::SetAAEnabled(bool enabled) |
{ |
jsEngine->Evaluate("API.setAASubscriptionEnabled").Call(jsEngine->NewValue(enabled)); |
} |