summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2025-04-16 17:12:32 +0300
committerGeorge Hazan <george.hazan@gmail.com>2025-04-16 17:12:32 +0300
commitff1711ee2ba946cf25becfbb34be4f6a018031c4 (patch)
tree73c9a987c2c40c7734f82ebf245430418e260085 /src
parentc2beb37ec01e3e25b4fa46f7bdc66a362efe0bd0 (diff)
clist groups:
- no need to store group id twice; - group name's encoding switched to utf-8
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/clistgroups.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mir_app/src/clistgroups.cpp b/src/mir_app/src/clistgroups.cpp
index c064b9b828..b8b660feed 100644
--- a/src/mir_app/src/clistgroups.cpp
+++ b/src/mir_app/src/clistgroups.cpp
@@ -77,11 +77,11 @@ void CGroupInternal::save()
Clist_BroadcastAsync(INTM_GROUPSCHANGED, 0, LPARAM(this));
JSONNode grp;
- grp << INT_PARAM("id", groupId) << WCHAR_PARAM("name", groupName) << INT_PARAM("flags", flags);
+ grp << WCHAR_PARAM("name", groupName) << INT_PARAM("flags", flags);
char szSetting[40];
itoa(groupId, szSetting, 10);
- db_set_s(0, GROUPS_MODULE, szSetting, grp.write().c_str());
+ db_set_utf(0, GROUPS_MODULE, szSetting, grp.write().c_str());
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -562,13 +562,15 @@ MIR_APP_DLL(HMENU) Clist_GroupBuildMenu(int startId)
static int enumGroups(const char *szSetting, void *)
{
- ptrA szText(db_get_sa(0, GROUPS_MODULE, szSetting));
- if (szText) {
- JSONNode node(JSONNode::parse(szText));
- if (node) {
- CGroupInternal *p = new CGroupInternal(node["id"].as_int(), node["name"].as_mstring(), node["flags"].as_int());
- arByIds.insert(p);
- arByName.insert(p);
+ DBVARIANT dbv = {};
+ if (!db_get_s(0, GROUPS_MODULE, szSetting, &dbv, 0)) {
+ if (dbv.pszVal && (dbv.type == DBVT_ASCIIZ || dbv.type == DBVT_UTF8)) {
+ JSONNode node(JSONNode::parse(dbv.pszVal));
+ if (node) {
+ CGroupInternal *p = new CGroupInternal(atoi(szSetting), node["name"].as_mstring(), node["flags"].as_int());
+ arByIds.insert(p);
+ arByName.insert(p);
+ }
}
}