[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