Andreas Kling
19fa70c821
LibGUI: Add a GItemView class.
...
This is a GAbstractView subclass that implements a icon-based view onto
a GModel. It still need a bunch of work, but it's in basic usable shape.
2019-03-23 03:54:45 +01:00
Andreas Kling
994cf10b3e
LibGUI: Rename GTableModel => GModel.
2019-03-23 01:42:49 +01:00
Andreas Kling
9d4b4c2689
FileManager: Add a default icon for image files.
2019-03-22 12:54:27 +01:00
Andreas Kling
5ca62f356b
FileManager: Open PNG files with QuickShow when activated.
2019-03-22 12:43:29 +01:00
Andreas Kling
7c0a185970
Use the PNG loader for all images, and get rid of the .rgb files.
2019-03-22 00:21:03 +01:00
Andreas Kling
ed2303e2d8
TextEditor: The delete key should work even when there's no selection.
2019-03-20 23:11:00 +01:00
Andreas Kling
be4533717a
FileManager: Add ability to create new directories.
2019-03-20 22:40:06 +01:00
Andreas Kling
1030e6b848
FileManager: Add a "Location:" label.
2019-03-20 22:01:02 +01:00
Andreas Kling
f0915641c5
TextEditor: Add "delete" action.
2019-03-20 18:16:04 +01:00
Andreas Kling
daa1dcb5e8
FileManager: Use a GTextEditor for the location bar + tweak icons.
2019-03-20 18:12:56 +01: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
d17a91f185
Move WindowServer into Servers.
2019-03-20 04:34:14 +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
1c423f7691
Terminal: Disable the semitransparent Terminal effect for now.
...
It's cool and everything but the lag is annoying me while I'm trying to
get shit done. I'll definitely reenable it once it's been optimized.
2019-03-20 02:10:44 +01:00
Andreas Kling
d0559c0e27
IRCClient: Scroll windows to bottom when new messages arrive.
...
This will need some tweaking to feel truly good, but this is already
better than just staying at the top while messages come in.
2019-03-19 03:09:51 +01:00
Andreas Kling
a0411f61f8
IRCClient: Make the IRCWindow input box look symmetrical.
2019-03-19 02:45:01 +01:00
Andreas Kling
31bc42c530
IRCClient: Ignore empty strings from the toolbar action input boxes.
2019-03-19 02:30:16 +01:00
Andreas Kling
c151b0370d
IRCClient: Fix broken handling of RPL_WHOISIDLE.
2019-03-19 02:28:34 +01:00
Andreas Kling
f88e550998
LibGUI: More work on GInputBox.
...
- If the GInputBox has a parent and the parent is a GWindow, center the
input box window within the parent window. This looks quite nice.
- Stop processing events in a nested event loop immediately after it's
been asked to quit.
- Fix GWidget::parent_widget() behavior for non-widget parents.
2019-03-19 02:22:49 +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
43304d2adf
WindowServer: Add special treatment for modal windows.
...
While a WSClientConnection has a modal window showing, non-modal windows
belonging to that client are not sent any events.
2019-03-19 00:52:39 +01:00
Andreas Kling
57ff293a51
LibGUI: Implement nested event loops to support dialog boxes.
...
This patch adds a simple GMessageBox that can run in a nested event loop.
Here's how you use it:
GMessageBox box("Message text here", "Message window title");
int result = box.exec();
The next step is to make the WindowServer respect the modality flag of
these windows and prevent interaction with other windows in the same
process until the modal window has been closed.
2019-03-19 00:01:02 +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
9ad076178a
GIODevice: Add a read_all() that returns a ByteBuffer with all we can read.
...
Use this to implement file opening in TextEditor.
2019-03-18 14:38:30 +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
d466f2634d
LibGUI: Add GTableModel::Role::ForegroundColor.
...
This makes it possible to specify the text color for each table cell.
Use this to make the IRCClient show unread window list items in red.
2019-03-18 04:54:07 +01:00
Andreas Kling
ce7017e1ec
LibGUI: Add GFile and base class GIODevice.
...
Working with the LibC API's is tedious, so let's add some comfy C++ API's.
2019-03-17 15:54:43 +01:00
Andreas Kling
4e451c1e92
Add client-side double buffering of window backing stores.
...
This prevents flicker and looks rather good. The main downside is that
resizing gets even more sluggish. That's the price we pay for now.
2019-03-17 04:23:54 +01:00
Andreas Kling
5b0cbf547d
Base: Some work on various icons.
2019-03-17 00:33:49 +01:00
Andreas Kling
78039ef057
TextEditor: Add actions for undo and redo. Not hooked up yet.
2019-03-16 23:16:11 +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
5c2d405e1f
IRCClient: Add menus.
2019-03-16 01:10:48 +01:00
Andreas Kling
2b6cf37d20
IRCClient: Add some more toolbar actions. Starting to look nice.
2019-03-16 00:21:11 +01:00
Andreas Kling
3a3aa74b2e
IRCClient: Add a toolbar with some actions.
2019-03-15 23:24:40 +01:00
Andreas Kling
b54ab06595
GTableView: Add a way to turn off alternating row colors.
2019-03-15 21:41:27 +01:00
Andreas Kling
491aa112ab
IRClient: Add a member list to channel views.
2019-03-15 18:25:51 +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
c1f2f5a153
LibGUI: Add a mode where GTableModel automatically activates on selection.
2019-03-15 16:25:30 +01:00
Andreas Kling
1089cd1378
IRCClient: Start using GStackWidget for the subwindows.
2019-03-15 16:12:51 +01:00
Andreas Kling
ab92252ee6
IRCClient: Hide all the table view headers.
2019-03-15 14:57:35 +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