summaryrefslogtreecommitdiff
path: root/protocols/Teams/src/teams_options.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2025-04-13 12:28:57 +0300
committerGeorge Hazan <george.hazan@gmail.com>2025-04-13 12:28:57 +0300
commit51df18c4f81511f8527b4a4a9986dbb239f7675f (patch)
treeddb6f8086d3a5c19f8f93f762f9f7adb64d2f44c /protocols/Teams/src/teams_options.cpp
parentdbe8b87e9fac8ac993a49a6cde21a3e8fa7ce0a5 (diff)
fixes #4976 (Teams: отсутствует возможность вылогиниться)
Diffstat (limited to 'protocols/Teams/src/teams_options.cpp')
-rw-r--r--protocols/Teams/src/teams_options.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/protocols/Teams/src/teams_options.cpp b/protocols/Teams/src/teams_options.cpp
index 693af22fb1..4405939c47 100644
--- a/protocols/Teams/src/teams_options.cpp
+++ b/protocols/Teams/src/teams_options.cpp
@@ -21,6 +21,7 @@ class COptionsMainDlg : public CTeamsDlgBase
{
CCtrlEdit m_login, m_group;
CCtrlCheck m_autosync, m_usehostname, m_usebb;
+ CCtrlButton btnLogout;
public:
COptionsMainDlg(CTeamsProto *proto, int idDialog) :
@@ -29,16 +30,22 @@ public:
m_group(this, IDC_GROUP),
m_autosync(this, IDC_AUTOSYNC),
m_usehostname(this, IDC_USEHOST),
- m_usebb(this, IDC_BBCODES)
+ m_usebb(this, IDC_BBCODES),
+ btnLogout(this, IDC_LOGOUT)
{
CreateLink(m_group, proto->m_wstrCListGroup);
CreateLink(m_autosync, proto->m_bAutoHistorySync);
CreateLink(m_usehostname, proto->m_bUseHostnameAsPlace);
CreateLink(m_usebb, proto->m_bUseBBCodes);
+
+ btnLogout.OnClick = Callback(this, &COptionsMainDlg::onClick_Logout);
}
bool OnInitDialog() override
{
+ if (m_proto->getMStringA(DBKEY_RTOKEN).IsEmpty())
+ btnLogout.Disable();
+
m_login.SetTextA(ptrA(m_proto->getStringA(DBKEY_ID)));
m_group.SendMsg(EM_LIMITTEXT, 64, 0);
return true;
@@ -51,6 +58,16 @@ public:
Clist_GroupCreate(0, group);
return true;
}
+
+ void onClick_Logout(CCtrlButton *)
+ {
+ m_proto->delSetting(DBKEY_RTOKEN);
+
+ if (m_proto->IsOnline())
+ m_proto->SetStatus(ID_STATUS_OFFLINE);
+
+ btnLogout.Disable();
+ }
};
/////////////////////////////////////////////////////////////////////////////////