[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kopete-devel
Subject:    Re: [kopete-devel] Re: Current status of KOS/ICQ integration
From:       Matt Rogers <mattr () kde ! org>
Date:       2005-06-08 23:26:58
Message-ID: 200506081826.58603.mattr () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


On Wednesday 08 June 2005 10:24 am, Jan Ritzerfeld wrote:
> Am Mittwoch, 8. Juni 2005 02:30 schrieb Matt Rogers:
> > On Tuesday 07 June 2005 12:13 pm, Jan Ritzerfeld wrote:
> > > Hello Matt, hello Olivier.
> > >
> > > I've attached a patch (in protocols/oscar/) reflecting the current
> > > status of KOS into ICQ integration. Please tell me when I'm totally
> > > wrong with this ...
> > > [...]
> >
> > I don't understand exactly what you're trying to do with these patches.
> > Could you clarify a bit more?
>
> Originally I've only tried to fix the bug that auto away doesn't work for
> icq! :-D
> So I've implemented ICQAccount::setOnlineStatus because auto away is
> done by Kopete::Away::setAutoAway() which calls setOnlineStatus with the
> registered KOS for category Kopete::OnlineStatusManager::Idle. That's why
> in ICQ::Presence I've used the constructor for KOS with caption, categories
> and options arguments.
> When this was done, I've noticed that ICQAccount::actionMenu() can make use
> of Kopete::Account::actionMenu() that creates the account context menu from
> the registered KOS. But the status weren't sorted correctly, so I've
> changed in icq/icqpresence.h the order of Type to Offline, DoNotDisturb,
> Occupied, NotAvailable, Away, Online, FreeForChat. Then in
> icq/icqpresence.cpp I've fixed createStatusList to calculate correct
> weights for KOS.
> This triggered the bug in liboscar/client.cpp that prevents icq accounts
> from going anything than online on connect. Fixing this bug the next one
> arose, using global "Set Status"->"Online" will put the icq account to
> dnd/invisble instead of online: Kopete::Account::connect( const
> Kopete::OnlineStatus& initialStatus = OnlineStatus() )
> in kopeteaccount.h is called and so
> Kopete::PasswordedAccount::connect( const Kopete::OnlineStatus&
> initialStatus ) with an invalid initialStatus. Converting this in
> ICQAccount::connectWithPassword with ICQ::Presence::fromOnlineStatus to a
> presence and this to an OscarStatus with toOscarStatus will result in the
> OFFLINE OscarStatus (-1) with all flags set. A check for such KOS in
> ICQAccount::connectWithPassword and Presence::fromOnlineStatus, the new
> method PresenceTypeData::forOnlineStatusType which returns a suitable
> PresenceTypeData for the given KOS fixed that.
> Additionally I've added a invisble KOS that is hidden from
> Kopete::Account::actionMenu() to support global "Set Status"->"invisible".
>
> > Also, I suppose the patch looks ok, but I'd appreciate it if you wrap the
> > really long lines in icqpresence.cpp?
>
> Okay, which colomn do you prefer for the breaks?
>

Anything less than 90 columns is preferable. Make that change and then please 
commit.

Matt

[Attachment #5 (application/pgp-signature)]

_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic