summaryrefslogtreecommitdiff
path: root/Plugins
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins')
-rw-r--r--Plugins/extraicons/Docs/extraicons_changelog.txt3
-rw-r--r--Plugins/extraicons/Docs/extraicons_version.txt2
-rw-r--r--Plugins/extraicons/extraicons.cpp2
-rw-r--r--Plugins/extraicons/options.cpp3
-rw-r--r--Plugins/extraicons/usedIcons.cpp21
5 files changed, 16 insertions, 15 deletions
diff --git a/Plugins/extraicons/Docs/extraicons_changelog.txt b/Plugins/extraicons/Docs/extraicons_changelog.txt
index 789981b..984bb20 100644
--- a/Plugins/extraicons/Docs/extraicons_changelog.txt
+++ b/Plugins/extraicons/Docs/extraicons_changelog.txt
@@ -2,6 +2,9 @@ Extra Icons Service
Changelog:
+. 0.2.5.0
+ * Fix for crash on reseting icons
+
. 0.2.4.0
* Fix for removing grouped icon
diff --git a/Plugins/extraicons/Docs/extraicons_version.txt b/Plugins/extraicons/Docs/extraicons_version.txt
index 9ce190c..ffcd6fd 100644
--- a/Plugins/extraicons/Docs/extraicons_version.txt
+++ b/Plugins/extraicons/Docs/extraicons_version.txt
@@ -1 +1 @@
-Extra Icons Service 0.2.4.0 \ No newline at end of file
+Extra Icons Service 0.2.5.0 \ No newline at end of file
diff --git a/Plugins/extraicons/extraicons.cpp b/Plugins/extraicons/extraicons.cpp
index 26dd9b5..4e445d3 100644
--- a/Plugins/extraicons/extraicons.cpp
+++ b/Plugins/extraicons/extraicons.cpp
@@ -24,7 +24,7 @@
PLUGININFOEX pluginInfo = {
sizeof(PLUGININFOEX),
"Extra Icons Service",
- PLUGIN_MAKE_VERSION(0,2,4,0),
+ PLUGIN_MAKE_VERSION(0,2,5,0),
"Extra Icons Service",
"Ricardo Pescuma Domenecci",
"",
diff --git a/Plugins/extraicons/options.cpp b/Plugins/extraicons/options.cpp
index 965cb2a..88ae210 100644
--- a/Plugins/extraicons/options.cpp
+++ b/Plugins/extraicons/options.cpp
@@ -40,8 +40,7 @@ int InitOptionsCallback(WPARAM wParam, LPARAM lParam)
odp.hInstance = hInst;
odp.pszGroup = LPGENT("Contact List");
odp.pszTitle = LPGENT("Extra icons");
- // odp.pszTitle = LPGENT("Contact List");
- // odp.pszTab = LPGENT("Extra icons");
+ odp.pszTab = LPGENT("General");
odp.pfnDlgProc = OptionsDlgProc;
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
odp.flags = ODPF_BOLDGROUPS | ODPF_EXPERTONLY;
diff --git a/Plugins/extraicons/usedIcons.cpp b/Plugins/extraicons/usedIcons.cpp
index 9726381..de58069 100644
--- a/Plugins/extraicons/usedIcons.cpp
+++ b/Plugins/extraicons/usedIcons.cpp
@@ -83,29 +83,28 @@ HANDLE AddIcon(const char *icolibName)
void RemoveIcon(const char *icolibName)
{
- for (vector<Icon>::iterator it = usedIcons.begin(); it != usedIcons.end(); it++)
+ for (unsigned int i = 0; i < usedIcons.size(); ++i)
{
- Icon *icon = &*it;
+ Icon *icon = &usedIcons[i];
if (icon->name != icolibName)
continue;
icon->refCount--;
-
break;
}
}
+static bool NotUsedIcon(const Icon &icon)
+{
+ return icon.refCount <= 0;
+}
+
void ResetIcons()
{
- for (vector<Icon>::iterator it = usedIcons.begin(); it != usedIcons.end(); it++)
- {
- Icon *icon = &*it;
+ usedIcons.erase(std::remove_if(usedIcons.begin(), usedIcons.end(), NotUsedIcon), usedIcons.end());
- if (icon->refCount <= 0)
- usedIcons.erase(it);
- else
- icon->hImage = NULL;
- }
+ for (unsigned int i = 0; i < usedIcons.size(); ++i)
+ usedIcons[i].hImage = NULL;
}