Hello, Kopete doesnt set status message after start or after solid networking reconnect.
It is because, setting online status from kopeteapplication or kopeteaccountmanager doesnt contains status message (only empty string). This patch fix this. I try upload this patch file to reviewboard, but reviewboard show me error: No such revision 1100526 so I sending it here. -- Pali Rohár pali.ro...@gmail.com
Index: kopete/kopeteapplication.cpp =================================================================== --- kopete/kopeteapplication.cpp (revision 1100526) +++ kopete/kopeteapplication.cpp (working copy) @@ -221,17 +221,14 @@ // --noconnect not specified? Kopete::OnlineStatusManager::Category initStatus = Kopete::OnlineStatusManager::self()->initialStatus(); - Kopete::OnlineStatusManager::Category setStatus; + Kopete::OnlineStatusManager::Category setStatus = Kopete::OnlineStatusManager::Offline; if ( args->isSet( "connect" ) && initStatus != Kopete::OnlineStatusManager::Offline && ( Solid::Networking::status() == Solid::Networking::Unknown || Solid::Networking::status() == Solid::Networking::Connected ) ){ - Kopete::AccountManager::self()->setOnlineStatus( initStatus, QString(), Kopete::AccountManager::ConnectIfOffline ); setStatus = initStatus; - } else { - setStatus = Kopete::OnlineStatusManager::Offline; } QList <Kopete::Status::StatusItem *> statusList = Kopete::StatusManager::self()->getRootGroup()->childList(); @@ -248,9 +245,19 @@ } } - if ( found ) + if ( found ) { + + if ( setStatus != Kopete::OnlineStatusManager::Offline ) + Kopete::AccountManager::self()->setOnlineStatus(initStatus, Kopete::StatusMessage(title, message), Kopete::AccountManager::ConnectIfOffline); Kopete::StatusManager::self()->setGlobalStatus(setStatus, Kopete::StatusMessage(title, message)); + } else { + + if ( setStatus != Kopete::OnlineStatusManager::Offline ) + Kopete::AccountManager::self()->setOnlineStatus(initStatus, QString(), Kopete::AccountManager::ConnectIfOffline); + + } + kDebug(14000)<< "initial status set in config: " << initStatus; QStringList connectArgs = args->getOptionList( "autoconnect" ); Index: libkopete/kopeteaccountmanager.cpp =================================================================== --- libkopete/kopeteaccountmanager.cpp (revision 1100526) +++ libkopete/kopeteaccountmanager.cpp (working copy) @@ -107,7 +107,7 @@ void AccountManager::setOnlineStatus( uint category, const Kopete::StatusMessage &statusMessage, uint flags ) { - kDebug() << "category: " << category; + kDebug() << "category: " << category << "status title: " << statusMessage.title() << "status message: " << statusMessage.message(); OnlineStatusManager::Categories categories = (OnlineStatusManager::Categories)category; const bool onlyChangeConnectedAccounts = isAnyAccountConnected(); @@ -394,8 +394,6 @@ if ( Solid::Networking::status() == Solid::Networking::Unknown || Solid::Networking::status() == Solid::Networking::Connected ){ - Kopete::AccountManager::self()->setOnlineStatus( initStatus, QString(), Kopete::AccountManager::ConnectIfOffline ); - QList <Kopete::Status::StatusItem *> statusList = Kopete::StatusManager::self()->getRootGroup()->childList(); QString message, title; bool found = false; @@ -410,6 +408,8 @@ } } + Kopete::AccountManager::self()->setOnlineStatus(initStatus, Kopete::StatusMessage(title, message), Kopete::AccountManager::ConnectIfOffline); + if ( found ) Kopete::StatusManager::self()->setGlobalStatus(initStatus, Kopete::StatusMessage(title, message)); } Index: protocols/skype/skypeaccount.cpp =================================================================== --- protocols/skype/skypeaccount.cpp (revision 1100526) +++ protocols/skype/skypeaccount.cpp (working copy) @@ -29,6 +29,7 @@ #include <qstring.h> #include <kopetemetacontact.h> #include <kopeteonlinestatus.h> +#include <kopetestatusmanager.h> #include <kopetecontactlist.h> #include <kopetecontact.h> #include <kopetegroup.h> @@ -205,7 +206,7 @@ } void SkypeAccount::setOnlineStatus(const Kopete::OnlineStatus &status, const Kopete::StatusMessage &reason, const OnlineStatusOptions& options) { - kDebug(SKYPE_DEBUG_GLOBAL); + kDebug(SKYPE_DEBUG_GLOBAL) << "status message:" << reason.message(); Q_UNUSED(options); if (status == d->protocol->Online){ d->skype.setOnline();//Go online @@ -247,7 +248,7 @@ void SkypeAccount::disconnect() { kDebug(SKYPE_DEBUG_GLOBAL); - setOnlineStatus(d->protocol->Offline, Kopete::StatusMessage()); + setOnlineStatus(d->protocol->Offline, Kopete::StatusManager::self()->globalStatusMessage()); } SkypeContact *SkypeAccount::contact(const QString &id) { @@ -262,9 +263,9 @@ if ((Status != d->protocol->Online) && (Status != d->protocol->Away) && (Status != d->protocol->NotAvailable) && (Status != d->protocol->DoNotDisturb) && (Status != d->protocol->SkypeMe))//some strange online status, taje a default one - setOnlineStatus(d->protocol->Online, Kopete::StatusMessage()); + setOnlineStatus(d->protocol->Online, Kopete::StatusManager::self()->globalStatusMessage()); else - setOnlineStatus(Status, Kopete::StatusMessage());//just change the status + setOnlineStatus(Status, Kopete::StatusManager::self()->globalStatusMessage());//just change the status } Index: protocols/skype/libskype/skype.cpp =================================================================== --- protocols/skype/libskype/skype.cpp (revision 1100526) +++ protocols/skype/libskype/skype.cpp (working copy) @@ -154,7 +154,7 @@ void Skype::setUserProfileRichMoodText(const QString &message) { kDebug(SKYPE_DEBUG_GLOBAL); - queueSkypeMessage(QString("SET PROFILE RICH_MOOD_TEXT %1").arg(message),true); + queueSkypeMessage(QString("SET PROFILE RICH_MOOD_TEXT %1").arg(message), false); } void Skype::setOffline() {
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ kopete-devel mailing list kopete-devel@kde.org https://mail.kde.org/mailman/listinfo/kopete-devel