[ Home | Screenshots | Download | History ]
(I've scrapped the 3-tier junk from 0.61. It was just not the correct direction
for this project, and tended to overly complicate things. In this release, the
sources are divided up into modules, some of which reside in the Infusion Kernel,
some of which reside in dynamically-loadable modules, etc. This will be a very
powerful API once I get it hashed out a bit more...)
Yet Another Re-Architecture. This one will be the last, I promise.
Added support for driver modularization. This means that Infusion can
connect to multiple services simultaneously! POP3, SMTP, Citadel/UX,
and KAB are the first drivers I've (mostly) implemented.
Extreme reworking and refining of the user interface is finally bringing
the client up to Usability Par. We're almost to the point where I think an
Outlook user could potentially sit down and use it (if it weren't for all of the
missing features and empty menu hooks, that is).
Added the Infusion Account Wizard to help users make sense out of
this new configuration and kernel nastiness.
(Another re-architecture bringing Infusion into more of a 3-tier approach. This
has been completely scrapped, as there was too much overhead involved in
doing plain things.)
Improved DCOP communications layer in infusiond (The Infusion Daemon).
Improved user interface.
- Can now obtain folder index and message list
- Can deliver messages via dcop
- Can load Sticky Notes via dcop
- Rewrote DCOP layer in a more KDE-standard
way (but the whole object schema for
infusiond still needs work...)
Removed KOrganizer code. Am working on
incorporating its KParts object... (Not
Significantly improved operating speed.
- Concentrated on making the WndMain::View
menu more functional.
- User Interface now saves the position and
visibility of every item in WndMain,
hopefully allowing users to customize
Infusion to meet their needs a little
Cleaned up the code somewhat (still needs plenty 'o work...)
Added more extensive cache management subsystem, to help Infusion become MUCH more responsive to general navigation. It isn't perfect yet, and it may eat up gobs of memory, but I hope that it eventually proves to make Infusion work better.
Tried to make infusiond DCOP interface compatible with as broad a range of 2.x KDE systems as possible. This precluded the use of the "long unsigned int" type (at least, until I figger out what the KDCOP construct for it is... ;)
Working on creating a rudimentary Contacts list. This is much harder than it sounds! Zounds! :)
- Many elements are cached, greatly
improving refreshes and other annoying
hangs in previous versions.
Fixed massive memory leaks in the previous release. Slapped mine own hand for writing such sloppy code.
(Note that this requires an upgrade of libCxClient to 0.10-RELEASE)
Fixed location and slight appearance enhancement of splash screen. Whoopee!
Bugfix - Leaky Infusion Daemon. Yuck!
Note: This release is very unstable, for various
reasons. It (hopefully) will not be indicitive of the final release, but is
on par with most Microsoft products. (Kidding, of course!)
Added calendaring widgets, courtesy KOrganizer Project.
Changed libCxClient API to allow for multiple concurrent connections.
Added the "Infusion Daemon", a connection-pool manager which will
eventually place a much bigger role than it does now.
||Bugfixes, API Changes
libCxClient has been split off from the Infusion source
tree. It will still be distributed with binary copies of
Infusion, but you will need to compile and install it
prior to building your own copy of Infusion.
Infusion now remembers many things about its state when
More to come! :)
Semi-working task list
Fleshed out the interface a lot. This should help
you get more of an idea of where I'm going with this
Created some bare support for Enterprise Management of
Infusion clients. More information will follow on this
I had many problems with core dumping in the development
process for this release, which set me back about a week
or so. I tracked the problems down to some strange things
that I was doing in libCxClient. D'oh! :)
- Window geometry (position, size)
- Last active view (Inbox? Tasks?)
- Status bar/Folder list/Message Pane settings
Project is now called 'infusion'.
Slight frontend adjustments
Added "New User" wizard - Signs user up on Citadel
server (currently hard-wired to 'bbs.shadowcom.net')
Applied CORRECT autoconf/automake settings to software
from another KDE2 program. It isn't perfect, but it
does actually build a usable binary (on both FreeBSD
Added the ability to retrieve room directories. Will
list files in the Messages list. (Sorry, but you can't
download anything yet ;)
||Major frontend changes
Added icons to lists (make it more 'comfortable' for users).
Worked on objuserlist - Need to make it more robust!
Backend: Added support for retrieving user listing (CxUsList())
Created a more "Microsoft Outlook" feel.
Added a "Notes" view, which resembles a pile of sticky notes.
Users will have to create a personal "My Notes" room....
Added the ability to store user passwords locally, BUT NO
ATTEMPT IS MADE TO ENCRYPT THE PASSWORD AT ALL! I will work
in some sort of Base64 encoding, as per IG's advice, but it's
currently NOT there! If you use this feature, make sure that
the machine you are on is SECURE, and that you set the perms
on ~/.CxClient.rc to be SECURE (0600)!
Building the framework for the contact list (writing a
vCard parser/contact list manager...) Don't expect THIS
to work for a while... ;)
Created MessagePane object, which is a prettier way of
displaying the inline message-reader.
Fixed many bugs.
(This is the first in a series of many re-architectures)|
Rearranged code to eliminate the obtuse module loading
architecture. It Has Been Decided that it's not
necessary, and really complicates things more than they
need to be. Things now are based on a shared library
Eliminated alternate interfaces. Code can be made available
to authors who wish to write another Citadel client using
libCxClient.so.. The Only interface available now is KDE2.
Implemented Express Message chatting
Fixed bug in Composer (inverted options in YesNo)
Fixed bug in Reader (hang on message load - QT problem!!)
||Some minor reorganization.
[core] Slightly changed the way that CxClient builds. Now,
after building, users will find a libCxClient.so in
the build directory. This can be moved to /path/to/lib,
and the Developer can build applications around it,
without using my loader and modularization mechanisms!
[core] Changed tool.room.Goto() function. Passing it a NULL
room name, with a operation parameter of 1, will cause
it to goto the next room w/ unread messages. More
operations will be added at a later date.
[CLASSIC] Added (G)oto support, for all of the
citadaelians out there ;)
[core] Implemented message posting backend. Had to correct a
couple of misinterpretations from session specs.
[KDE2] THE MESSAGE COMPOSER WORKS!!! :)
[KDE2] Fixed crash problem if message list is clicked,
but not clicked on a message.
[KDE2] Fixed sort order to sort by date by default
[KDE2] Changed message reader class to QTextBrowser. Works
much better than KHTMLView.
[KDE2] Added "Refresh Messages" button to message reader
[KDE2] Set cursor to busy when working.
Fixed automatic memory leak in ui/gtk/callbacks.c:_mesg()
Wrote MAJOR portions of ui/kde. Almost fully functional
as a Citadel interface :)
Major goal- Removal of c/s code from UI layer.
Added backend functions for Express Messaging
Added backend functions for MESG
Added backend functions for authentication (now
Moved GOTO commands into backend.
More code cleanup
Removed the "-O2" flag from the production
UIgtk.so build-- This wreaked much havoc on Linux
systems for some odd reason....
Began implementing the ability for UI modules to
manually instruct CxClient to connect to the server,
bypassing "normal" control calls.
Added more detailed comment documentation to
Completed backend message-handling functions,
rewrote modules to access via tool.mesg.*().
Reorganized more header files... This is
becoming routine for me.. d'oh! (These sort
of changes shouldn't affect any modules, just
the "core" portion of the client).
Message-reading functionality has been fixed!
Don't ask.... >:D
Rewrote some message-handling stuff to improve
the speed of the client (doesn't improve it
THAT much, so I'll just blame GTK ;)
- Heavily organized the source files.
- Finished most of the "behind-the-scenes"
tools, the core CxClient chassis can handle
all Citadel communications functions required
for a rather basic client. There's still
lots of additional work to be done, though!
- Applied BASIC autoconf rules to the program.
Still need some work on portability,
- Completed a rudimentary set of UIL and NTL
Unadulterated c/s protocol, Barebones
sample of what a module looks like.
The Ever-Classic Original Citadel Client
Text-mode Communications Tool (think
Basic X-Windows client, cool 'nuff for
all GNOME lusers.
My preferrable interface! (I will most
likely maintain this module, at least...
Doesn't connect to a server. Doesn't
do anything but spit stuff out, which
you can test your UI with....
The classic way to connect to a
- I've planned a couple of more modules, but
may not implement due to time constraints
(anyone who's willing to is welcome to
Connect to the server using unix pipes.
- Some things need to be done:
I've got the framework in place for someone
to implement, say, a Win32 or OS/2 port.
Anyone who's interested can coordinate with
me what's involved in doing such (basically,
create a ldr_[your-os].c file which handles
the dynamic loading of the modules, and
you're all set...)
- Some things don't quite work right:
Most of the UI modules are a little...
sparse. My apologies... I've been
concentrating on making the backend as robust
(and flexible, _AND_ platform-independent...)
as possible. Anyone who wishes to take over
development of a module is welcome to do so.
Initial coding, wrote the modular interfaces
necessary to support a client of the type
that I envision. Laid out the basic
structure of the client.
Infusion is Copyright © 2000-2001, Flaming Sword Productions. Please contact Brian Ledbetter