Andreas Kling
2c5a378ccc
Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln.
...
It's now possible to create symbolic links! :^)
This exposed an issue in Ext2FS where we'd write uninitialized data past
the end of an inode's content. Fix this by zeroing out the tail end of
the last block in a file.
2019-03-02 01:52:24 +01:00
Andreas Kling
37f6844c6c
Kernel: Port stat() to KResult/KResultOr<T>.
2019-03-02 00:11:27 +01:00
Andreas Kling
f75eb9af16
Kernel: Support chdir() to a directory that's executable but not readable.
...
Also the superuser should be allowed to resolve any possible path without
getting tripped up by EACCES.
2019-03-01 23:54:07 +01:00
Andreas Kling
4f9b6a88a6
WindowServer: Use SA_NOCLDWAIT.
2019-03-01 16:16:38 +01:00
Andreas Kling
274b0260f7
Kernel: Don't send SIGCHLD to parent process if he has SA_NOCLDWAIT set.
...
Just transfer ownership of the dead process to the colonel and let the
scheduler reap it on next iteration.
2019-03-01 15:52:05 +01:00
Andreas Kling
5f4245789d
FileManager: Allow launching processes by activating an executable file.
2019-03-01 14:57:42 +01:00
Andreas Kling
1ab995bfff
FileManager: Keep the window title in sync with the current path.
2019-03-01 14:34:53 +01:00
Andreas Kling
574a399347
LibGUI: GTableView should scroll items into view when keyboard navigating.
2019-03-01 14:29:34 +01:00
Andreas Kling
ac8fb5da4c
FileManager: Port to GTableModel/GTableView.
...
Replace the custom DirectoryView widget with a GTableView subclass.
This was pleasantly straightforward and it's so cool seeing the huge
increase in app quality from GTableView. :^)
2019-03-01 13:55:48 +01:00
Andreas Kling
b5dcad932e
LibGUI: Allow basic keyboard navigation in GTableView.
...
Pressing Enter will now "activate" the selected index, meaning that
the model gets a call to activate(GModelIndex).
2019-03-01 13:48:08 +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
9c21874d33
LibGUI: GTableView scrolling ranges should be based on the available area.
...
We have to subtract the headers and scrollbars to get the correct behavior.
2019-03-01 11:04:55 +01:00
Andreas Kling
6c2089c59d
Put miscellaneous debug spam behind #ifdefs.
2019-03-01 10:51:58 +01:00
Andreas Kling
1b16a29044
Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.
...
/bin/cp will now copy the permission bits from source to destination. :^)
2019-03-01 10:39:19 +01:00
Andreas Kling
b5e5f26a82
Base: Add Csilla Bold 7x10 variant.
...
It's nice to have a thin and a bold variant to complement each other.
2019-03-01 02:50:50 +01:00
Andreas Kling
0776c51bf5
Base: Import a new font, Csilla Thin (7x10).
...
I wanted to do a bitmap font with an odd number of columns for a while
and I finally got around to it. This really looks rather nice, so I'm
making it the default system font for now. :^)
2019-03-01 01:52:20 +01:00
Andreas Kling
e6625755c9
ProcessManager: Tweak icons.
2019-02-28 22:35:58 +01:00
Andreas Kling
567a403683
LibGUI: Tweak GStatusBar margins.
2019-02-28 22:33:39 +01:00
Andreas Kling
7ee4e79cd6
Kernel: Oops, fix Vector assertion in FS::Sync.
2019-02-28 22:33:00 +01:00
Andreas Kling
6b581aff77
Kernel: Make a copy of the dirty inode list before iterating in sync().
2019-02-28 21:51:59 +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
3fe7ddadaf
LibGUI: Clip to paint event rect in most widgets.
2019-02-28 19:34:55 +01:00
Andreas Kling
737a4d2377
LibGUI: Both GToolBar and GStatusBar should have highlight/shadow.
2019-02-28 19:31:37 +01:00
Andreas Kling
c5d88ff0d8
LibGUI: Top line on GStatusBar should be a highlight, not a shadow.
2019-02-28 19:17:08 +01:00
Andreas Kling
fd428d6ed3
SharedGraphics: Make Painter clipping work with translated clip origin.
2019-02-28 18:57:36 +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
28652a0bf7
LibGUI: GTableView was accidentally obscuring the last row.
2019-02-28 16:42:18 +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
6af2ce0f7e
LibGUI: Re-enable the update rect coalescing.
2019-02-28 13:58:04 +01:00
Andreas Kling
7eb42b5ffb
LibGUI: GTableView paints itself completely, no need for auto filling.
2019-02-28 13:57:41 +01:00
Andreas Kling
827ec99a8f
LibGUI: Update GTableView's scrollbar range in response to resize.
2019-02-28 13:25:52 +01:00
Andreas Kling
82c22a7484
ProcessManager: Add "continue" action that sends SIGCONT.
2019-02-28 13:02:55 +01:00
Andreas Kling
e427b514dc
Kernel: Implement basic SIGSTOP and SIGCONT support.
2019-02-28 12:27:26 +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
c09ab7cc40
Kernel: Only allow sending signals to process you own.
2019-02-28 11:46:38 +01:00
Andreas Kling
05f9257621
WindowServer: Add "Open ProcessManager..." to system menu.
...
This will no doubt come in handy. :^)
2019-02-28 11:36:50 +01:00
Andreas Kling
8a0d77f576
ProcessManager: Bump the initial window size to "pretty big"
2019-02-28 11:32:50 +01:00
Andreas Kling
fd280a6a03
LibGUI: Pad GTableView cells on the right side as well.
2019-02-28 11:31:07 +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
40c8dd80d1
LibGUI: Draw separators between GTableView column headers.
2019-02-28 11:04:03 +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