| Index: src/plugin/PluginSettings.cpp |
| =================================================================== |
| --- a/src/plugin/PluginSettings.cpp |
| +++ b/src/plugin/PluginSettings.cpp |
| @@ -24,18 +24,16 @@ |
| class TSettings |
| { |
| DWORD processorId; |
| char sPluginId[44]; |
| }; |
| -static void SubsCallback(std::vector<AdblockPlus::SubscriptionPtr>& subscriptions); |
| - |
| class CPluginSettingsLock : public CPluginMutex |
| { |
| public: |
| CPluginSettingsLock() : CPluginMutex("SettingsFile", PLUGIN_ERROR_MUTEX_SETTINGS_FILE) {} |
| ~CPluginSettingsLock() {} |
| }; |
| @@ -66,18 +64,18 @@ CPluginSettings* CPluginSettings::s_inst |
| bool CPluginSettings::s_isLightOnly = false; |
| CComAutoCriticalSection CPluginSettings::s_criticalSectionLocal; |
| #ifdef SUPPORT_WHITELIST |
| CComAutoCriticalSection CPluginSettings::s_criticalSectionDomainHistory; |
| #endif |
| -CPluginSettings::CPluginSettings() : |
| - m_settingsVersion("1"), m_isDirty(false), m_isFirstRun(false), m_isFirstRunUpdate(false), m_dwMainProcessId(0), m_dwMainThreadId(0), m_dwWorkingThreadId(0), |
| +CPluginSettings::CPluginSettings() : |
| + m_settingsVersion("1"), m_isDirty(false), m_isFirstRun(false), m_isFirstRunUpdate(false), m_dwMainProcessId(0), m_dwMainThreadId(0), m_dwWorkingThreadId(0), |
| m_isDirtyTab(false), m_isPluginEnabledTab(true), m_tabNumber("1") |
| { |
| CPluginSettings *lightInstance = s_instance; |
| s_instance = NULL; |
| m_settingsFile = std::auto_ptr<CPluginIniFileW>(new CPluginIniFileW(GetDataPath(SETTINGS_INI_FILE), false)); |
| m_settingsFileTab = std::auto_ptr<CPluginIniFileW>(new CPluginIniFileW(GetDataPath(SETTINGS_INI_FILE_TAB), true)); |
| @@ -98,51 +96,50 @@ CPluginSettings::CPluginSettings() : |
| { |
| std::ifstream is; |
| is.open(GetDataPath(SETTINGS_INI_FILE), std::ios_base::in); |
| if (!is.is_open()) |
| { |
| TCHAR pf[MAX_PATH]; |
| SHGetSpecialFolderPath( |
| 0, |
| - pf, |
| - CSIDL_PROGRAM_FILESX86, |
| - FALSE ); |
| + pf, |
| + CSIDL_PROGRAM_FILESX86, |
| + FALSE ); |
| //No files found, copy from the dll location |
| CString pathToDll; |
| DWORD pathResult = GetModuleFileNameW((HINSTANCE)&__ImageBase, pathToDll.GetBufferSetLength(MAX_PATH), MAX_PATH); |
| if (pathResult > 0) |
| { |
| CString cpyPath; |
| cpyPath = pathToDll.Left(pathToDll.ReverseFind('\\') + 1); |
| BOOL res = CopyFile(cpyPath + SETTINGS_INI_FILE, GetDataPath(SETTINGS_INI_FILE), TRUE); |
| res = CopyFile(cpyPath + DICTIONARY_INI_FILE, GetDataPath(DICTIONARY_INI_FILE), TRUE); |
| res = CopyFile(cpyPath + SETTING_PAGE_INI_FILE, GetDataPath(SETTING_PAGE_INI_FILE), TRUE); |
| SHFILEOPSTRUCT pFileStruct; |
| - ZeroMemory(&pFileStruct, sizeof(SHFILEOPSTRUCT)); |
| + ZeroMemory(&pFileStruct, sizeof(SHFILEOPSTRUCT)); |
| pFileStruct.hwnd = NULL; |
| pFileStruct.wFunc = FO_COPY; |
| - WCHAR fromPath[MAX_PATH + 2]; |
| + WCHAR fromPath[MAX_PATH + 2]; |
| WCHAR toPath[MAX_PATH + 2]; |
| CString source = cpyPath + "html\\*"; |
| wcscpy(fromPath, source); |
| fromPath[source.GetLength()] = '\0'; |
| fromPath[source.GetLength() + 1] = '\0'; |
| wcscpy(toPath, GetDataPath(L"html")); |
| toPath[GetDataPath(L"html").GetLength()] = '\0'; |
| toPath[GetDataPath(L"html").GetLength() + 1] = '\0'; |
| pFileStruct.pFrom = fromPath; |
| - pFileStruct.pTo = toPath; |
| - pFileStruct.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NO_UI | FOF_RENAMEONCOLLISION; |
| - bool i = pFileStruct.fAnyOperationsAborted ; |
| + pFileStruct.pTo = toPath; |
| + pFileStruct.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NO_UI | FOF_RENAMEONCOLLISION; |
| SHFileOperation(&pFileStruct); |
| } |
| is.open(GetDataPath(SETTINGS_INI_FILE), std::ios_base::in); |
| if (!is.is_open()) |
| { |
| m_isDirty = true; |
| } |
| else |
| @@ -189,49 +186,41 @@ CPluginSettings::~CPluginSettings() |
| if (s_dataPathParent != NULL) |
| { |
| delete s_dataPathParent; |
| } |
| s_instance = NULL; |
| } |
| -CPluginSettings* CPluginSettings::GetInstance() |
| +CPluginSettings* CPluginSettings::GetInstance() |
| { |
| CPluginSettings* instance = NULL; |
| s_criticalSectionLocal.Lock(); |
| { |
| if ((!s_instance) || (s_isLightOnly)) |
| { |
| s_instance = new CPluginSettings(); |
| #ifdef USE_CONSOLE |
| CONSOLE("Fetching Available Subscription\n"); |
| #endif |
| - try |
| - { |
| - CPluginSettings::GetInstance()->m_subscriptions = CPluginClient::GetInstance()->FetchAvailableSubscriptions(); |
| - } |
| - catch(std::exception ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - throw ex; |
| - } |
| + CPluginSettings::GetInstance()->m_subscriptions = CPluginClient::GetInstance()->FetchAvailableSubscriptions(); |
| s_isLightOnly = false; |
| } |
| instance = s_instance; |
| } |
| s_criticalSectionLocal.Unlock(); |
| return instance; |
| } |
| -bool CPluginSettings::HasInstance() |
| +bool CPluginSettings::HasInstance() |
| { |
| bool hasInstance = true; |
| s_criticalSectionLocal.Lock(); |
| { |
| hasInstance = s_instance != NULL; |
| } |
| s_criticalSectionLocal.Unlock(); |
| @@ -249,17 +238,17 @@ bool CPluginSettings::Read(bool bDebug) |
| if (bDebug) |
| { |
| DEBUG_GENERAL(L"*** Loading settings:" + m_settingsFile->GetFilePath()); |
| } |
| CPluginSettingsLock lock; |
| if (lock.IsLocked()) |
| { |
| - isRead = m_settingsFile->Read(); |
| + isRead = m_settingsFile->Read(); |
| if (isRead) |
| { |
| if (m_settingsFile->IsValidChecksum()) |
| { |
| m_properties = m_settingsFile->GetSectionData("Settings"); |
| } |
| else |
| { |
| @@ -357,31 +346,31 @@ bool CPluginSettings::MakeRequestForUpda |
| } |
| } |
| return true; |
| } |
| CString CPluginSettings::GetDataPathParent() |
| { |
| - if (s_dataPathParent == NULL) |
| + if (s_dataPathParent == NULL) |
| { |
| WCHAR* lpData = new WCHAR[MAX_PATH]; |
| OSVERSIONINFO osVersionInfo; |
| ::ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFO)); |
| osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); |
| ::GetVersionEx(&osVersionInfo); |
| - //Windows Vista - 6.0 |
| - //Windows Server 2003 R2 - 5.2 |
| - //Windows Server 2003 - 5.2 |
| - //Windows XP - 5.1 |
| + //Windows Vista - 6.0 |
| + //Windows Server 2003 R2 - 5.2 |
| + //Windows Server 2003 - 5.2 |
| + //Windows XP - 5.1 |
| if (osVersionInfo.dwMajorVersion >= 6) |
| { |
| if (::SHGetSpecialFolderPath(NULL, lpData, CSIDL_LOCAL_APPDATA, TRUE)) |
| { |
| wcscat(lpData, L"Low"); |
| } |
| else |
| { |
| @@ -410,31 +399,31 @@ CString CPluginSettings::GetDataPathPare |
| } |
| } |
| return s_dataPathParent; |
| } |
| CString CPluginSettings::GetDataPath(const CString& filename) |
| { |
| - if (s_dataPath == NULL) |
| + if (s_dataPath == NULL) |
| { |
| WCHAR* lpData = new WCHAR[MAX_PATH]; |
| OSVERSIONINFO osVersionInfo; |
| ::ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFO)); |
| osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); |
| ::GetVersionEx(&osVersionInfo); |
| - //Windows Vista - 6.0 |
| - //Windows Server 2003 R2 - 5.2 |
| - //Windows Server 2003 - 5.2 |
| - //Windows XP - 5.1 |
| + //Windows Vista - 6.0 |
| + //Windows Server 2003 R2 - 5.2 |
| + //Windows Server 2003 - 5.2 |
| + //Windows XP - 5.1 |
| if (osVersionInfo.dwMajorVersion >= 6) |
| { |
| if (::SHGetSpecialFolderPath(NULL, lpData, CSIDL_LOCAL_APPDATA, TRUE)) |
| { |
| wcscat(lpData, L"Low"); |
| } |
| else |
| { |
| @@ -489,17 +478,17 @@ CString CPluginSettings::GetSystemLangua |
| } |
| CString CPluginSettings::GetTempPath(const CString& filename) |
| { |
| CString tempPath; |
| LPWSTR pwszCacheDir = NULL; |
| - HRESULT hr = ::IEGetWriteableFolderPath(FOLDERID_InternetCache, &pwszCacheDir); |
| + HRESULT hr = ::IEGetWriteableFolderPath(FOLDERID_InternetCache, &pwszCacheDir); |
| if (SUCCEEDED(hr)) |
| { |
| tempPath = pwszCacheDir; |
| } |
| // Not implemented in IE6 |
| else if (hr == E_NOTIMPL) |
| { |
| TCHAR path[MAX_PATH] = _T(""); |
| @@ -566,17 +555,17 @@ bool CPluginSettings::Has(const CString& |
| return hasKey; |
| } |
| void CPluginSettings::Remove(const CString& key) |
| { |
| s_criticalSectionLocal.Lock(); |
| - { |
| + { |
| TProperties::iterator it = m_properties.find(key); |
| if (it != m_properties.end()) |
| { |
| m_properties.erase(it); |
| m_isDirty = true; |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| @@ -614,17 +603,17 @@ void CPluginSettings::SetString(const CS |
| TProperties::iterator it = m_properties.find(key); |
| if (it != m_properties.end() && it->second != value) |
| { |
| it->second = value; |
| m_isDirty = true; |
| } |
| else if (it == m_properties.end()) |
| { |
| - m_properties[key] = value; |
| + m_properties[key] = value; |
| m_isDirty = true; |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| } |
| int CPluginSettings::GetValue(const CString& key, int defaultValue) const |
| @@ -663,17 +652,17 @@ void CPluginSettings::SetValue(const CSt |
| TProperties::iterator it = m_properties.find(key); |
| if (it != m_properties.end() && it->second != sValue) |
| { |
| it->second = sValue; |
| m_isDirty = true; |
| } |
| else if (it == m_properties.end()) |
| { |
| - m_properties[key] = sValue; |
| + m_properties[key] = sValue; |
| m_isDirty = true; |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| } |
| bool CPluginSettings::GetBool(const CString& key, bool defaultValue) const |
| @@ -703,36 +692,24 @@ void CPluginSettings::SetBool(const CStr |
| } |
| bool CPluginSettings::IsPluginEnabled() const |
| { |
| return m_isPluginEnabledTab; |
| } |
| -static void SubsCallback(std::vector<AdblockPlus::SubscriptionPtr>& subscriptions) |
| -{ |
| - CPluginSettings::GetInstance()->m_subscriptions = subscriptions; |
| - return; |
| -} |
| - |
| std::map<CString, CString> CPluginSettings::GetFilterLanguageTitleList() const |
| { |
| std::map<CString, CString> filterList; |
| - for (int i = 0; i < m_subscriptions.size(); i ++) |
| - { |
| - AdblockPlus::SubscriptionPtr it = m_subscriptions[i]; |
| - std::string title = ""; |
| - std::string url = ""; |
| - |
| - title = it.get()->GetProperty("specialization")->AsString(); |
| - url = it.get()->GetProperty("url")->AsString(); |
| - |
| - filterList.insert(std::make_pair(CString(CA2T(url.c_str(), CP_UTF8)), CString(CA2T(title.c_str(), CP_UTF8)))); |
| + for (size_t i = 0; i < m_subscriptions.size(); i ++) |
| + { |
| + SubscriptionDescription it = m_subscriptions[i]; |
| + filterList.insert(std::make_pair(CString(CA2T(it.url.c_str(), CP_UTF8)), CString(CA2T(it.title.c_str(), CP_UTF8)))); |
| } |
| return filterList; |
| } |
| bool CPluginSettings::Write(bool isDebug) |
| { |
| bool isWritten = true; |
| @@ -748,17 +725,17 @@ bool CPluginSettings::Write(bool isDebug |
| } |
| CPluginSettingsLock lock; |
| if (lock.IsLocked()) |
| { |
| m_settingsFile->Clear(); |
| // Properties |
| - CPluginIniFileW::TSectionData settings; |
| + CPluginIniFileW::TSectionData settings; |
| s_criticalSectionLocal.Lock(); |
| { |
| for (TProperties::iterator it = m_properties.begin(); it != m_properties.end(); ++it) |
| { |
| settings[it->first] = it->second; |
| } |
| } |
| @@ -941,17 +918,17 @@ bool CPluginSettings::ReadTab(bool bDebu |
| DEBUG_SETTINGS(L"SettingsTab::Read tab") |
| if (bDebug) |
| { |
| DEBUG_GENERAL(L"*** Loading tab settings:" + m_settingsFileTab->GetFilePath()); |
| } |
| - isRead = m_settingsFileTab->Read(); |
| + isRead = m_settingsFileTab->Read(); |
| if (isRead) |
| { |
| ClearTab(); |
| if (m_settingsFileTab->IsValidChecksum()) |
| { |
| s_criticalSectionLocal.Lock(); |
| { |
| @@ -1004,18 +981,18 @@ bool CPluginSettings::WriteTab(bool isDe |
| if (isDebug) |
| { |
| DEBUG_GENERAL(L"*** Writing changed tab settings") |
| } |
| m_settingsFileTab->Clear(); |
| // Properties & errors |
| - CPluginIniFileW::TSectionData settings; |
| - CPluginIniFileW::TSectionData errors; |
| + CPluginIniFileW::TSectionData settings; |
| + CPluginIniFileW::TSectionData errors; |
| s_criticalSectionLocal.Lock(); |
| { |
| for (TProperties::iterator it = m_propertiesTab.begin(); it != m_propertiesTab.end(); ++it) |
| { |
| settings[it->first] = it->second; |
| } |
| @@ -1072,32 +1049,32 @@ bool CPluginSettings::IncrementTabCount( |
| today.Format(L"%d-%d-%d", systemTime.wYear, systemTime.wMonth, systemTime.wDay); |
| ReadTab(false); |
| s_criticalSectionLocal.Lock(); |
| { |
| TProperties::iterator it = m_propertiesTab.find(SETTING_TAB_COUNT); |
| if (it != m_propertiesTab.end()) |
| - { |
| + { |
| tabCount = _wtoi(it->second) + 1; |
| } |
| it = m_propertiesTab.find(SETTING_TAB_START_TIME); |
| //Is this a first IE instance? |
| HWND ieWnd = FindWindow(L"IEFrame", NULL); |
| if (ieWnd != NULL) |
| { |
| ieWnd = FindWindowEx(NULL, ieWnd, L"IEFrame", NULL); |
| } |
| if ((it != m_propertiesTab.end() && it->second != today)) |
| { |
| - tabCount = 1; |
| + tabCount = 1; |
| } |
| m_tabNumber.Format(L"%d", tabCount); |
| m_propertiesTab[SETTING_TAB_COUNT] = m_tabNumber; |
| m_propertiesTab[SETTING_TAB_START_TIME] = today; |
| // Main tab? |
| if (tabCount == 1) |
| @@ -1114,17 +1091,17 @@ bool CPluginSettings::IncrementTabCount( |
| m_propertiesTab[SETTING_TAB_CONFIG_VERSION] = "1"; |
| #endif |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| m_isDirtyTab = true; |
| - WriteTab(false); |
| + WriteTab(false); |
| } |
| return tabCount == 1; |
| } |
| CString CPluginSettings::GetTabNumber() const |
| { |
| @@ -1172,17 +1149,17 @@ bool CPluginSettings::DecrementTabCount( |
| it = m_propertiesTab.find(SETTING_TAB_COUNT); |
| if (it != m_propertiesTab.end()) |
| { |
| m_propertiesTab.erase(it); |
| } |
| } |
| - m_isDirtyTab = true; |
| + m_isDirtyTab = true; |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| WriteTab(false); |
| } |
| return tabCount == 0; |
| @@ -1257,17 +1234,17 @@ void CPluginSettings::AddError(const CSt |
| if (lock.IsLocked()) |
| { |
| ReadTab(false); |
| s_criticalSectionLocal.Lock(); |
| { |
| if (m_errorsTab.find(error) == m_errorsTab.end()) |
| { |
| - m_errorsTab[error] = errorCode; |
| + m_errorsTab[error] = errorCode; |
| m_isDirtyTab = true; |
| } |
| } |
| s_criticalSectionLocal.Unlock(); |
| WriteTab(false); |
| } |
| } |
| @@ -1452,17 +1429,17 @@ void CPluginSettings::IncrementTabVersio |
| versionString.Format(L"%d", version); |
| m_propertiesTab[key] = versionString; |
| } |
| s_criticalSectionLocal.Unlock(); |
| m_isDirtyTab = true; |
| - WriteTab(false); |
| + WriteTab(false); |
| } |
| } |
| // ============================================================================ |
| // Whitelist settings |
| // ============================================================================ |
| @@ -1490,45 +1467,17 @@ bool CPluginSettings::ReadWhitelist(bool |
| } |
| CPluginSettingsWhitelistLock lock; |
| if (lock.IsLocked()) |
| { |
| ClearWhitelist(); |
| s_criticalSectionLocal.Lock(); |
| - try |
| - { |
| - std::vector<AdblockPlus::FilterPtr> filters = CPluginClient::GetInstance()->GetListedFilters(); |
| - for (int i = 0; i < filters.size(); i ++) |
| - { |
| - if (filters[i]->GetType() == AdblockPlus::Filter::Type::TYPE_EXCEPTION) |
| - { |
| - std::string text = filters[i]->GetProperty("text")->AsString(); |
| - //@@||example.com^$document |
| - size_t endPos = text.rfind("^$document"); |
| - if (endPos != std::string::npos) |
| - { |
| - size_t startPos = text.find("@@||") + 4; |
| - if (startPos != std::string::npos) |
| - { |
| - m_whitelistedDomains.push_back(text.substr(startPos, endPos - startPos)); |
| - } |
| - } |
| - } |
| - } |
| - } |
| - catch(std::runtime_error ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| - catch(std::exception ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| + m_whitelistedDomains = CPluginClient::GetInstance()->GetExceptionDomains(); |
| s_criticalSectionLocal.Unlock(); |
| } |
| else |
| { |
| isRead = false; |
| } |
| return isRead; |
| @@ -1550,20 +1499,17 @@ void CPluginSettings::AddWhiteListedDoma |
| std::string newDomain = CW2A(domain, CP_UTF8); |
| //Domain already present? |
| if (std::find(m_whitelistedDomains.begin(), m_whitelistedDomains.end(), newDomain) != m_whitelistedDomains.end()) |
| { |
| return; |
| } |
| s_criticalSectionLocal.Lock(); |
| - { |
| - AdblockPlus::FilterPtr whitelistFilter = CPluginClient::GetInstance()->GetFilter(std::string("@@||").append(CW2A(domain)).append("^$document")); |
| - whitelistFilter->AddToList(); |
| - } |
| + CPluginClient::GetInstance()->AddFilter(std::string("@@||").append(CW2A(domain)).append("^$document")); |
| s_criticalSectionLocal.Unlock(); |
| } |
| if (isForcingUpdateOnStart) |
| { |
| ForceConfigurationUpdateOnStart(); |
| } |
| @@ -1638,128 +1584,40 @@ DWORD CPluginSettings::GetWindowsBuildNu |
| void CPluginSettings::SetSubscription(BSTR url) |
| { |
| std::string urlConverted = CT2A(url, CP_UTF8); |
| SetSubscription(urlConverted); |
| } |
| void CPluginSettings::SetSubscription(std::string url) |
| { |
| - try |
| - { |
| - std::vector<AdblockPlus::SubscriptionPtr> subscriptions = CPluginClient::GetInstance()->GetListedSubscriptions(); |
| - if (subscriptions.size() > 0) |
| - { |
| - for (int i = 0; i < subscriptions.size(); i ++) |
| - { |
| - subscriptions[i]->RemoveFromList(); |
| - } |
| - } |
| - AdblockPlus::SubscriptionPtr subscription = CPluginClient::GetInstance()->GetSubscription(url); |
| - subscription->AddToList(); |
| - RefreshFilterlist(); |
| - RefreshWhitelist(); |
| - } |
| - catch(std::exception ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| - catch(std::runtime_error ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| + CPluginClient::GetInstance()->SetSubscription(url); |
| + RefreshFilterlist(); |
| + RefreshWhitelist(); |
| } |
| std::vector<std::string> split(const std::string& s, char delim) { |
| std::vector<std::string> retTokens; |
| std::stringstream ss(s); |
| std::string item; |
| while (std::getline(ss, item, delim)) { |
| retTokens.push_back(item); |
| } |
| return retTokens; |
| } |
| -void CPluginSettings::SetDefaultSubscription() |
| -{ |
| - CPluginSystem* system = CPluginSystem::GetInstance(); |
| - CString lng = system->GetBrowserLanguage().Left(2); |
| - std::string browserLanguage = CW2A(lng, CP_UTF8); |
| - std::vector<SubscriptionPtr> subscriptions = CPluginClient::GetInstance()->FetchAvailableSubscriptions(); |
| - bool subscriptionSet = false; |
| - while (!subscriptionSet) |
| - { |
| - for (int i = 0; i < subscriptions.size(); i++) |
| - { |
| - std::string prefixes = subscriptions[i]->GetProperty("prefixes")->AsString(); |
| - std::vector<std::string> tokens = split(prefixes, ','); |
| - for (int j = 0; j < tokens.size(); j ++) |
| - { |
| - if (tokens[j] == browserLanguage) |
| - { |
| - SetSubscription(subscriptions[i]->GetProperty("url")->AsString()); |
| - subscriptionSet = true; |
| - } |
| - } |
| - } |
| - |
| - if (browserLanguage == "en") |
| - break; |
| - // failed to set the subscription for browser language. Try "en" |
| - browserLanguage = "en"; |
| - |
| - } |
| -} |
| - |
| CString CPluginSettings::GetSubscription() |
| { |
| - try |
| - { |
| - std::vector<AdblockPlus::SubscriptionPtr> subscriptions = CPluginClient::GetInstance()->GetListedSubscriptions(); |
| - |
| - if (subscriptions.size() == 0) |
| - { |
| - SetDefaultSubscription(); |
| - subscriptions = CPluginClient::GetInstance()->GetListedSubscriptions(); |
| - } |
| - for (int i = 0; i < subscriptions.size(); i ++) |
| - { |
| - return CString(CA2T(subscriptions[i]->GetProperty("url")->AsString().c_str(), CP_UTF8)); |
| - } |
| - } |
| - catch(std::exception ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| - catch(std::runtime_error ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| - return CString(L""); |
| + std::vector<SubscriptionDescription> subscriptions = CPluginClient::GetInstance()->GetListedSubscriptions(); |
| + if (subscriptions.size() > 0) |
| + return CString(CA2T(subscriptions.front().url.c_str(), CP_UTF8)); |
| + else |
| + return CString(L""); |
| } |
| void CPluginSettings::RefreshFilterlist() |
| { |
| - try |
| - { |
| - // Make sure at least the default subscription is set |
| - CPluginSettings* settings = CPluginSettings::GetInstance(); |
| - settings->GetSubscription(); |
| - |
| - std::vector<AdblockPlus::SubscriptionPtr> subscriptions = CPluginClient::GetInstance()->GetListedSubscriptions(); |
| - for (int i = 0; i < subscriptions.size(); i ++) |
| - { |
| - subscriptions[i]->UpdateFilters(); |
| - } |
| - } |
| - catch(std::exception ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| - catch(std::runtime_error ex) |
| - { |
| - DEBUG_GENERAL(ex.what()); |
| - } |
| + CPluginClient::GetInstance()->UpdateAllSubscriptions(); |
| } |
| #endif // SUPPORT_WHITELIST |