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
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
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
5d69bf06d2
LibGUI: Don't fill widgets with background color by defualt.
2019-03-10 13:16:36 +01:00
Andreas Kling
6836e21d1c
ProcessManager: Tidy up the memory stats and align everything nicely.
2019-03-10 12:34:44 +01:00
Andreas Kling
37388b311f
ProcessManager: Show some basic system memory stats below the process table.
...
This really improves the feeling of "system overview" :^)
2019-03-10 12:13:22 +01:00
Andreas Kling
0b32ab12f1
ProcessManager: Make the toolbar actions work again.
...
We can't grab at the ProcessTableModel directly anymore since we have a
sorting proxy model in the middle now.
2019-03-10 02:03:36 +01:00
Andreas Kling
46caa2663b
LibGUI: Use a separate data role for the table model sorting order.
...
This allows data to be displayed nicely while sorting happens based on some
underlying raw data. :^)
2019-03-09 14:24:34 +01:00
Andreas Kling
7d1142c7d9
Make it possible to sort a GTableModel by column+order.
...
This is accomplished by putting a GSortingProxyTableModel between the model
and the view. It's pretty simplistic but it works for this use case. :^)
2019-03-09 13:33:52 +01:00
Andreas Kling
0680fe2383
ProcessManager: Show the colonel process.
2019-03-09 11:29:32 +01:00
Andreas Kling
7df1121e1c
LibGUI: GTableModel::data() should take a GModelIndex instead of int,int.
2019-03-06 19:56:47 +01:00
Andreas Kling
b0c673265a
Applications: Map Alt+F4 to Quit in FileManager/ProcessManager/Terminal.
2019-03-03 02:52:22 +01:00
Andreas Kling
e1d0a3f226
LibGUI: Let GTableModel handle the selection instead of doing it virtually.
...
It's silly to force every subclass models to deal with selection.
2019-03-01 13:03:13 +01:00
Andreas Kling
bff5b71467
LibGUI: Add a GModelNotification class that views will receive.
...
I don't want to use GEvent here since these need to be synchronous
and mixing sync and async GEvents would be stupid.
2019-02-28 21:30:17 +01:00
Andreas Kling
322f49caec
ProcessManager: Use icons for the process priorities.
2019-02-28 21:04:26 +01:00
Andreas Kling
b132150799
LibGUI: Support bitmaps in GTableView cells.
...
Use this to add an icon for each process in the ProcessManager.
Right now they all use a generic gear icon, but I'd like to have
per-process icons, obviously. :^)
2019-02-28 20:16:10 +01:00
Andreas Kling
8eefdbdce8
LibGUI: Add horizontal scrollbar to GTableView.
...
Now we can scroll content in both directions if it won't fit in the view.
2019-02-28 17:58:53 +01:00
Andreas Kling
2f266ef649
ProcessManager: Don't show the colonel task. :^)
2019-02-28 16:49:02 +01:00
Andreas Kling
75fabef57b
LibGUI: Add GVariant class and use it for table model data.
2019-02-28 16:20:29 +01:00
Andreas Kling
c1f5f2694b
ProcessManager: Add process owner's username to table view.
2019-02-28 14:12:53 +01:00
Andreas Kling
62b4f39cd4
LibGUI: GTableView should clear the selection if clicking outside items.
2019-02-28 14:05:02 +01:00
Andreas Kling
82c22a7484
ProcessManager: Add "continue" action that sends SIGCONT.
2019-02-28 13:02:55 +01:00
Andreas Kling
c5a32d139a
ProcessManager: Add a "stop" action that sends SIGSTOP to a process.
2019-02-28 12:06:19 +01:00
Andreas Kling
8a0d77f576
ProcessManager: Bump the initial window size to "pretty big"
2019-02-28 11:32:50 +01:00
Andreas Kling
b4c20789fb
LibGUI: Allow specifying per-column text alignment.
2019-02-28 11:27:04 +01:00
Andreas Kling
ce7019f38c
ProcessManager: Add some more per-process columns.
2019-02-28 11:16:27 +01:00
Andreas Kling
dc9f8a9361
LibGUI: Take ProcessManager's process view and turn it into GTableView.
...
Make it sufficiently generic that it can be reused for any table data. :^)
2019-02-28 10:57:09 +01:00
Andreas Kling
b3ae1163ef
ProcessManager: Use a scrollbar-adjusted position for hit testing.
2019-02-28 10:27:29 +01:00
Andreas Kling
c49ceb5a1f
ProcessManager: Make the process table view scrollable while header stays.
2019-02-28 10:24:04 +01:00
Andreas Kling
6e571b66f1
ProcessManager: Move ProcessTableModel class to its own files.
2019-02-28 10:20:04 +01:00
Andreas Kling
a202ed88f6
ProcessManager: Show per-process CPU usage percentage.
2019-02-28 10:09:43 +01:00
Andreas Kling
166aadc4e1
ProcessManager: Start working on a graphical process manager.
...
I need a table view widget for this thing, so I'm also using this to
prototype a model/view thingy.
2019-02-28 01:43:50 +01:00