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
Andreas Kling
3bdb95e128
ProcessManager+LibGUI: Tweak things to improve ProcessManager look.
2019-05-05 20:53:04 +02:00
Andreas Kling
4e1b36ddf2
GTabWidget: Make a custom look for tab buttons.
2019-05-05 14:39:37 +02:00
Andreas Kling
62e7b26406
LibGUI: Start working on a tabbed widget container: GTabWidget.
2019-05-05 01:31:02 +02:00
Andreas Kling
57da00b731
Include Makefile.common in all other Makefiles.
2019-04-21 04:09:39 +02:00
Andreas Kling
180de7e8c5
ProcessManager: Exclude colonel process from process listing.
2019-04-20 19:41:57 +02:00
Andreas Kling
ec365b82d5
Kernel: Make the colonel run at "Idle" priority (the lowest possible.)
...
This means it won't hog the CPU for more than a single timeslice. :^)
2019-04-20 15:58:45 +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
301a269ca0
Get rid of SERENITY macro since the compiler already defines __serenity__
...
This makes it a bit easier to use AK templates out-of-tree.
2019-04-20 12:58:49 +02:00
Andreas Kling
67d7fc94fc
ProcessManager: Do a little less malloc() in the /proc/memstats parsing.
2019-04-18 04:48:53 +02:00
Andreas Kling
ac19fabaaf
ProcessManager: Use a single timer for refreshing the view.
...
Also add a menu for changing the update frequency to some nice values.
2019-04-18 04:38:31 +02:00
Andreas Kling
e74b5bc054
ProcessManager+WindowServer: Do a little less malloc() in CPU monitor code.
2019-04-18 03:37:01 +02:00