Andreas Kling
24dfc5051a
IRCClient: Use Core::DateTime
2020-02-11 20:43:32 +01:00
Andreas Kling
d17e23bd27
LibCore: Remove leading C from filenames
2020-02-06 15:04:03 +01:00
Andreas Kling
2d39da5405
LibCore: Put all classes in the Core namespace and remove the leading C
...
I've been wanting to do this for a long time. It's time we start being
consistent about how this stuff works.
The new convention is:
- "LibFoo" is a userspace library that provides the "Foo" namespace.
That's it :^) This was pretty tedious to convert and I didn't even
start on LibGUI yet. But it's coming up next.
2020-02-02 15:15:30 +01:00
Andreas Kling
94ca55cefd
Meta: Add license header to source files
...
As suggested by Joshua, this commit adds the 2-clause BSD license as a
comment block to the top of every source file.
For the first pass, I've just added myself for simplicity. I encourage
everyone to add themselves as copyright holders of any file they've
added or modified in some significant way. If I've added myself in
error somewhere, feel free to replace it with the appropriate copyright
holder instead.
Going forward, all new source files should include a license header.
2020-01-18 09:45:54 +01:00
Sasan Hezarkhani
6db11e5bba
IRCClient: Sort the member list ignoring the character cases.
...
I compared a few clients and they do the same sort of sorting.
2019-12-03 12:50:06 +01:00
Andreas Kling
4ea229accd
LibCore: Convert CTCPServer to ObjectPtr
...
Also get rid of the custom CNotifier::create() in favor of construct().
2019-09-21 15:25:08 +02:00
Andreas Kling
4298ba25c3
LibCore: Convert CTCPSocket to ObjectPtr, add construct() helper
...
The C_OBJECT macro now also inserts a static construct(...) helper into
the class. Now we can make the constructor(s) private and instead call:
auto socket = CTCPSocket::construct(arguments);
construct() returns an ObjectPtr<T>, which we'll later switch to being
a NonnullRefPtr<T>, once everything else in in place for ref-counting.
2019-09-21 15:25:08 +02:00
Andreas Kling
d1bacb9885
LibCore: Convert CNotifier to ObjectPtr
2019-09-20 15:39:15 +02:00
MinusGix
ad75b61eca
IRCClient: Fix unneeded conversion to String
2019-09-13 09:22:30 +02:00
Andreas Kling
2216c7ecc6
IRCClient: Make the auto-join on connect feature actually do something
2019-09-04 17:37:11 +02:00
Andreas Kling
9cb4e5ac81
IRCClient: Don't auto-open new queries for NOTICE or CTCP messages
...
This seems to match what other IRC clients do, and it means we don't
get three separate "server" windows when connecting to Freenode. :^)
2019-09-03 21:47:43 +02:00
Andreas Kling
5c7ef5977d
IRCClient: Handle incoming CTCP requests VERSION and PING
...
CTCP requests are client-to-client messages that are sent as either
PRIVMSG (for requests) or NOTICE (for responses) and wrapped in ASCII
character 0x01 on both sides.
This patch implements responding to the very common VERSION and PING
requests. We always get a VERSION request from freenode when connecting
there, for instance. :^)
2019-09-03 21:18:28 +02:00
Andreas Kling
ecbf1b673a
IRCClient: Implement "/msg <nick> ..."
2019-07-13 12:02:31 +02:00
Andreas Kling
5e6c1c6912
IRCClient: Open query window immediately when created by the user.
...
When handling "/query nick", we now immediately switch to the new query.
2019-07-13 11:54:01 +02:00
Andreas Kling
9a7b638743
IRCClient: Process incoming NOTICE messages like PRIVMSG.
...
They should be handled slightly differently, but at least now we're doing
*something* withthem.
2019-07-13 11:04:41 +02:00
Andreas Kling
6382c14faf
IRCClient: Remove use of copy_ref().
2019-07-11 16:03:54 +02:00
Andreas Kling
752d297321
IRCClient: Fix build. Forgot to update a function signature.
2019-07-07 22:27:48 +02:00
Andreas Kling
ea9340aeca
IRCClient: Implement the "part from channel" action.
...
Also make sure the action is disabled while we're not in a window that
corresponds to an open channel. :^)
Fixes #277 .
2019-07-07 21:58:57 +02:00
Andreas Kling
39d1a9ae66
Meta: Tweak .clang-format to not wrap braces after enums.
2019-06-07 17:13:23 +02:00
Andreas Kling
fd604a7c68
Applications: Run clang-format on everything.
2019-06-07 11:48:03 +02:00
Christopher Dumas
c23882dde1
can now tile background and made sure the IRC choose server popup still works
2019-05-27 21:40:53 +02:00
Christopher Dumas
e3f81bce49
IRC client setttings, Terminal settings, more WM settings
2019-05-27 21:40:53 +02:00
Andreas Kling
58240fdb33
Do a pass of compiler warning fixes.
...
This is really making me question not using 64-bit integers more.
2019-04-23 13:00:53 +02:00
Andreas Kling
ab94a6be00
AK: Add String::copy(BufferType) helper.
...
This will create a String from any BufferType that has data() and size().
2019-04-20 14:13:40 +02:00
Andreas Kling
5eedb22834
Sprinkle use of AK::Vector in various places.
...
Some of these are less helpful than others. Avoiding a bunch of mallocs
in the event loop wakeup code is definitely nice.
2019-04-20 14:02:19 +02:00
Andreas Kling
33920df299
AK: Try to use StringViews more for substrings and splitting.
2019-04-16 02:39:16 +02:00
Andreas Kling
cfd6e6cc36
LibCore: Move GIODevice hierarchy from LibGUI to LibCore.
2019-04-10 20:22:23 +02:00
Andreas Kling
fc1d3074de
LibCore: Move LibGUI/GNotifier to LibCore/CNotifier.
2019-04-10 17:35:43 +02:00
Andreas Kling
6d5a54690e
LibGUI: Make GSocket connection asynchronous.
...
Now connect() will return immediately. Later on, when the socket is actually
connected, it will call GSocket::on_connected from the event loop. :^)
2019-04-08 04:56:11 +02:00
Andreas Kling
cc20eef7ef
IRCClient: Ask the user which IRC server to connect to on startup.
2019-04-02 20:40:45 +02:00
Andreas Kling
951377e93e
GTableView: Add ability to hide individual columns at view-level.
...
Use this in IRCClient to hide the "sender" column in the server message view
since everything in that view comes from the "Server" anyway.
2019-03-20 13:36:07 +01:00
Andreas Kling
67009cee8e
IRCClient: Add ability to change nickname.
2019-03-20 04:21:58 +01:00
Andreas Kling
f47945759b
LibGUI: Make GTableModel a retainable object.
...
It became clear that this class needs to support multiple owners.
2019-03-20 03:27:07 +01:00
Andreas Kling
c151b0370d
IRCClient: Fix broken handling of RPL_WHOISIDLE.
2019-03-19 02:28:34 +01:00
Andreas Kling
a6538feed1
LibGUI: Add GInputBox for getting a string from a modal dialog.
...
Use this to implement some of the toolbar actions in IRCClient. :^)
2019-03-19 01:41:00 +01:00
Andreas Kling
55aa819077
IRCClient: Colorize some channel messages (joins, parts, topics)
2019-03-18 20:56:45 +01:00
Andreas Kling
d7659ceebf
IRCClient: Add support for a bunch of numerics, mostly WHOIS related.
2019-03-18 15:36:32 +01:00
Andreas Kling
8e3d0a23d5
LibGUI: Add GTCPSocket and base class GSocket (inherits from GIODevice.)
...
And use these to do the line-by-line reading automagically instead of having
that logic in IRCClient. This will definitely come in handy.
2019-03-18 14:09:58 +01:00
Andreas Kling
f44ba6a4c6
IRCClient: Add handling of some basic messages and commands.
2019-03-16 12:21:42 +01:00
Andreas Kling
b4f787090c
IRCClient: Add a little "(n)" indicator to window list for unread messages.
2019-03-16 02:14:53 +01:00
Andreas Kling
1394677528
IRCClient: Refactor window creation responsibilities.
...
IRCChannel and IRCQuery objects now create their own windows with the
help of an aid_create_window callback provided by IRCAppWindow.
There's still a bit of murk but this is already an improvement.
2019-03-16 01:45:49 +01:00
Andreas Kling
fc7f700c20
IRCClient: Rename IRCClientWindowFoo => IRCWindowFoo.
2019-03-16 01:15:19 +01:00
Andreas Kling
3a3aa74b2e
IRCClient: Add a toolbar with some actions.
2019-03-15 23:24:40 +01:00
Andreas Kling
08c15be0ca
IRCClient: Add ability to send query messages.
...
You can't open a query yet, but if someone starts one with you, you can
respond at least.
2019-03-15 18:02:38 +01:00
Andreas Kling
1fc283ed7d
IRCClient+LibGUI: Add an input box so we can send messages to channels.
...
Implement this using a GTextEditor with a special single-line mode.
This new mode needs some polishing, but it's already very useful.
2019-03-15 17:37:13 +01:00
Andreas Kling
1089cd1378
IRCClient: Start using GStackWidget for the subwindows.
2019-03-15 16:12:51 +01:00
Andreas Kling
a23dddc56f
IRCClient: Use a model for the window list.
2019-03-15 14:01:04 +01:00
Andreas Kling
eba5fd3f46
IRCClient: Rename IRCSubWindow => IRCClientWindow.
2019-03-15 13:20:46 +01:00
Andreas Kling
f004db19d0
IRCClient: Put the unhandled server messages nicely into the server log.
2019-03-15 13:16:29 +01:00
Andreas Kling
850c7504a2
IRCClient: Hacking on IRCClient bringup.
2019-03-15 13:07:04 +01:00