From 32cd08ae230797bf0287cda1d478265df3f9f61c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 17 Mar 2024 13:41:04 +0300 Subject: fixes #4284 (ICQ: support for changing our own first name, last name & about fields) --- protocols/ICQ-WIM/src/userinfo.cpp | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'protocols/ICQ-WIM/src/userinfo.cpp') 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 -- cgit v1.2.3