1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 15:47:42 +00:00
Commit graph

1497 commits

Author SHA1 Message Date
Nicolas Van Bossuyt
6a66207efa
PaintBrush: Initial support for transparency. (#1883) 2020-04-21 12:03:58 +02:00
Brendan Coles
a47b9fe490 TextEditor: Add "Find Next" 16x16 icon 2020-04-21 09:49:47 +02:00
Itamar
e35219b5ce Debugger: Add source-level operations
- Print current source location, if available
- Add a breakpoint at a source location
- "sl" command - step to the next line in source
2020-04-20 17:25:50 +02:00
angel
e0a16f8752 FileManager+LibGUI: Allow drop on entire DirectoryView
Previously, drag and drop would only work when dragging between node
items on a DirectoryView. This commit makes it possible to drag files to
the empty area of the DirectoryView and copy files more easily between
windows.
2020-04-20 12:15:26 +02:00
angel
27091d05ee DirectoryView: Don't push same path twice to history
When opening a path, check if it's the current one before pushing it
twice to the path history.
2020-04-20 12:15:26 +02:00
Andreas Kling
c45e16f605 LibCore: Add StandardPaths thing to retrieve various standard locations
Fixes #1853.
2020-04-19 19:57:05 +02:00
Nicolas Van Bossuyt
b07bd1b95c
PaintBrush: Fix crash with flood fill. (#1881)
Fixed a crash occurring when initiating a flood fill out of the bitmap rectangle.
2020-04-19 19:29:07 +02:00
angel
238afd37cf FileManager: Replicate permissions on directory copy (#1437)
When copying files, the original file permissions are applied to the
copy. However, this was not done with directories. This should do it.
2020-04-19 17:18:27 +02:00
angel
11054fc9f9 FileManager: Fix recursive copy on drag
When a drag operation is accepted, we don't check whether the source
nodes contain the destination directory. This could trigger an unwanted
recursive copy.
2020-04-19 17:16:08 +02:00
angel
0ec37c0d64 FileManager: Ignore empty selections on tree view
If the selection is empty, the model index will be invalid and the file
system model will return the root directory path by default. This causes
the file manager to jump to the root directory when the currently
selected item on the tree view is deselected.
2020-04-19 15:23:16 +02:00
Vojtech Moravec
90f8a7a36b
Browser: Make removal of bookmark persistent (#1865)
Json model wasn't stored after bookmark removal.
Store the model if remove() was successful.
2020-04-19 14:43:16 +02:00
Sergey Bugaev
eacde6c499 Browser: Fix opening non-file URLs passed in argv 2020-04-19 11:14:26 +02:00
Sergey Bugaev
f8b2a7b4a7 LibCore+LibGUI: Move DesktopServices to LibCore 2020-04-19 11:14:26 +02:00
Andreas Kling
7dbb8b6f09 FileManager: Allow running in desktop mode
FileManager can now be started with the --desktop argument. When it's
started in this mode, it will run as a WindowType::Desktop window and
not create any of its regular UI.

The desktop version of the file manager is currently pretty bare-bones
but we can improve it over time and share more code with the regular
file manager windows.

I think this is pretty cool! :^)
2020-04-18 22:04:41 +02:00
Andreas Kling
d42e380906 FileManager: Use URL::create_with_file_protocol() in one place 2020-04-18 22:03:05 +02:00
Andreas Kling
afb9ee2af8 Browser: Use URL::create_with_file_protocol() in one place 2020-04-18 22:02:41 +02:00
Andreas Kling
75daf3857b FileManager: Use GUI::DesktopServices::open() to open files
Instead of squirreling away this logic deep in the FileManager app,
we now delegate file opening to GUI::DesktopServices.
2020-04-18 21:58:04 +02:00
Brendan Coles
e87347e1d3 IRCClient: Use sub-menus for app channel menu and member context menu 2020-04-18 19:49:05 +02:00
Andreas Kling
638130591c Taskbar: Remove frame around quick-launch icons 2020-04-18 18:22:37 +02:00
Itamar
1642fdf82d Debugger: Use LibLine 2020-04-16 12:22:59 +02:00
Itamar
f4418361c4 Userland: Add "functrace" utility
functrace traces the function calls a program makes.
It's like strace, but for userspace.

It works by using Debugging functionality to insert breakpoints
at call&ret instructions.
2020-04-16 11:17:33 +02:00
Andreas Kling
0e10673c58 Piano: Use NumericLimits<T> 2020-04-15 16:58:46 +02:00
Hüseyin ASLITÜRK
abd09ab030
DisplayProperties: Make the preview calculation more accurate (#1807) 2020-04-15 16:40:46 +02:00
Nick Tiberi
e639c5bc25 Browser: Default page title to URL if no title is provided 2020-04-15 08:39:11 +02:00
Sergey Bugaev
f18d6610d3 Kernel: Don't include null terminator in sys$readlink() result
POSIX says, "Conforming applications should not assume that the returned
contents of the symbolic link are null-terminated."

If we do include the null terminator into the returning string, Python
believes it to actually be a part of the returned name, and gets unhappy
about that later. This suggests other systems Python runs in don't include
it, so let's do that too.

Also, make our userspace support non-null-terminated realpath().
2020-04-14 18:40:24 +02:00
Itamar
109c24ae97 Debugger: Repeat previous command when an empty command is entered 2020-04-13 23:20:59 +02:00
Itamar
312559b131 Debugger: Add single step command
Also, this commit does some refactoring to the debugging loop logic.
2020-04-13 23:20:59 +02:00
Itamar
c3faaeb9b9 Debugger: Breakpoints now persist after being tripped
Previously, a breakpoint was removed after it was tripped.

After a breakpoint trips, we have to undo the 'int3' patch
from the instruction in order to continue the exceution.

To make a breakpoint persist, we switch to "single step" mode,
which stops the execution after a single instruction, and then we
insert the breakpoint at the previous instruction.

There is also some code that deals with an edge case where there are
breakpoints in two consecutive instructions.
2020-04-13 23:20:59 +02:00
Itamar
1191ab9500 Debugger: Print where we're stopped at
For some reaason, some magic is required to convince gcc to give us
the implementation for "__cxa_demangle"
Thanks @predmond for finding this simpler form of magic :)
2020-04-13 23:20:59 +02:00
Itamar
e207de8449 LibELF: Add find_demangled_function
Also, added AK::String::index_of and fixed a bug in ELF::Loader::symbol_ptr
2020-04-13 23:20:59 +02:00
Itamar
479348c9e7 Debugger: Add pledges 2020-04-13 00:53:22 +02:00
Itamar
3e9a7175d1 Debugger: Add DebugSession
The DebugSession class wraps the usage of Ptrace.
It is intended to be used by cli & gui debugger programs.

Also, call objdump for disassemly
2020-04-13 00:53:22 +02:00
Itamar
9e51e295cf ptrace: Add PT_SETREGS
PT_SETTREGS sets the regsiters of the traced thread. It can only be
used when the tracee is stopped.

Also, refactor ptrace.
The implementation was getting long and cluttered the alraedy large
Process.cpp file.

This commit moves the bulk of the implementation to Kernel/Ptrace.cpp,
and factors out peek & poke to separate methods of the Process class.
2020-04-13 00:53:22 +02:00
Itamar
0431712660 ptrace: Stop a traced thread when it exists from execve
This was a missing feature in the PT_TRACEME command.

This feature allows the tracer to interact with the tracee before the
tracee has started executing its program.

It will be useful for automatically inserting a breakpoint at a
debugged program's entry point.
2020-04-13 00:53:22 +02:00
Itamar
b306ac9b2b ptrace: Add PT_POKE
PT_POKE writes a single word to the tracee's address space.

Some caveats:
- If the user requests to write to an address in a read-only region, we
temporarily change the page's protections to allow it.

- If the user requests to write to a region that's backed by a
SharedInodeVMObject, we replace the vmobject with a PrivateIndoeVMObject.
2020-04-13 00:53:22 +02:00
Itamar
924fda19b0 Debugger: Get entry point of debugged process
Also, start debugging only after execve is done
2020-04-13 00:53:22 +02:00
Itamar
984ff93406 ptrace: Add PT_PEEK
PT_PEEK reads a single word from the tracee's address space and returns
it to the tracer.
2020-04-13 00:53:22 +02:00
Itamar
77f671b462 CPU: Handle breakpoint trap
Also, start working on the debugger app.
2020-04-13 00:53:22 +02:00
Hüseyin ASLITÜRK
b1e8cc22bd QuickShow: Small code edits to fit standards 2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
70873fdf02 QuickShow: Toolbar for who love to use mouse 2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
6c1af174a1 QuickShow: Add Delete action
Delete current file from file system.
2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
f88ceb872a QuickShow: Use Core::ArgsParser to handle parameters 2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
e0bf57d81f QuickShow: Add Fullscreen, Zoom options to View menu 2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
d79c81a179 QuickShow: Rotate image left and right, flip vertical and horizontal 2020-04-12 18:08:11 +02:00
Hüseyin ASLITÜRK
2689fdf1d8 QuickShow: Browse the files in the same folder 2020-04-12 18:08:11 +02:00
Andreas Kling
8e4751a963 LibGUI: Add a way for models to update without invalidating indexes
This is really just a workaround to keep SystemMonitor's process table
working right wrt selection retention during resorts (while also doing
full index invalidation on things like ProfileViewer inversion.)

It's starting to feel like the model abstraction is not super great
and we'll need a better approach if we want to actually build some more
dynamic functionality into our views.
2020-04-12 12:03:33 +02:00
Andreas Kling
8ef9c272b6 Browser: Accept file:// URLs on the command line
This could be a lot nicer, but at least we can open file:// URLs now.
2020-04-11 23:11:10 +02:00
Brendan Coles
502299919a IRCClient: Add channel member context menus for common CTCP requests
Add menu items for CTCP: USERINFO, FINGER, TIME, VERSION, CLIENTINFO
2020-04-11 14:26:36 +02:00
Brendan Coles
63f8cbfb56 IRCClient: Add NotifyOnMessage/NotifyOnMention config options
Allow IRCClient user to opt out of notifications.
2020-04-10 13:16:07 +02:00
Brendan Coles
df7b617ba1 IRCClient: Add ShowNickChangeMessages/ShowJoinPartMessages conf options
Allow IRCClient to hide nick change spam and join/part spam
2020-04-10 12:56:19 +02:00