summaryrefslogtreecommitdiff
path: root/Userland/DevTools
AgeCommit message (Collapse)Author
2022-12-10LibCore: Use `Core::Stream` for `ProcessStatisticsReader`Tim Schumacher
2022-12-08LibSQL+SQLServer+SQLStudio+sql: Give ID types a distinct nameTimothy Flynn
Makes it clearer what is being stored, especially in future clients that will store a bunch of statement IDs.
2022-12-07UserspaceEmulator: Implement MOV_RM16_segAndreas Kling
2022-12-07UserspaceEmulator: Implement MOV_seg_RM32 and MOV_seg_RM16Andreas Kling
This allows hosted programs to write to segment registers. :^)
2022-12-07UserspaceEmulator: Implement PUSH_{CS,DS,ES,FS,GS,SS}Andreas Kling
You can now push the segment registers on the stack! :^)
2022-12-07UserspaceEmulator: Add SoftCPU getters for FS and GSAndreas Kling
2022-12-07UserspaceEmulator: Initialize the FS segment on startupAndreas Kling
Set it to 0x23, matching the initial value in a native process.
2022-12-07LibSQL+SQLServer+SQLStudio+sql: Send result rows over IPC as SQL::ValueTimothy Flynn
We've been sending the values converted to a string, but now that the Value type is transferrable over IPC, send the values themselves. Any client that wants the value as a string may do so easily, whereas this will allow less trivial clients to avoid string parsing.
2022-12-07LibSQL+SQLServer+SQLStudio+sql: Propagate connection errors immediatelyTimothy Flynn
Currently, when clients connect to SQL server, we inform them of any errors opening the database via an asynchronous IPC. But we already know about these errors before returning from the connect() IPC, so this roundabout propagation is a bit unnecessary. Now if we fail to open the database, we will simply not send back a valid connection ID. Disconnect has a similar story. Rather than disconnecting and invoking an asynchronous IPC to inform the client of the disconnect, make the disconnect() IPC synchronous (because all it does is remove the database from the map of open databases). Further, the only user of this command is the SQL REPL when it wants to connect to a different database, so it makes sense to block it. This did require moving a bit of logic around in the REPL to accommodate this change.
2022-12-07LibSQL+SQLServer+SQLStudio+sql: Allocate per-statement-execution IDsTimothy Flynn
In order to execute a prepared statement multiple times, and track each execution's results, clients will need to be provided an execution ID. This will create a monotonically increasing ID each time a prepared statement is executed for this purpose.
2022-12-07LibSQL+SQLServer+SQLStudio+sql: Use proper types for SQL IPC and IDsTimothy Flynn
When storing IDs and sending values over IPC, this changes SQLServer to: 1. Stop using -1 as a nominal "bad" ID. Store the IDs as unsigned, and use Optional in the one place that the IPC needs to indicate an ID was not allocated. 2. Let LibIPC encode/decode enumerations (SQLErrorCode) on our behalf. 3. Use size_t for array sizes.
2022-12-07SQLServer+SQLStudio+sql: Allow sending placeholder values to SQLServerTimothy Flynn
2022-12-07Meta+Userland: Pass Gfx::IntPoint by valueMacDue
This is just two ints or 8 bytes or the size of the reference on x86_64 or AArch64.
2022-12-06Everywhere: Rename to_{string => deprecated_string}() where applicableLinus Groh
This will make it easier to support both string types at the same time while we convert code, and tracking down remaining uses. One big exception is Value::to_string() in LibJS, where the name is dictated by the ToString AO.
2022-12-06AK+Everywhere: Rename String to DeprecatedStringLinus Groh
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
2022-12-03Everywhere: Run clang-formatLinus Groh
2022-11-30HackStudio: Replace blank file when opening a new oneFiliph Sandström
Before this we just added a new tab and left the `(Untitled)` tab in the background. Now we instead check that it hasn't been modified and that it's empty; if both these conditions are true we replace the blank editor with the newly opened one.
2022-11-30HackStudio: User-definable documentation search pathsFiliph Sandström
This resolves a 3+ year old FIXME related to tooltip documentation search paths. By default we now search man3 in addition to man2 that we previously only searched.
2022-11-30SQLServer+SQLStudio+sql: Rename a couple of SQL IPC commands for clarityTimothy Flynn
Rename sql_statement to prepare_statement and statement_execute to execute_statement. The former aligns more with other database libraries (e.g. Java's JDBC prepareStatement). The latter reads less awkwardly.
2022-11-29HackStudio: Remove FindWidgetthankyouverycool
HackStudio editors now have built-in incremental search
2022-11-26Profiler: Don't stop disassembly on invalid instructionsSimon Wanner
2022-11-26LibX86: Add {Address,Operand}Size::Size64Simon Wanner
For now the opcode tables for OperandSize::Size64 are empty
2022-11-26LibX86+UserspaceEmulator: Introduce AddressSize and OperandSize enumsSimon Wanner
These replace the bools a32 and o32, which will make implementing 64-bit sizes possible. :^)
2022-11-13Userland: Accept drag_enter events for widgets supporting file dropsKarol Kosek
This patch will switch cursor to DragCopy when a user enters a widget while dragging file(s), giving them a visual clue that it *might* be dropped into this widget. This is a rather naive approach, as the cursor icon will change for any kind of file, as currently programs don't know the drag contents before dropping it. But after all I think it's better than nothing. :^)
2022-11-01Everywhere: Mark dependencies of most targets as PRIVATETim Schumacher
Otherwise, we end up propagating those dependencies into targets that link against that library, which creates unnecessary link-time dependencies. Also included are changes to readd now missing dependencies to tools that actually need them.
2022-11-01Everywhere: Explicitly link all binaries against the LibC targetTim Schumacher
Even though the toolchain implicitly links against -lc, it does not know where it should get LibC from except for the sysroot. In the case of Clang this causes it to pick up the LibC stub instead, which might be slightly outdated and feature missing symbols. This is currently not an issue that manifests because we pass through the dependency on LibC and other libraries by accident, which causes CMake to link against the LibC target (instead of just the library), and thus points the linker at the build output directory. Since we are looking to fix that in the upcoming commits, let's make sure that everything will still be able to find the proper LibC first.
2022-10-27Kernel: Make scheduler control syscalls more generickleines Filmröllchen
The syscalls are renamed as they no longer reflect the exact POSIX functionality. They can now handle setting/getting scheduler parameters for both threads and processes.
2022-10-26GMLPlayground: Replace /proc/all unveil with /sys/kernel/processesTimothy Flynn
This was missed before commit dc5b28e26cbbce01af2ce9cc919c0a31f46d565e. Fixes #15809.
2022-10-26LibGUI: Make sure combobox list windows can't be movedGunnar Beutner
This is done by adding a new window type (Popup) and using it for the combobox list window. Other incorrect uses of the Tooltip window type have also been updated to use the new window type.
2022-10-25Applications: Use new global variables at /sys/kernel/ directoryLiav A
2022-10-25Userland: Let applications make use of make_command_palette_action()demostanis
2022-10-24Inspector: Reopen picker UI after selecting Inspectorcrpz1
2022-10-24AK+Everywhere: Turn bool keep_empty to an enum in split* functionsdemostanis
2022-10-24GMLPlayground: Restrict filesystem access using `unveil()`Karol Kosek
2022-10-24GMLPlayground: Open and save files using FileSystemAccessClientKarol Kosek
2022-10-15GMLPlayground: Allow previewing GML in a separate windowSamuel Bowman
Previously, Playground would always preview the rendered GML in a frame next to the editor. This can be annoying when trying to work with small or large widget hierarchies since the size of the preview is tied to the size of the editor. Now there is a view menu which allows you to toggle between the frame or a separate window which can be resized independent of the editor.
2022-10-14AK+Userland: Stub out code that isn't currently implemented on AARCH64Gunnar Beutner
Even though this almost certainly wouldn't run properly even if we had a working kernel for AARCH64 this at least lets us build all the userland binaries.
2022-10-12Userland: Properly populate GENERATED_SOURCESAli Mohammad Pur
We previously put the generated headers in SOURCES, which did not mark them as GENERATED (and did not produce a proper dependency). This commit moves all generated headers into GENERATED_SOURCES, and removes useless header SOURCES.
2022-10-11HackStudio: Set proper action scope for editor shortcutsTimothy Slater
This fixes issue #14429. The editor actions were not given a parent as scope so defaulted to global. Because HackStudio can have multiple editors and even multiple editor tab widgets, I chose the VerticalSplitter that all editor tab widgets get added to as the parent. With a Widget set as the parent, the action gets WidgetLocal scope and allows the embedded terminals to receive shortcuts. Thanks to Andreas for doing a quick look at this and pointing in the right direction during an Office Hours stream :)
2022-10-06HackStudio: Use a single global tooltip windowItamar
Previously, every Editor instance had two instances of tooltip windows & `OutOfProcessWebView`s, one for documentation and one for parameter hints. They were initialized with the Editor, which slowed down creation of new tabs. We use a single global tooltip & OOPWV instance that is shared between tabs. Closes #15488 Co-authored-by: Sam Atkins <atkinssj@serenityos.org>
2022-10-06HackStudio: Remove adjustment of text range for documentation tooltipItamar
We no longer need to adjust the hovered span's range to get the correct hovered text. This fixes the "documentation tooltip" feature.
2022-10-06HackStudio: Prevent closing the last editor groupMarco Cutecchia
Previously if the user closed the last open tab in the last TabWidget then the open file action would stop working until they explicitly went to the View menu and added a new editor group. Before this commit there was an attempt at preventing the user to close the last open tab by hiding its close button, this didn't account for the many other ways one could close it though.
2022-10-06HackStudio: Remove the 'Open in a new tab' actionMarco Cutecchia
This has become the default with the previous changes so it doesn't make sense anymore
2022-10-06HackStudio: Open files in dedicated tabsMarco Cutecchia
Previously when trying to open a file from the tree view the file would open in the currently selected tab, substituting the file we were previously reading. This change makes it so that clicking on a file from the tree view opens it in a new tab, or selects the tab containing that file if it's already open in the selected editor group.
2022-10-04AK+Everywhere: Add AK_COMPILER_{GCC,CLANG} and use them most placesNico Weber
Doesn't use them in libc headers so that those don't have to pull in AK/Platform.h. AK_COMPILER_GCC is set _only_ for gcc, not for clang too. (__GNUC__ is defined in clang builds as well.) Using AK_COMPILER_GCC simplifies things some. AK_COMPILER_CLANG isn't as much of a win, other than that it's consistent with AK_COMPILER_GCC.
2022-10-03SystemServer+LoginServer+Userland: Switch to sid-based socketsPeter Elliott
This commit does three things atomically: - switch over Core::Account+SystemServer+LoginServer to sid based socket names. - change socket names with %uid to %sid. - add/update necessary pledges and unveils. Userland: Switch over servers to sid based sockets Userland: Properly pledge and unveil for sid based sockets
2022-09-29Userland: Replace empty `GUI::Widget`s in GML with `GUI::Layout::Spacer`Sam Atkins
This fixes the "Cancel" button on HackStudio's "New Project" dialog being too small. It's also clearer what these actually are.
2022-09-29AK+Everywhere: Replace "protocol" with "scheme" url helpersnetworkException
URL had properly named replacements for protocol(), set_protocol() and create_with_file_protocol() already. This patch removes these function and updates all call sites to use the functions named according to the specification. See https://url.spec.whatwg.org/#concept-url-scheme
2022-09-28HackStudio: Insert tooltip styling directly into Markdown HTML outputSam Atkins
2022-09-27SQLStudio: Save and load blank files without failing assertionne0ndrag0n