Starting reorganization of files in preparation of separation of client and GUI.
Refactoring the GUI. Work in progress.
Big update this time - Core has been redesigned to be multi-user capable. At least partly. (BR #42) * Architecture changes mostly complete: - Core has been split in Core (static) and CoreSession (per-user objects) - Connection stuff has been moved out of CoreProxy into Core - Lots of cleanups, and we have finally real singletons! - Global is now (externally) a static class -- changes throughout the code * Monolithic Quassel works (or at least it seems to) * Standalone Core and GUI disabled for now: - While most of the new infrastructure is in place in Core, we still need GUI stuff for auth (BR #17) - Syncing with Core as well as getting session states not done yet Next steps will include the redesign of the GUI to make that cleaner as well (BR #41)
Added generic signals between Core and GUI. You can use these to avoid having to define custom signals for everything you need to send. This uses the usual mechanism, but instead of sending custom-named signals and perform a parameter conversion, we just emit the raw data and leave the processing to the user. Note that this might have a slight performance impact on the receiver's side if you connect the generic signal to several custom slots, because _all_ unhandled signals are sent to _all_ generic handlers (which then need to filter out whichever signal they need). Use as follows: - define signaltype in main/proxy_common.h - use slots CoreProxy::csGeneric(type, arg1, arg2, arg3) or GUIProcy::gsGeneric(type, arg1, arg2, arg3) - On the other side, the signal is emitted by the proxy, so you may connect your slot and then handle the sigtype as needed.
Merged changes from branch "sput" r62:66 back into trunk. This adds a rudimentarily working db-based backlog as well as a completely revamped message handling. It should also get rid of the nasty crash we had in rev 61.
After quite a while, we have another big SVN update now. Most of the GUI code has been reorganized, and we have a working buffer management now. Also, we switched the main window to the new layout, which is probably here to stay; of course it will be enhanced quite a bit in the future :) Backlogs will be created and displayed whenever the GUI reconnects to the core. We limit the shown lines to 100 to not use too much time for rendering. This will be configurable in the future. There is probably a lot more changes that happened over the past few days which I can't remember, so you'll have to just see for yourself.
More neato stuff. A preliminary TabWidget now allows us to display multiple buffers, and we already sorta use this feature. Implemented /say, /quote and /join. Made output prettier. However, this is all still pretty much work in progress and I guess there are still some Q_ASSERTs triggering where they shouldn't.
Another big update today. * Mostly finished dialogs for network settings, identities, network list. * Network settings are also already mostly honored by our TelnetDeluxe the core still is. This means that the connect button works, we will connect to the first server we defined for this network, and we can also autoconnect. We still don't use identities yet, i.e. the nick is still hardcoded. * Started implementing buffer management in the core. Cleaned up the framework, the core now creates server objects for all networks it connects to, and the signals we use to connect everything have a format that allows us to use network and buffer names. * Threw out a lot of the temporary dirty-hack-stuff we used for testing so far. Most of the code we have now is actually clean and there to stay, although of course enough is still to be added to it :)
Some more filename changes. Should be it for now.
Big, big, major commit this time: * Separation of GUI and Core finished, including synchronized global data in Global *global * Speaking of which, the Quassel class has been renamed to Global, way cooler! * TCP/IP between GUI and Core works, though the server port is still hardcoded to 4242 * The build system now handles any combination of "mono", "core" and "gui" for cmake's -DBUILD * A lot of fixes and stuff * More to come, but the basic framework should be stabilizing now.
Finished logical separation of core and GUI. Monolithic build should work as expected. Separate builds non-functional yet.