[arch-commits] Commit in kdenetwork/trunk (PKGBUILD fix-yahoo-protocol.patch)
Andrea Scarpino
andrea at archlinux.org
Sat Apr 10 15:55:16 UTC 2010
Date: Saturday, April 10, 2010 @ 11:55:15
Author: andrea
Revision: 77061
upgpkg: kdenetwork 4.4.2-2
fix yahoo protocol in kopete (FS#18624)
Added:
kdenetwork/trunk/fix-yahoo-protocol.patch
Modified:
kdenetwork/trunk/PKGBUILD
--------------------------+
PKGBUILD | 12 +
fix-yahoo-protocol.patch | 330 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 338 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-04-10 14:51:38 UTC (rev 77060)
+++ PKGBUILD 2010-04-10 15:55:15 UTC (rev 77061)
@@ -10,7 +10,7 @@
'kdenetwork-krdc'
'kdenetwork-krfb')
pkgver=4.4.2
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
@@ -19,11 +19,15 @@
'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
'ppp' 'libv4l' 'libidn' 'rdesktop' 'qimageblitz' 'libxss' 'libxdamage'
'libgadu' 'telepathy-qt4')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
-md5sums=('079fe0c9b7d7c5b52e673b5f4bc4f301')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-yahoo-protocol.patch')
+md5sums=('079fe0c9b7d7c5b52e673b5f4bc4f301'
+ 'aef9c40e3b93f36b1c611f0bb5429e50')
build() {
- cd ${srcdir}
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -Np1 -i ${srcdir}/fix-yahoo-protocol.patch || return 1
+ cd ${srcdir}
mkdir build
cd build
cmake ../${pkgbase}-${pkgver} \
Added: fix-yahoo-protocol.patch
===================================================================
--- fix-yahoo-protocol.patch (rev 0)
+++ fix-yahoo-protocol.patch 2010-04-10 15:55:15 UTC (rev 77061)
@@ -0,0 +1,330 @@
+Index: kdenetwork/kopete/protocols/yahoo/yahoocontact.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahoocontact.h (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahoocontact.h (revision 1110828)
+@@ -56,8 +56,8 @@
+
+ void setOnlineStatus(const Kopete::OnlineStatus &status);
+ void setYahooStatus( const Kopete::OnlineStatus& );
+- void setStealthed( bool );
+- bool stealthed();
++ void updateStealthed();
++ bool stealthed() const;
+
+
+ /** The group name getter and setter methods**/
+@@ -121,7 +121,6 @@
+ YahooChatSession *m_manager;
+ YahooWebcamDialog* m_webcamDialog;
+ YahooAccount* m_account;
+- bool m_stealthed;
+ bool m_receivingWebcam;
+ bool m_sessionActive;
+
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp (revision 1110828)
+@@ -34,9 +34,6 @@
+
+ }
+
+-QStringList loginstealthedbuddies;
+-QStringList loginunstealthedbuddies;
+-
+ bool ListTask::take( Transfer* transfer )
+ {
+ if ( !forMe( transfer ) )
+@@ -85,47 +82,30 @@
+ case 301:
+ if( p.second == "319"){
+ emit gotBuddy( buddy, QString(), group );
+- /**
+- * Note: michaelacole
+- * Since you can log in from other places and remove or add Perm Offline status
+- * We have to reset both conditions at login
+- * Yahoo sends this data at this time,
+- * so better to compile list of both now then notify kopete client.
+- */
+- loginunstealthedbuddies.append( buddy );
+ }
+ break;
+ case 317:
+ if( p.second == "2"){
+- kDebug(YAHOO_RAW_DEBUG) << "Stealthed setting on" << buddy ;
+- /** Note: michaelacole
+- * Since you can log in from other places and remove or add Perm Offline status
+- * We have to reset both conditions at login
+- * Yahoo sends this data at this time,
+- * so better to compile list of both now then notify kopete client.
+- */
+- loginstealthedbuddies.append( buddy );
+- loginunstealthedbuddies.removeAll( buddy );
++ kDebug(YAHOO_RAW_DEBUG) << "Stealthed setting on" << buddy ;
++ emit stealthStatusChanged( buddy, Yahoo::StealthActive );
+ };
+ break;
+- /**
+- * Note: michaelacole
+- * Other buddy codes are here for add to list and blacklist
+- * I will need to capute more codes for addition here.
+- * Blacklist is done on the server at Yahoo whereas
+- * Kopete has its own plugin for blacklisting.
+- */
++ /**
++ * Note: michaelacole
++ * Other buddy codes are here for add to list and blacklist
++ * I will need to capute more codes for addition here.
++ * Blacklist is done on the server at Yahoo whereas
++ * Kopete has its own plugin for blacklisting.
++ */
+ }
+ }
+- /**
+- * Note: michaelacole
+- * Since you can log in from other places and remove or add Perm Offline status
+- * We have to reset both conditions at login
+- * Yahoo sends this data at this time,
+- * so better to compile list of both now then notify kopete client.
+- */
+- client()->notifyUnstealthedBuddies( loginunstealthedbuddies );
+- client()->notifyStealthedBuddies( loginstealthedbuddies );
++ /**
++ * Note: michaelacole
++ * Since you can log in from other places and remove or add Perm Offline status
++ * We have to reset both conditions at login
++ * Yahoo sends this data at this time,
++ * so better to compile list of both now then notify kopete client.
++ */
+ }
+
+
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp (revision 1110828)
+@@ -76,8 +76,7 @@
+ int error;
+ QString errorString;
+ QString errorInformation;
+- QStringList stealthedBuddies;
+- QStringList unstealthedBuddies;
++ QSet<QString> stealthedBuddies;
+ // tasks
+ bool tasksInitialized;
+ LoginTask * loginTask;
+@@ -133,14 +132,13 @@
+
+ QObject::connect( d->loginTask, SIGNAL( haveSessionID( uint ) ), SLOT( lt_gotSessionID( uint ) ) );
+ QObject::connect( d->loginTask, SIGNAL( buddyListReady() ), SLOT( processPictureQueue() ) );
+- QObject::connect( d->loginTask, SIGNAL( buddyListReady() ), SLOT( processStealthQueue() ) );
+ QObject::connect( d->loginTask, SIGNAL( loginResponse( int, const QString& ) ),
+ SLOT( slotLoginResponse( int, const QString& ) ) );
+ QObject::connect( d->loginTask, SIGNAL( haveCookies() ), SLOT( slotGotCookies() ) );
+ QObject::connect( d->listTask, SIGNAL( gotBuddy(const QString &, const QString &, const QString &) ),
+ SIGNAL( gotBuddy(const QString &, const QString &, const QString &) ) );
+ QObject::connect( d->listTask, SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ),
+- SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
++ SLOT( notifyStealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
+ }
+
+ Client::~Client()
+@@ -182,9 +180,11 @@
+ emit connected();
+ kDebug(YAHOO_RAW_DEBUG) << " starting login task ... ";
+
++ // Clear stealth settings
++ d->stealthedBuddies.clear();
++
+ d->loginTask->setStateOnConnect( (d->statusOnConnect == Yahoo::StatusInvisible) ? Yahoo::StatusInvisible : Yahoo::StatusAvailable );
+ d->loginTask->go();
+- processStealthQueue();
+ d->active = true;
+ }
+
+@@ -615,29 +615,6 @@
+ spt->go( true );
+ }
+
+-// **** Stealth Handling **** michaelacole
+-void Client::processStealthQueue()
+-{
+- if( d->buddyListReady ){
+- while (!d->unstealthedBuddies.isEmpty())
+- {
+- QString it;
+- it = d->unstealthedBuddies.takeFirst();
+- kDebug(YAHOO_RAW_DEBUG) << "unstealthed setting set on" << it;
+- stealthContact( it, Yahoo::StealthOffline , Yahoo::StealthNotActive );
+- }
+-
+- while (!d->stealthedBuddies.isEmpty())
+- {
+- QString it;
+- it = d->stealthedBuddies.takeFirst();
+- kDebug(YAHOO_RAW_DEBUG) << "stealthed setting set on" << it ;
+- stealthContact( it, Yahoo::StealthPermOffline , Yahoo::StealthActive );
+- }
+- }
+-}
+-
+-
+ // ***** Webcam handling *****
+
+ void Client::requestWebcam( const QString &userId )
+@@ -767,14 +744,22 @@
+ emit error( level );
+ }
+
+-void Client::notifyStealthedBuddies( const QStringList &buddies)
++Yahoo::StealthStatus Client::stealthStatus( const QString &userId ) const
+ {
+- d->stealthedBuddies = buddies;
++ if ( d->stealthedBuddies.contains( userId ) )
++ return Yahoo::StealthActive;
++ else
++ return Yahoo::StealthNotActive;
+ }
+
+-void Client::notifyUnstealthedBuddies( const QStringList &buddies)
++void Client::notifyStealthStatusChanged( const QString &userId, Yahoo::StealthStatus state )
+ {
+- d->unstealthedBuddies = buddies;
++ if ( state == Yahoo::StealthActive )
++ d->stealthedBuddies.insert( userId );
++ else
++ d->stealthedBuddies.remove( userId );
++
++ emit stealthStatusChanged( userId, state );
+ }
+
+ QString Client::userId()
+@@ -902,7 +887,7 @@
+ QObject::connect( d->statusTask, SIGNAL( statusChanged(QString,int,const QString,int,int,int) ),
+ SIGNAL( statusChanged(QString,int,const QString,int,int,int) ) );
+ QObject::connect( d->statusTask, SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ),
+- SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
++ SLOT( notifyStealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
+ QObject::connect( d->statusTask, SIGNAL( loginResponse( int, const QString& ) ),
+ SLOT( slotLoginResponse( int, const QString& ) ) );
+ QObject::connect( d->statusTask, SIGNAL( authorizationRejected( const QString&, const QString& ) ),
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h (revision 1110828)
+@@ -40,7 +40,7 @@
+
+ signals:
+ void gotBuddy(const QString&, const QString&, const QString&);
+-
++ void stealthStatusChanged( const QString&, Yahoo::StealthStatus );
+ };
+
+ #endif
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h (revision 1110828)
+@@ -189,6 +189,12 @@
+ void stealthContact( QString const &userId, Yahoo::StealthMode mode, Yahoo::StealthStatus state );
+
+ /**
++ * Get the stealth status of a buddy
++ * @param userId the yahoo ID of the buddy
++ */
++ Yahoo::StealthStatus stealthStatus( const QString &userId ) const;
++
++ /**
+ * Request the buddy's picture
+ * @param userId the yahoo ID of the buddy
+ */
+@@ -456,12 +462,6 @@
+ */
+ void notifyError( const QString &info, const QString &errorString, LogLevel level );
+
+- /**
+- * Steathed information from login..
+- */
+- void notifyStealthedBuddies( const QStringList &buddies);
+- void notifyUnstealthedBuddies( const QStringList &buddies);
+-
+ signals:
+ /** CONNECTION EVENTS */
+ /**
+@@ -723,10 +723,10 @@
+ */
+ void processPictureQueue();
+
+- /**
+- * Update all Stealth info after login
++ /**
++ * Process steathed change.
+ */
+- void processStealthQueue();
++ void notifyStealthStatusChanged( const QString &, Yahoo::StealthStatus );
+
+ private:
+ void distribute( Transfer *transfer );
+Index: kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp (revision 1110828)
+@@ -74,7 +74,6 @@
+ m_manager = 0L;
+ m_account = account;
+ m_YABEntry = 0L;
+- m_stealthed = false;
+ m_receivingWebcam = false;
+ m_sessionActive = false;
+
+@@ -109,7 +108,8 @@
+
+ void YahooContact::setOnlineStatus(const Kopete::OnlineStatus &status)
+ {
+- if( m_stealthed && status.internalStatus() <= 999) // Not Stealted -> Stealthed
++ bool isStealthed = stealthed();
++ if( isStealthed && status.internalStatus() <= 999) // Not Stealted -> Stealthed
+ {
+ Contact::setOnlineStatus(
+ Kopete::OnlineStatus(status.status() ,
+@@ -119,7 +119,7 @@
+ status.overlayIcons() + QStringList("yahoo_stealthed") ,
+ i18n("%1|Stealthed", status.description() ) ) );
+ }
+- else if( !m_stealthed && status.internalStatus() > 999 )// Stealthed -> Not Stealthed
++ else if( !isStealthed && status.internalStatus() > 999 )// Stealthed -> Not Stealthed
+ Contact::setOnlineStatus( static_cast< YahooProtocol *>( protocol() )->statusFromYahoo( status.internalStatus() - 1000 ) );
+ else
+ Contact::setOnlineStatus( status );
+@@ -128,15 +128,14 @@
+ setStatusMessage( Kopete::StatusMessage() );
+ }
+
+-void YahooContact::setStealthed( bool stealthed )
++void YahooContact::updateStealthed()
+ {
+- m_stealthed = stealthed;
+ setOnlineStatus( onlineStatus() );
+ }
+
+-bool YahooContact::stealthed()
++bool YahooContact::stealthed() const
+ {
+- return m_stealthed;
++ return (m_account->yahooSession()->stealthStatus( m_userId ) == Yahoo::StealthActive );
+ }
+
+ void YahooContact::serialize(QMap<QString, QString> &serializedData, QMap<QString, QString> &addressBookData)
+Index: kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 1110828)
+@@ -978,7 +978,7 @@
+ kDebug(YAHOO_GEN_DEBUG) << "contact " << who << " doesn't exist.";
+ return;
+ }
+- kc->setStealthed( state == Yahoo::StealthActive );
++ kc->updateStealthed();
+ }
+
+ QString YahooAccount::prepareIncomingMessage( const QString &messageText )
More information about the arch-commits
mailing list