diff options
author | Alexander Lantsev <aunsane@gmail.com> | 2012-09-27 19:53:33 +0000 |
---|---|---|
committer | Alexander Lantsev <aunsane@gmail.com> | 2012-09-27 19:53:33 +0000 |
commit | 68d2b18623f74651c5fd5fbd34cf585653edc1c8 (patch) | |
tree | 17425555b0431525f5d0038a95d806b3705d84d8 /protocols/Skype/src | |
parent | c23145643c47428677da6a42f3185b94968fddf1 (diff) |
- added status changing
git-svn-id: http://svn.miranda-ng.org/main/trunk@1692 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Skype/src')
-rw-r--r-- | protocols/Skype/src/skype_proto.cpp | 24 | ||||
-rw-r--r-- | protocols/Skype/src/skype_subclassing.cpp | 4 | ||||
-rw-r--r-- | protocols/Skype/src/skype_subclassing.h | 4 |
3 files changed, 29 insertions, 3 deletions
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 +{ +}; + |