Hi,

I'm currently coding an Irssi gui using QT4, I've spent a bunch of
days in the previous three months to take the time to learn how irssi
works, do a first attempt which failed due to an implementation which
didn't pay attention to thread sync ( how dumb I was :D ), then a
second one which is pretty successfully usable for now.

I knew from the beginning that theses two implementations would be
messy and won't have any  wonderful gui design. It was just in order
to get used to irssi development, and experiment things. But now it's
time to sit down and think about features I should include, where to
put external interfaces for plugins, how I should design classes
according to these choices, and so on.

The gui is built on top on the common-ui layer, like the old abandoned
Gtk gui, and MacIrssi, meaning perl support is still here with his
scripts ( sure, the ones requiring UI.pm like nicklist.pl doesn't work
)

What is currently working in the existing code is not really important
to list, since I plan do reorganize / rewrite everything, but rapidly
: chatting like in irssi, including queries, multiple servers ...
nicklist, completion, colors and themes,

So here come the main points that I would like to discuss about :

1) I've chose to use a QDockWidget to show windows, see here :
http://8bitpeoples.free.fr/stuff/xirssi.png . It brings some nice
features : tiled windows ( like you can find in tiled wm like
ratpoison, meaning all the available space is used ), detachable,
stackable using tabs. The last two aren't shown on the screenshot.

So it mixes x-chat tabs and Mirc MDI advantages.

2) What part of the applications would be nice to have as plugins ?
I thought having windows rendering plugins would be nice, for example
to have a simple dialog to chat with Nickserv instead of /msg'ing it.

3) Autotools, build process
I'm not an autotools expert, I barely included in the original
configure.am some glue to compile my QT code which lives in src/fe-qt/
, but this isn't really clean. So, If you got hints on how doing this
in a clean way, tell me :)

4) GUI
For this one, it's a tedious task, users have different tastes, and I
really want the gui the be configurable as irssi is. This mean I need
to collect some range of tastes and see how to create classes to allow
configuration to reflect each of them.  Next, I would like to keep it
keyboard driven, using the same keybinding irssi has.
A little note, on the screenshot seen at 1), the box where you enter
text is present on every windows, I plan to replace that with just one
one at the bottom.

5) Any ideas ?
Feel free to suggest any idea.

To conclude, and see what is currently done :

The SVN repository : svn://svn.litchis.fr/jh/xirssi
The Trac ( almost unused atm ) : https://dev.litchis.fr/jh/
( remember, the sources are in src/fe-qt, fe-gui is the first attempt )

You might discover bugs using the existing implementation, but do not
spend time on reporting it / investigating it, a complete rewrite is
incoming :)

Well I'm waiting for your comments, remarks, ... =)

PS : To assure that I would not stop developing in two month by being
to lazy, I've locked myself by incorporating this project as a part of
my studies :)

-- 
Jean-Hadrien Chabran

Reply via email to