From 495135e81dfd63a86627a8b475aca10bc63aace2 Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Fri, 8 Jan 2016 12:41:36 +0000 Subject: IEView: ReloadOptions service git-svn-id: http://svn.miranda-ng.org/main/trunk@16062 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/IEView/src/Options.cpp | 13 ++++++++++++- plugins/IEView/src/Options.h | 1 + plugins/IEView/src/ieview_main.cpp | 1 + plugins/IEView/src/ieview_services.cpp | 8 ++++++++ plugins/IEView/src/ieview_services.h | 1 + 5 files changed, 23 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/IEView/src/Options.cpp b/plugins/IEView/src/Options.cpp index 59dbde9186..d40902b863 100644 --- a/plugins/IEView/src/Options.cpp +++ b/plugins/IEView/src/Options.cpp @@ -469,7 +469,7 @@ static void MarkInitialized(int i) initialized |= i; } -static void ApplyChanges(int i) +void ApplyChanges(int i) { changed &= ~i; initialized &= ~i; @@ -1747,3 +1747,14 @@ void Options::saveProtocolSettings() db_set_s(NULL, ieviewModuleName, dbsName, tmpPath); } } + +void Options::Reload() +{ + ProtocolSettings *p, *p1; + for (p = Options::protocolList; p != NULL; p = p1) { + p1 = p->getNext(); + delete p; + } + isInited = false; + init(); +} \ No newline at end of file diff --git a/plugins/IEView/src/Options.h b/plugins/IEView/src/Options.h index 8e626cb9b4..6fc9a1c27b 100644 --- a/plugins/IEView/src/Options.h +++ b/plugins/IEView/src/Options.h @@ -240,6 +240,7 @@ public: static void resetProtocolSettings(); static ProtocolSettings*getProtocolSettings(); static ProtocolSettings*getProtocolSettings(const char *protocolName); + static void Reload(); }; #endif diff --git a/plugins/IEView/src/ieview_main.cpp b/plugins/IEView/src/ieview_main.cpp index b155b45129..852bc3ccaf 100644 --- a/plugins/IEView/src/ieview_main.cpp +++ b/plugins/IEView/src/ieview_main.cpp @@ -75,6 +75,7 @@ extern "C" int __declspec(dllexport) Load(void) CreateServiceFunction(MS_IEVIEW_WINDOW, HandleIEWindow); CreateServiceFunction(MS_IEVIEW_EVENT, HandleIEEvent); CreateServiceFunction(MS_IEVIEW_NAVIGATE, HandleIENavigate); + CreateServiceFunction("IEView/ReloadOptions", ReloadOptions); hHookOptionsChanged = CreateHookableEvent(ME_IEVIEW_OPTIONSCHANGED); return 0; } diff --git a/plugins/IEView/src/ieview_services.cpp b/plugins/IEView/src/ieview_services.cpp index 47dbc1a997..2b7fc6f8a6 100644 --- a/plugins/IEView/src/ieview_services.cpp +++ b/plugins/IEView/src/ieview_services.cpp @@ -103,3 +103,11 @@ INT_PTR HandleIENavigate(WPARAM, LPARAM lParam) } return 0; } + +void ApplyChanges(int i); + +INT_PTR ReloadOptions(WPARAM, LPARAM) +{ + Options::Reload(); + return 0; +} \ No newline at end of file diff --git a/plugins/IEView/src/ieview_services.h b/plugins/IEView/src/ieview_services.h index 3ab3772a6a..fe3f42bd4a 100644 --- a/plugins/IEView/src/ieview_services.h +++ b/plugins/IEView/src/ieview_services.h @@ -26,6 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern INT_PTR HandleIEWindow(WPARAM wParam, LPARAM lParam); extern INT_PTR HandleIEEvent(WPARAM wParam, LPARAM lParam); extern INT_PTR HandleIENavigate(WPARAM wParam, LPARAM lParam); +extern INT_PTR ReloadOptions(WPARAM, LPARAM); #endif -- cgit v1.2.3