diff options
Diffstat (limited to 'protocols/Teams/src/teams_options.cpp')
-rw-r--r-- | protocols/Teams/src/teams_options.cpp | 19 |
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(); + } }; ///////////////////////////////////////////////////////////////////////////////// |