Andreas Kling
8faeead753
ProcessManager: Hook the sort order for the file systems JSON model
...
..and install a GSortingProxyModel on the view. This allows you to sort
the filesystems by used space etc *numerically*. :^)
2019-08-12 11:56:30 +02:00
Andreas Kling
b07a315736
ProcessManager: Add "File systems" tab with info on mounted filesystems
...
This was rather nice and easy to add with the new GJsonArrayModel! :^)
2019-08-11 10:11:21 +02:00
Andreas Kling
aaccf6ee4e
ProcessManager: Use a GJsonArrayModel for the process memory maps
2019-08-10 16:08:51 +02:00
Andreas Kling
afd25679bc
GJsonArrayModel: Support fields that aren't tied to a single JSON value
...
Change the custom data massaging callback to take a const JsonObject&.
This will allow binding together data from multiple fields into one
output in the model. :^)
2019-08-10 15:06:29 +02:00
Andreas Kling
2eead3dfc0
ProcessManager: Use a GJsonArrayModel for the process file desciptors
2019-08-10 11:07:55 +02:00
Andreas Kling
078ce97c41
GJsonArrayModel: Add an optional "massage_for_display" fieldspec hook
...
This allows to you install a custom callback that can do anything with
Role::Display data before it's returned by GJsonArrayModel::data().
2019-08-10 11:06:29 +02:00
Andreas Kling
0f0a528323
ProcessManager: Remove SocketModel and NetworkAdapterModel
...
These are trivially replaced by GJsonArrayModels :^)
2019-08-10 10:36:07 +02:00
Andreas Kling
2c947a2c97
ProcessManager: Enable automatic column sizing for all table views
...
Start making use of the neat new mode in GTableView.
2019-08-09 19:32:09 +02:00
Sergey Bugaev
84a54c7cf7
ProcFS: Make a new nifty /proc/net directory
...
And move /proc/netadapters and /proc/net_tcp there. Now they're
/proc/net/adapters and /proc/net/tcp respectively, with more to come ^)
2019-08-09 13:15:59 +02:00
Andreas Kling
d6bce37756
ProcessManager: Add a "Network" tab with live adapter and socket stats
...
This fetches info from /proc/netadapters and /proc/net_tcp, updating
every second. Very cool. :^)
2019-08-08 20:43:30 +02:00
Andreas Kling
eb3c19773e
ProcessManager: Tweak memory stats widget layout to fit more text
...
After a while, the kmalloc/kfree counts got too wide for the label.
2019-08-08 19:50:33 +02:00
Andreas Kling
f511421aaa
Kernel+ProcessManager: Add some more info to /proc/PID/fds
...
- "seekable": whether the fd is seekable or sequential.
- "class": which kernel C++ class implements this File.
- "offset": the current implicit POSIX API file offset.
2019-08-03 08:42:40 +02:00
Andreas Kling
8a703c0076
ProcessManager: Add a new per-proces "open files" view showing open FDs
...
This uses the data from /proc/PID/fds with ease now that it's JSON. :^)
2019-08-03 08:26:45 +02:00
Andreas Kling
e8b3a539b4
ProcessManager: Fix timer leak in ProcessStacksWidget
...
CObjects should really be reference-counted instead of this error-prone
(but convenient) model.
Found by PVS-Studio.
2019-08-01 11:12:35 +02:00
Andreas Kling
5ded77df39
Kernel+ProcessManager: Let processes have an icon and show it in the table.
...
Processes can now have an icon assigned, which is essentially a 16x16 RGBA32
bitmap exposed as a shared buffer ID.
You set the icon ID by calling set_process_icon(int) and the icon ID will be
exposed through /proc/all.
To make this work, I added a mechanism for making shared buffers globally
accessible. For safety reasons, each app seals the icon buffer before making
it global.
Right now the first call to GWindow::set_icon() is what determines the
process icon. We'll probably change this in the future. :^)
2019-07-29 07:26:01 +02:00
Andreas Kling
cf57d64481
ProcessManager: Add a "Memory map" view to show a process's VM layout.
...
Fetch all the data from /proc/PID/vm for the selected process and show it
in a nice GTableView. :^)
2019-07-28 12:15:24 +02:00
Andreas Kling
841b2e5d13
WindowServer+LibGUI: Pass window icons as shared buffers rather than paths.
...
Now that we support more than 2 clients per shared buffer, we can use them
for window icons. I didn't do that previously since it would have made the
Taskbar process unable to access the icons.
This opens up some nice possibilities for programmatically generated icons.
2019-07-28 10:18:49 +02:00
Andreas Kling
34ccc7b4a7
ProcessManager: Oops, the process-specific view should not be global.
...
It should only be visible when we have the process table open.
2019-07-27 11:11:49 +02:00
Andreas Kling
9b7e1eb287
ProcessManager: Add a process-specific tab view below the process table.
...
To start out, add a "Stacks" view where we see what the selected process is
currently doing (via /proc/PID/stack) :^)
2019-07-27 09:39:43 +02:00
Andreas Kling
c452528952
ProcessManager: Add ProcessTableView::on_process_selected() callback.
...
This will be useful for doing something in response to the user selecting
a different process.
2019-07-27 09:37:26 +02:00
Andreas Kling
185ba4dc3f
ProcessManager: Move the memory stats widget under "Graphs" instead.
...
Making space for some new thingy under the process table view.
2019-07-27 08:43:32 +02:00
Andreas Kling
cd3463d2e3
ProcessManager: Rename "widget" to "process_table_container".
2019-07-27 08:42:15 +02:00
Andreas Kling
93489fbc4c
Convert HashMap<Key, OwnPtr<T>> to HashMap<Key, NonnullOwnPtr<T>>.
...
In every case I found, we never wanted to support null entry values.
With NonnullOwnPtr, we can encode that at the type level. :^)
2019-07-24 08:42:55 +02:00
Andreas Kling
72a3f69df7
LibGUI: Get rid of GWindow::should_exit_event_loop_on_close().
...
This behavior and API was extremely counter-intuitive since our default
behavior was for applications to never exit after you close all of their
windows.
Now that we exit the event loop by default when the very last GWindow is
deleted, we don't have to worry about this.
2019-07-23 18:20:00 +02:00
Andreas Kling
aa2224a2f0
GWidget: Add set_preferred_size(width, height) overload.
...
It was annoying to always write set_preferred_size({ width, height }). :^)
2019-07-20 22:39:24 +02:00
Andreas Kling
1c0669f010
LibDraw: Introduce (formerly known as SharedGraphics.)
...
Instead of LibGUI and WindowServer building their own copies of the drawing
and graphics code, let's it in a separate LibDraw library.
This avoids building the code twice, and will encourage better separation
of concerns. :^)
2019-07-18 10:18:16 +02:00
Robin Burchell
a9d1a86e6e
CProcessStatisticsReader: Be consistent about terminology from the kernel down
2019-07-18 07:23:26 +02:00
Andreas Kling
a35dc10f54
ProcessManager: Remove use of copy_ref().
2019-07-11 16:04:17 +02:00
Andreas Kling
245ae479eb
ProcessManager: Use CProcessStatisticsReader to get process data.
...
It was silly to duplicate this functionality in so many places. Now everyone
uses CProcessStatisticsReader to parse /proc/all :^)
2019-07-10 15:27:52 +02:00
Andreas Kling
27f699ef0c
AK: Rename the common integer typedefs to make it obvious what they are.
...
These types can be picked up by including <AK/Types.h>:
* u8, u16, u32, u64 (unsigned)
* i8, i16, i32, i64 (signed)
2019-07-03 21:20:13 +02:00
Andreas Kling
b79112e6d6
AK: Add String::number() for creating a String from a number.
...
Instead of manually doing String::format("%d"/"%u") everywhere, let's have
a String API for this. It's just a wrapper around format() for now, but it
could be made more efficient in the future.
2019-07-03 14:56:27 +02:00
Andreas Kling
aaedc24f15
Kernel+ProcessManager: Convert /proc/memstat to JSON.
2019-07-01 18:43:01 +02:00
VAN BOSSUYT Nicolas
802d4dcb6b
Meta: Removed all gitignore in the source tree only keeping the root one
2019-06-30 10:41:26 +02:00
Andreas Kling
315716d193
GUI: Use Win2K-like "warm gray" color instead of the older colder gray.
...
Someone suggested this a long time ago and I never got around to it.
So here we go, here's the warm gray! I have to admit I like it better. :^)
2019-06-30 09:23:16 +02:00
Andreas Kling
9962cb7291
ProcessManager: Add process-specific context menus to the main table view.
2019-06-30 08:15:55 +02:00
Andreas Kling
2bd8118843
Kernel: Change the format of /proc/all to JSON.
...
Update ProcessManager, top and WSCPUMonitor to handle the new format.
Since the kernel is not allowed to use floating-point math, we now compile
the JSON classes in AK without JsonValue::Type::Double support.
To accomodate large unsigned ints, I added a JsonValue::Type::UnsignedInt.
2019-06-29 09:04:45 +02:00
Lawrence Manning
f0a6b42066
Move common Application build steps into their own Makefile.common
...
Further consolidation is of course possible, eg the Games/ programs
follow the same rules more or less.
2019-06-25 21:35:50 +02:00
Andreas Kling
90b1354688
AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.
2019-06-21 18:37:47 +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
0ed89440f1
ProcessManager+top: Rename "linear" size to "virtual" size.
...
I originally called it "linear" because that's how the Intel manual names
virtual addresses in many cases. I'm ready to accept that most people know
this as "virtual" so let's just call it that.
2019-06-07 12:44:29 +02:00
Andreas Kling
fd604a7c68
Applications: Run clang-format on everything.
2019-06-07 11:48:03 +02:00
Robin Burchell
0dc9af5f7e
Add clang-format file
...
Also run it across the whole tree to get everything using the One True Style.
We don't yet run this in an automated fashion as it's a little slow, but
there is a snippet to do so in makeall.sh.
2019-05-28 17:31:20 +02:00
Andreas Kling
b311257098
Applications: Let's put spaces in app names
...
"FileManager" => "File Manager"
"FontEditor" => "Font Editor"
"ProcessManager" => "Process Manager"
"TextEditor" => "Text Editor"
2019-05-27 13:52:28 +02:00
Andreas Kling
2fa5e2b66b
ProcessManager: Keep /proc/all open to reduce CPU impact of ProcessManager.
2019-05-14 17:12:35 +02:00
Andreas Kling
852d648912
Fix "make clean" not deleting app binaries.
2019-05-13 14:56:18 +02:00
Andreas Kling
4b32aa71d2
ProcessManager: Tweak appearance (spacing, margins..)
2019-05-10 22:59:39 +02:00
Andreas Kling
1598a0a5cb
ProcessManager: Draw the graphs as lines.
...
This looks pretty neat. Also it exercises the diagonal line drawing code
so we get 2-for-1. :^)
2019-05-07 17:11:48 +02:00
Andreas Kling
922391e772
ProcessManager: Tweak default column widths.
2019-05-07 16:07:07 +02:00
Andreas Kling
3d61c8ec09
ProcessManager: Use the same margins for both CPU and memory graph.
2019-05-06 03:37:22 +02:00
Andreas Kling
25bb7a59ac
ProcessManager: Add CPU/memory usage graphs in a separate tab.
...
Finally we get some real use for the new GTabWidget. :^)
2019-05-06 03:21:34 +02:00