diff options
author | George Hazan <george.hazan@gmail.com> | 2025-04-16 17:12:32 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2025-04-16 17:12:32 +0300 |
commit | ff1711ee2ba946cf25becfbb34be4f6a018031c4 (patch) | |
tree | 73c9a987c2c40c7734f82ebf245430418e260085 /src | |
parent | c2beb37ec01e3e25b4fa46f7bdc66a362efe0bd0 (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.cpp | 20 |
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);
+ }
}
}
|