Marcus Eggenberger [Wed, 25 Jul 2007 17:55:00 +0000 (17:55 +0000)]
treemodels can now be cleared
Manuel Nickschas [Sun, 8 Jul 2007 14:36:08 +0000 (14:36 +0000)]
I am starting to clean up the mess that is Global right now, and to implement a clean infrastructure
for storing settings (session-wide and local). First step: Instead of putting synchronization stuff into
Global and doing special treatment for signals in Core, we have now a clear interface for handling
session-wide data in both Client and CoreSession:
Client::storeSessionData(key, data) [static]
Client::retrieveSessionData(key, defdata) [static]
CoreSession::storeSessionData(key, data)
CoreSession::retrieveSessionData(key, defdata)
CoreSession also cares for persistent storage using QSettings. It should be noted that the client-side store function
just sends a signal to the core, and the client-side data is actually updated upon receipt of the sync signal from core.
IOW, stuff is not stored immediately, and you should thus not rely on it being available right after your call to
storeSessionData(). If this is a bad idea, we might change this behavior at some point.
Note: The code has not yet been tested thoroughly, and it's only the first step anyway.
Manuel Nickschas [Fri, 6 Jul 2007 16:54:59 +0000 (16:54 +0000)]
Fixed comments.
Manuel Nickschas [Fri, 6 Jul 2007 16:48:34 +0000 (16:48 +0000)]
Added a function decodeString() to util.{h|cpp} that takes a QByteArray with raw text data and decodes
it using a specified text codec. Except the input data is utf8, in which case this function detects
utf8 and takes appropriate measures to get a correctly decoded QString regardless of the specified coded.
I'd like to use this function for decoding incoming server messages, but we need to change things quite
a bit in the Server to do this correctly. See my comment in server.cpp.
Manuel Nickschas [Thu, 28 Jun 2007 00:57:31 +0000 (00:57 +0000)]
Cleaning up the closet... or at least the code. Tried to reduce the number of #includes, removing
inter-file dependencies as far as possible. There is probably some work left especially in qtgui, though.
Also I removed some obsolete files and split up CoreSession and QtGui in their own files.
Manuel Nickschas [Wed, 27 Jun 2007 22:24:56 +0000 (22:24 +0000)]
Fixed a problem where cmake apparently didn't get all deps right and screwed up by linking qtgui. Removed previous
fugly workaround. Also got rid of the warnings in buffertreemodel.cpp, while I was at it.
Manuel Nickschas [Wed, 27 Jun 2007 21:48:19 +0000 (21:48 +0000)]
Still working on the authentification stuff. Technically, now even in the monolithic build the client connects
to the internal core (still using the possible shortcuts, of course). It should also be able to disconnect, although
not all is cleaned up yet in the process. After this is done, one will be able to disconnect the client from the internal
core and connect to a remote core, and vice versa.
This made a lot of changes to the init process necessary, so I have changed quite a bit of stuff around.
You should refrain from building core and client separately now, even though it probably compiles. It is not tested yet,
and the GUI stuff is still missing anyways.
Marcus Eggenberger [Wed, 27 Jun 2007 17:28:02 +0000 (17:28 +0000)]
minor fixes. now buffers can be removed via del/backspace from customviews
Manuel Nickschas [Mon, 25 Jun 2007 20:31:21 +0000 (20:31 +0000)]
Fix off-by-one bug in a line that was even more buggy until a few hours ago.
Manuel Nickschas [Mon, 25 Jun 2007 18:21:09 +0000 (18:21 +0000)]
Finished the fusion of the different main_* files, so now we have only one #ifdef-ridden main.cpp.
Thought it might be a good idea to enable gcc warnings (-Wall -Wextra -ansi), so I did. While fixing
most of the resulting warnings, I also found a couple of bugs. So this was a Good Thing[tm], obviously.
Don't even think of enabling -pedantic as well - this fails horribly somewhere in Qt.
Manuel Nickschas [Sun, 24 Jun 2007 14:24:44 +0000 (14:24 +0000)]
Some modifications to the build system, that allow us to only use one main.cpp in the future.
Of course, we will need a lot of #ifdefs there...
I could not find out how to specify per-target #defines in cmake, so I use different source files
named build_*.cpp that set a #define and #include main.cpp (actually, main_mono.cpp, which is to be renamed
in the next commit).
Paul Klumpp [Sun, 24 Jun 2007 13:23:52 +0000 (13:23 +0000)]
small easy buildscript, that should work for people who forget the cmake syntax.. lol.
Marcus Eggenberger [Fri, 22 Jun 2007 19:39:41 +0000 (19:39 +0000)]
some minor tweaks
Marcus Eggenberger [Fri, 22 Jun 2007 15:35:44 +0000 (15:35 +0000)]
fixed a bug preventing quasel from crashing on exit
Marcus Eggenberger [Fri, 22 Jun 2007 15:06:11 +0000 (15:06 +0000)]
Implemented Custom Views (configurable via drag and drop)
Manuel Nickschas [Wed, 20 Jun 2007 19:26:32 +0000 (19:26 +0000)]
Reorganizing of the Quassel architecture is almost done. Client and GUI have been split.
I will now consolidate the main files and start enabling building of standalone core and client again.
Marcus Eggenberger [Wed, 20 Jun 2007 13:50:33 +0000 (13:50 +0000)]
forgot to add 6 files... -.-
Marcus Eggenberger [Wed, 20 Jun 2007 13:49:30 +0000 (13:49 +0000)]
still continuing separation of gui and data and file reorganisation:
bufferviewwidget got split into:
- treemodel (a basic tree model for easy inheritance)
- buffertreemodel (fancy version of treemodel)
- bufferviewwidget (not much more left here then pure gui stuff)
bufferview got split into:
- bufferviewfilter
- bufferview
Manuel Nickschas [Wed, 20 Jun 2007 01:44:11 +0000 (01:44 +0000)]
Finished file reorganization (for now). Sources are now in src/, subdir names have changed,
and files from the former gui/ dir have been split up between the new qtgui/ and client/.
Most, if not all files should now be at their final location, while the real work (cleaning up
the code from the first phase of GUI reorganization, as well as doing the actual separation)
begins now.
Manuel Nickschas [Wed, 20 Jun 2007 01:24:38 +0000 (01:24 +0000)]
Continuing file reorganization...
Manuel Nickschas [Wed, 20 Jun 2007 01:21:00 +0000 (01:21 +0000)]
Starting reorganization of files in preparation of separation of client and GUI.
Manuel Nickschas [Wed, 20 Jun 2007 00:01:31 +0000 (00:01 +0000)]
Make selections in bufferviews (mostly) synchronous again.
Manuel Nickschas [Tue, 19 Jun 2007 23:42:47 +0000 (23:42 +0000)]
Two hours of bughunting ending between keyboard and chair. Or something like that. Fixed.
Manuel Nickschas [Tue, 19 Jun 2007 22:09:28 +0000 (22:09 +0000)]
Refactoring the GUI. Work in progress.
Marcus Eggenberger [Tue, 19 Jun 2007 19:27:05 +0000 (19:27 +0000)]
Fixed a Bug where an issued /join did not trigger the creation of a Item in the BufferViews
Manuel Nickschas [Tue, 19 Jun 2007 12:26:32 +0000 (12:26 +0000)]
Only expand network items in bufferviews.
Manuel Nickschas [Tue, 19 Jun 2007 10:00:42 +0000 (10:00 +0000)]
Make BufferView trees expanded by default.
Manuel Nickschas [Tue, 19 Jun 2007 09:37:08 +0000 (09:37 +0000)]
Setting status buffer active on connection (by creating a BufferId for it in Core
before we try to access the corresponding Buffer in GUI), fixing BR #40.
Manuel Nickschas [Tue, 19 Jun 2007 00:50:42 +0000 (00:50 +0000)]
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)
Marcus Eggenberger [Mon, 18 Jun 2007 19:47:01 +0000 (19:47 +0000)]
Minor Update:
- some minor fixes
- preparation for query merging and custom views
Marcus Eggenberger [Mon, 18 Jun 2007 15:09:21 +0000 (15:09 +0000)]
Changed the BufferView System to a MVC Design Pattern
Marcus Eggenberger [Mon, 18 Jun 2007 15:01:38 +0000 (15:01 +0000)]
I konw... stupid me... moved it to the wrong directory... -.-
Marcus Eggenberger [Mon, 18 Jun 2007 14:51:09 +0000 (14:51 +0000)]
rename of bufferview.ui according to new naming scheme
Manuel Nickschas [Mon, 11 Jun 2007 18:56:29 +0000 (18:56 +0000)]
Renamed NetworkView[Widget] to BufferView[Widget].
Marcus Eggenberger [Mon, 11 Jun 2007 14:09:25 +0000 (14:09 +0000)]
Implemented a basic notification system to show activity in the networkviews
Marcus Eggenberger [Wed, 6 Jun 2007 11:00:23 +0000 (11:00 +0000)]
Fixes to SqliteStorage:
- removed all transactions in favor of speed
- fixed some queries
Manuel Nickschas [Sun, 3 Jun 2007 14:21:01 +0000 (14:21 +0000)]
Fixed and integrated SqliteStorage as new storage backend. This retires the old Backlog class.
SqliteStorage still needs some love though, and it does not yet have transactions.
Now that we have transitioned to Storage, we can tackle multi-user support in Core.
Manuel Nickschas [Thu, 24 May 2007 12:45:30 +0000 (12:45 +0000)]
Added install rules (at least for *nix)
Marcus Eggenberger [Wed, 23 May 2007 14:21:12 +0000 (14:21 +0000)]
Implemented new SqliteStorage Backend
Manuel Nickschas [Mon, 21 May 2007 21:56:52 +0000 (21:56 +0000)]
Adding skeleton for SqliteStorage.
Manuel Nickschas [Mon, 21 May 2007 14:36:16 +0000 (14:36 +0000)]
Implement check for empty quit message, fixing BR #31.
Manuel Nickschas [Sat, 19 May 2007 02:01:04 +0000 (02:01 +0000)]
Fixed small bug in CTCP handling: userFromMask -> nickFromMask
Marcus Eggenberger [Fri, 18 May 2007 20:16:08 +0000 (20:16 +0000)]
added some more ctcp handlers
Manuel Nickschas [Fri, 18 May 2007 15:57:24 +0000 (15:57 +0000)]
Fixed rendering for CTCP ACTION, closing BR #27.
Marcus Eggenberger [Fri, 18 May 2007 15:33:14 +0000 (15:33 +0000)]
- Fixed Bug #22 (at least for CTCP)
Manuel Nickschas [Fri, 18 May 2007 15:14:30 +0000 (15:14 +0000)]
Added the baseclass for the upcoming storage backends.
Manuel Nickschas [Fri, 18 May 2007 10:08:14 +0000 (10:08 +0000)]
Fixed formatting code %O (which should switch off all format codes, but accidentally
also switched off default formatting...).
Manuel Nickschas [Fri, 18 May 2007 09:50:12 +0000 (09:50 +0000)]
Fixed a bug where a case-sensitive comparison with ownNick prevented connection to Freenode.
See also BR #25.
Marcus Eggenberger [Thu, 17 May 2007 22:09:10 +0000 (22:09 +0000)]
minor fixes and tweaks to networkviews
Marcus Eggenberger [Thu, 17 May 2007 16:44:32 +0000 (16:44 +0000)]
- small tweak to tabcompletion
- doubleclick on channel now joins the channel
Manuel Nickschas [Thu, 17 May 2007 16:08:41 +0000 (16:08 +0000)]
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.
Marcus Eggenberger [Thu, 17 May 2007 14:34:11 +0000 (14:34 +0000)]
Fixed Bug #20 (Handle Numeric Reply 433 ERR_NICKNAMEINUSE properly)
Manuel Nickschas [Thu, 17 May 2007 11:54:25 +0000 (11:54 +0000)]
One last test for the CIA bot:
Multiple lines
in the log message...
Manuel Nickschas [Thu, 17 May 2007 11:52:20 +0000 (11:52 +0000)]
Cleaning up ChangeLog :-)
Manuel Nickschas [Thu, 17 May 2007 11:48:18 +0000 (11:48 +0000)]
More CIA testing...
Manuel Nickschas [Thu, 17 May 2007 11:47:02 +0000 (11:47 +0000)]
Testing the CIA bot.
Manuel Nickschas [Wed, 16 May 2007 14:24:36 +0000 (14:24 +0000)]
Fixed small bug that prevented topic and own nick to be shown when joining a buffer.
Manuel Nickschas [Tue, 15 May 2007 17:31:38 +0000 (17:31 +0000)]
Testing changelog with mantis
Manuel Nickschas [Tue, 15 May 2007 15:24:40 +0000 (15:24 +0000)]
Fixed some bugs concerning BufferIds.
Manuel Nickschas [Mon, 14 May 2007 22:27:48 +0000 (22:27 +0000)]
Finishing the big merge.
We need Qt 4.3.0 (beta) now, since QByteArray::toHex() does not seem to exist in older versions.
Marcus Eggenberger [Mon, 14 May 2007 22:19:47 +0000 (22:19 +0000)]
fixed small bug in handleServerMsg()
Manuel Nickschas [Mon, 14 May 2007 21:48:56 +0000 (21:48 +0000)]
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.
Marcus Eggenberger [Mon, 14 May 2007 14:43:40 +0000 (14:43 +0000)]
- Bug #20 (RPL_NICKNAMEINUSER)
- Fixed Bug in Message Parsing
- Added Missing Destructor in ChatWidgetLine
- Added userHandlerList to Server (providesUserHandlers())
Marcus Eggenberger [Tue, 8 May 2007 19:47:23 +0000 (19:47 +0000)]
- moved tabcompleter in seperate file
- now the network list will be raised to the top when selected in the menu
Marcus Eggenberger [Tue, 8 May 2007 10:29:52 +0000 (10:29 +0000)]
added first and simple version of Tabcompletion (Nicks only atm)
Manuel Nickschas [Fri, 4 May 2007 15:08:18 +0000 (15:08 +0000)]
Merged changes from branch "sput" r56:61 back into trunk.
This contains a lot of new stuff in all parts of quassel. It also contains a serious
bug, which for some reason causes quassel to crash every few starts. Merging this only
because of public request.
So don't complain - I've warned you!
Manuel Nickschas [Mon, 12 Feb 2007 18:14:53 +0000 (18:14 +0000)]
Merged changes from branch "sput" r50:55 back into trunk.
This includes my work of the past few months, most notably a pretty complete rework
of the buffer management and much other GUI code, as well as our new ChatWidget which is
now functional enough to be used. Probably most of the GUI code now looks quite different.
There have also been many cleanups, the obsolete network/ directory is being removed,
and I have started to document some things.
Paul Klumpp [Fri, 29 Dec 2006 17:59:00 +0000 (17:59 +0000)]
activated()->triggered()
Paul Klumpp [Fri, 29 Dec 2006 17:58:27 +0000 (17:58 +0000)]
activated()->triggered()
Paul Klumpp [Fri, 29 Dec 2006 17:58:12 +0000 (17:58 +0000)]
activated()->triggered()
Marco Genise [Sun, 12 Nov 2006 19:17:11 +0000 (19:17 +0000)]
Added performlist support.
Manuel Nickschas [Sun, 5 Nov 2006 23:08:55 +0000 (23:08 +0000)]
More small tweaks to fix scrollbar behavior. This really sucks.
Manuel Nickschas [Sun, 5 Nov 2006 16:27:57 +0000 (16:27 +0000)]
Small fix in scrollbar behavior. Still not cool, but at least not as annoying anymore.
Also got rid of these stupid debug messages.
Manuel Nickschas [Sun, 5 Nov 2006 16:01:54 +0000 (16:01 +0000)]
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.
Manuel Nickschas [Sun, 29 Oct 2006 21:38:31 +0000 (21:38 +0000)]
Cleaned up the gui/ directory by moving all *.ui files in a subdirectory.
Manuel Nickschas [Sun, 29 Oct 2006 21:17:38 +0000 (21:17 +0000)]
OK, another update. This is just prior to redoing the MainWin completely.
I have already switched to a designer-generated .ui rather and thrown out the
hand-written stuff. Next couple of days will hopefully show the first few of Haui's
ideas functional.
In other news: backlog generation is implemented now. The GUI does not sync the backlog
yet, but coreside files are being generated and saved in $HOME/.quassel/backlog. I expect
the format not to change in the foreseeable future, so that at some point in the future,
you'll be able to scroll up your buffers and find everything you did starting from now ;-)
NOTE: Core/GUI mode has not been tested in a while. Though I don't think I have broken
stuff already, I might be wrong there. Run cmake with -DBUILD="mono" to build
the monolithic version, which should work quite fine.
Manuel Nickschas [Sat, 28 Oct 2006 21:27:46 +0000 (21:27 +0000)]
Time for another update. Most significantly, I implemented most user commands.
So rather than using /quote, you might now use standard IRC commands for most tasks.
Also, work has been done for further prettifiying the output.
Manuel Nickschas [Wed, 25 Oct 2006 17:13:48 +0000 (17:13 +0000)]
Fixed a bug that did not remove users from channel nick list.
Manuel Nickschas [Wed, 25 Oct 2006 15:50:19 +0000 (15:50 +0000)]
More good news:
* Switched channel widget to HTML, using <table> for a nice layout now.
* More server messages parsed, including JOIN, PART, QUIT, KICK, NICK.
* More tidbits.
Manuel Nickschas [Wed, 25 Oct 2006 01:14:22 +0000 (01:14 +0000)]
Lots of additions again. Working on implementing commands and prettifying the output.
Still work in progress, of course. At least we have a sorta working nick list now,
even though only joins are handled by now.
Oh, and timestamps and stuff.
Manuel Nickschas [Tue, 24 Oct 2006 11:29:19 +0000 (11:29 +0000)]
Fixed a bug that prevented our custom Message type to be used with QDataStream,
causing havoc when trying to use gui and core separately.
Apparently you have to separately register the stream operators with the QMetaObject
system.
Manuel Nickschas [Tue, 24 Oct 2006 10:15:10 +0000 (10:15 +0000)]
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.
Manuel Nickschas [Mon, 23 Oct 2006 16:00:32 +0000 (16:00 +0000)]
Don't exit Quassel when closing the serverlist. That was just for debugging purposes.
Manuel Nickschas [Mon, 23 Oct 2006 15:26:39 +0000 (15:26 +0000)]
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 :)
Manuel Nickschas [Sat, 21 Oct 2006 15:35:54 +0000 (15:35 +0000)]
More small changes, working on the dialogs right now.
Paul Klumpp [Sat, 21 Oct 2006 15:22:25 +0000 (15:22 +0000)]
expanding->preferred
Paul Klumpp [Sat, 21 Oct 2006 15:12:04 +0000 (15:12 +0000)]
more to clarify
Paul Klumpp [Sat, 21 Oct 2006 15:05:35 +0000 (15:05 +0000)]
new mainwindow.ui
Manuel Nickschas [Sat, 21 Oct 2006 01:12:37 +0000 (01:12 +0000)]
* Nicklist layout now way better.
Manuel Nickschas [Sat, 21 Oct 2006 00:53:51 +0000 (00:53 +0000)]
More minor changes while playing around. Enter /c now in the channel widget to connect to QuakeNet.
We really need network settings, me thinks.
Manuel Nickschas [Sat, 21 Oct 2006 00:27:11 +0000 (00:27 +0000)]
* Use Haui's new channelwidget. Yeah, it's still just a telnet client, but it looks prettier now.
* Save/Restore MainWin size and pos.
Paul Klumpp [Sat, 21 Oct 2006 00:12:04 +0000 (00:12 +0000)]
my notes for future reference .. or similar.
Paul Klumpp [Sat, 21 Oct 2006 00:08:12 +0000 (00:08 +0000)]
Paul Klumpp [Fri, 20 Oct 2006 23:49:52 +0000 (23:49 +0000)]
New nifty super dooper not yet so nice but real and true channel widget. To be continued.
Manuel Nickschas [Fri, 20 Oct 2006 23:47:37 +0000 (23:47 +0000)]
Some more filename changes. Should be it for now.
Manuel Nickschas [Fri, 20 Oct 2006 23:32:26 +0000 (23:32 +0000)]
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.
Marco Genise [Wed, 18 Oct 2006 17:18:20 +0000 (17:18 +0000)]
Changed the windows build method.
Manuel Nickschas [Wed, 18 Oct 2006 17:13:20 +0000 (17:13 +0000)]
Finished logical separation of core and GUI. Monolithic build should work as expected.
Separate builds non-functional yet.
Manuel Nickschas [Wed, 18 Oct 2006 14:47:55 +0000 (14:47 +0000)]
Big refactoring completed. Everything prepared for the separation of core and gui.
Building separate components does not work yet, but the monolithic build should be
able to go online again. Note that there are more significant changes in the framework
to expect.
Marco Genise [Wed, 18 Oct 2006 10:02:49 +0000 (10:02 +0000)]
Added build support on Windows.