summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocols/Skype/Skype.vcxproj.filters3
-rw-r--r--protocols/Skype/src/skype_proto.cpp24
-rw-r--r--protocols/Skype/src/skype_subclassing.cpp4
-rw-r--r--protocols/Skype/src/skype_subclassing.h4
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 @@
<UniqueIdentifier>{b14a0070-da9c-49e8-8a47-d93df5eed672}</UniqueIdentifier>
</Filter>
</ItemGroup>
+ <ItemGroup>
+ <None Include="res\Main.ico" />
+ </ItemGroup>
</Project> \ 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
+{
+};
+