From 68d2b18623f74651c5fd5fbd34cf585653edc1c8 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Thu, 27 Sep 2012 19:53:33 +0000 Subject: - added status changing git-svn-id: http://svn.miranda-ng.org/main/trunk@1692 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Skype/Skype.vcxproj.filters | 3 +++ protocols/Skype/src/skype_proto.cpp | 24 +++++++++++++++++++++++- protocols/Skype/src/skype_subclassing.cpp | 4 ++-- protocols/Skype/src/skype_subclassing.h | 4 ++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/protocols/Skype/Skype.vcxproj.filters b/protocols/Skype/Skype.vcxproj.filters index d4371a8cad..f830252540 100644 --- a/protocols/Skype/Skype.vcxproj.filters +++ b/protocols/Skype/Skype.vcxproj.filters @@ -59,4 +59,7 @@ {b14a0070-da9c-49e8-8a47-d93df5eed672} + + + \ No newline at end of file diff --git a/protocols/Skype/src/skype_proto.cpp b/protocols/Skype/src/skype_proto.cpp index 4c21d1ae95..9f9918aa60 100644 --- a/protocols/Skype/src/skype_proto.cpp +++ b/protocols/Skype/src/skype_proto.cpp @@ -109,6 +109,7 @@ int CSkypeProto::SetStatus(int new_status) //todo: set all status to offline this->account->Logout(true); this->account->BlockWhileLoggingOut(); + this->account->SetAvailability(CContact::OFFLINE); } else { @@ -125,7 +126,28 @@ int CSkypeProto::SetStatus(int new_status) } } - //todo: change skype status + CContact::AVAILABILITY availability = CContact::UNKNOWN; + switch(this->m_iStatus) + { + case ID_STATUS_ONLINE: + availability = CContact::ONLINE; + break; + + case ID_STATUS_AWAY: + availability = CContact::AWAY; + break; + + case ID_STATUS_DND: + availability = CContact::DO_NOT_DISTURB; + break; + + case ID_STATUS_INVISIBLE: + availability = CContact::INVISIBLE; + break; + } + + if(availability != CContact::UNKNOWN) + this->account->SetAvailability(availability); } this->SendBroadcast(ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)old_status, this->m_iStatus); diff --git a/protocols/Skype/src/skype_subclassing.cpp b/protocols/Skype/src/skype_subclassing.cpp index 115d6e044b..0de069a243 100644 --- a/protocols/Skype/src/skype_subclassing.cpp +++ b/protocols/Skype/src/skype_subclassing.cpp @@ -16,10 +16,10 @@ void CAccount::OnChange(int prop) { CAccount::STATUS loginStatus; this->GetPropStatus(loginStatus); - if (loginStatus == CAccount::STATUS::LOGGED_IN) + if (loginStatus == CAccount::LOGGED_IN) this->isLoggedOut = false; - if (loginStatus == CAccount::STATUS::LOGGED_OUT) + if (loginStatus == CAccount::LOGGED_OUT) { this->isLoggedOut = true; CAccount::LOGOUTREASON whyLogout; diff --git a/protocols/Skype/src/skype_subclassing.h b/protocols/Skype/src/skype_subclassing.h index 466b84809e..ffb971b828 100644 --- a/protocols/Skype/src/skype_subclassing.h +++ b/protocols/Skype/src/skype_subclassing.h @@ -25,3 +25,7 @@ public: void BlockWhileLoggingOut(); }; +class CContact : public Contact +{ +}; + -- cgit v1.2.3