Psi

Stuck In Hell

|

I'm stuck in hell right now, the hell known as Windows XP, trying to make it usable to see if I can duplicate a platform specific bug in some of my code using Norman's Nightly Psi Build. Unfortunately it requires Visual C++'s debug runtime, so I'm installing the Visual Studio.NET beta Microsoft kindly mailed me back when I was subscribed to Dr. Dobb's Journal.

It's taking it's time to install too. I went out to take the trash and inhale some trash while this trash was installing. It said it was going to be twenty minutes when I did that, but after five minutes it now says 32 minutes. Twenty minutes was long, but shesh. That's some terrible estimation the installer has done.

At least one thing went right. Windows needed to be activated because the 30 days had past. It dialed some 1-800 number and I guess it got activated. It didn't take long at all.

I'm also noticing that Windows appears quicker than X. Even Firefox appears quicker. I'm left wondering why that's so along with why this popup window from Viewpoint just popped up. I don't recall Viewpoint.

Doing Things The Right Way™

|

There was a small patch submitted to add a background image to Psi's roster. In an effort to do things The Right Way™ I've spent the past couple of days making QListView display a background image using properties similiar to CSS.

This is a glimpse of what I have slapped together at the moment:

QListView With a CSS-like Background

Now I just need to kill the flicker with some optimizing and trickery, and clean up the code for this to be ready. I may also try to find a way to throw a background onto any widget.

Today's ChangeLog

This is mainly work under the hood. Patch 10 is hopefully a decent tradeoff in case MUC::Affiliation and MUC::Role ever get changed so as not to rely on being based on an int. Patch 9 is something that I'm proud about doing. It was a really good refactoring of a method. C2.com's MethodObject page (if it's up) helped by showing me the way.

patch-10: noticed that Role::index and Affiliation::index could return a negative

  • Created MUC::AffilMap and MUC::RoleMap
  • Changed GCUserView::Private::role_items into a map
  • Changed both AddMucOperation::name()s to use a map
  • Changed GCMainDlg::roleToString and affilToString to use a map
  • Changed AffilEditorListView::Private::affil_table into a map
  • Changed AffilEditorAddDlg::affil_table into a map

patch-9: refactored how the context menu items are added for the occupant's list

  • Created the class AddMucOperation
  • Made addMucOperation into AddMucOperation::createItem
  • Replaced calls to addMucOperation
  • Refactored each boolean variable into a AddMucOperation method

Today's ChangeLog

This is going to be something new I'm going to start. Posting the latest changes that I've mirrored to my public archive. So here it is:

patch-8: Enabled dragging in the affiliation editor and occupant list

  • Added setEnableDrag to each of the pertinent list view items
  • Created the dragObject methods in GCUserView and AffilEditorListView
  • Changed GCUserView::selectedJids so it constructs a Jid if the user is not prevy to them.

patch-7: forgot to add jiddrap.cpp and jiddrap.h

patch-6: Created JidDrag

  • Created jiddrag.h and jiddrag.cpp
  • Modified ContactView to use JidDrag instead of QTextDrag

patch-5: Documented muc_tasks.h

And I could use a script...

Sigh

|

In case you missed me, here's my todo for MUCing Psi Up™:

  • Bookmarks aka JEP-0048 support so Psi can autojoin groupchats with the fringe benefits of getting groupchats and bookmarks added to the roster. I've already completed the Task to get the job done, so now I only have the top and middle layers to code.
  • Make Psi's MUC DnD aware. Yes, you read that right. DnD as in Dugeons and Dragons. Psi's MUC will have have builtin in support for it including a nice dungeon mapper. Let the leveling begin!

    I couldn't resist. DnD is actually drag and drop. Basically enabling that through out Psi's groupchat windows and dialogs to make things super easy to get through that dungeon. ;-)

  • Oh yeah, IRC commands. Those I MUST do.
  • A bunch of minor tasks and final touches.

For the curious here's a screenshot showing the tip of the MUC iceburg:

Psi All MUCed UP

MUCed Up In a Mine Field

|

I thought I would do some quick testing on my working copy of Psi to figure out what needs to be done next for MUC. I fired up the affiliation editor, and as expected I get an error message due to my query for affiliations that are 'none'. The message box is essentially empty and I was wondering why since I handle error stanzas in the Task. Looking at the XML that I received mu-conference (am I correct that this is what j.org is using?) there error stanza was tucked into an <item> element. I then checked JEP-0045 to see where the error element was supposed to appear. Turns out mu-conf isn't working correctly—again.

I have to ask, must I support these "features" or go with the JEP (which needs some work, or to be phased out in favor of MUC+)?

Psi MUC Update

I just updated my Psi Arch archive. It's been updated with Psi-CVS from a day or two ago, along with my affiliation editor and other MUC features. There's still some rough edges due to the update from CVS, like the button placement in groupchats. The affiliation editor still isn't complete, and it's not MUC complete yet either. It's getting closer and might still be fun to play with.

For the curious:

Psi's Affiliation Editor

Psi Arch Archives

I've been maintaining my work on Psi's MUC support in a GNU Arch/Bazaar archive. I've finally retagged my former branch and made extensive changes to match Psi's new directory layout. My code is available to anyone who has the proper software, namely GNU Arch or Bazaar. My archive's info is:

  • Archive name: sneakin@semanticgap.com--psi
  • URL: http://www.semanticgap.com/arch/psi-sneakin
  • Branch: psi--sneakin--0.10
Syndicate content

Ad's by Google