summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM/src/userinfo.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-03-17 13:41:04 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-03-17 13:41:04 +0300
commit32cd08ae230797bf0287cda1d478265df3f9f61c (patch)
tree804d44bd2b3d841cb04ce6f3c6c72a1c5ade0f7b /protocols/ICQ-WIM/src/userinfo.cpp
parent31705a905d2fa6e81a3c8cc40c45e7c0366d6c49 (diff)
fixes #4284 (ICQ: support for changing our own first name, last name & about fields)
Diffstat (limited to 'protocols/ICQ-WIM/src/userinfo.cpp')
-rw-r--r--protocols/ICQ-WIM/src/userinfo.cpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/protocols/ICQ-WIM/src/userinfo.cpp b/protocols/ICQ-WIM/src/userinfo.cpp
index 2563925ff5..f780202fd2 100644
--- a/protocols/ICQ-WIM/src/userinfo.cpp
+++ b/protocols/ICQ-WIM/src/userinfo.cpp
@@ -24,10 +24,13 @@ struct IcqUserInfoDlg : public CUserInfoPageDlg
{
CIcqProto *ppro;
HANDLE hEvent = 0;
+ CCtrlEdit edtFirstName, edtLastName;
IcqUserInfoDlg(CIcqProto *_ppro) :
CUserInfoPageDlg(g_plugin, IDD_INFO_ICQ),
- ppro(_ppro)
+ ppro(_ppro),
+ edtLastName(this, IDC_LAST_NAME),
+ edtFirstName(this, IDC_FIRST_NAME)
{
}
@@ -37,6 +40,15 @@ struct IcqUserInfoDlg : public CUserInfoPageDlg
return true;
}
+ bool OnApply() override
+ {
+ if (edtFirstName.IsChanged())
+ ppro->PatchProfileInfo("firstName", ptrW(edtFirstName.GetText()));
+ if (edtLastName.IsChanged())
+ ppro->PatchProfileInfo("lastName", ptrW(edtLastName.GetText()));
+ return true;
+ }
+
void OnDestroy() override
{
UnhookEvent(hEvent);
@@ -59,6 +71,9 @@ struct IcqUserInfoDlg : public CUserInfoPageDlg
SetDlgItemTextW(m_hwnd, IDC_NICK, ppro->getMStringW(m_hContact, DB_KEY_ICQNICK));
SetDlgItemTextW(m_hwnd, IDC_PHONE, ppro->getMStringW(m_hContact, DB_KEY_PHONE));
+ edtLastName.SetText(ppro->getMStringW(m_hContact, "LastName"));
+ edtFirstName.SetText(ppro->getMStringW(m_hContact, "FirstName"));
+
DBVARIANT dbv = {};
if (!db_get(m_hContact, ppro->m_szModuleName, DB_KEY_LASTSEEN, &dbv)) {
SetDlgItemTextW(m_hwnd, IDC_LASTSEEN, time2text(&dbv));
@@ -77,21 +92,25 @@ struct IcqUserInfoDlg : public CUserInfoPageDlg
struct IcqAboutDlg : public CUserInfoPageDlg
{
CIcqProto *ppro;
+ CCtrlEdit edtAbout;
IcqAboutDlg(CIcqProto *_ppro) :
CUserInfoPageDlg(g_plugin, IDD_ABOUT),
- ppro(_ppro)
+ ppro(_ppro),
+ edtAbout(this, IDC_ABOUT)
{}
- bool IsEmpty() const override
+ bool OnRefresh() override
{
- return ppro->getMStringW(m_hContact, "About").IsEmpty();
+ edtAbout.SetText(ppro->getMStringW(m_hContact, "About"));
+ return false;
}
- bool OnRefresh() override
+ bool OnApply() override
{
- SetDlgItemTextW(m_hwnd, IDC_ABOUT, ppro->getMStringW(m_hContact, "About"));
- return false;
+ if (edtAbout.IsChanged())
+ ppro->PatchProfileInfo("about", ptrW(edtAbout.GetText()));
+ return true;
}
int Resizer(UTILRESIZECONTROL *urc) override