1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-25 16:05:06 +00:00
Commit graph

1587 commits

Author SHA1 Message Date
Marcus Nilsson
c91eebfbaa Magnifier: Use LibMain
Use the new serenity_main construct and TRY in Magnifier.
2021-11-28 10:10:35 -08:00
Andreas Kling
60c132d7d3 LibGUI: Move GUI::SettingsWindow setup out of the constructor
In order to propagate errors that occur during UI setup, we have to move
all that logic out of widget/window subclass constructors. This is a
first attempt at doing that, for GUI::SettingsWindow.
2021-11-28 08:54:22 +01:00
Andreas Kling
acd4cc97fc KeyboardSettings: Remove some unnecessary pledge promises
This program doesn't need to create or write files directly.
2021-11-28 08:54:22 +01:00
Andreas Kling
45844f9338 LibGUI: Make GUI::SettingsWindow::add_tab() return ErrorOr
This allows us to use TRY() when creating settings UI.
2021-11-28 08:10:53 +01:00
Andreas Kling
7c19e86a50 TerminalSettings: Remove unnecessary pledges and unveils 2021-11-28 08:10:53 +01:00
Andreas Kling
6b862d5063 TerminalSettings: Port to LibMain :^) 2021-11-28 08:10:53 +01:00
Andreas Kling
8a11e986e5 MailSettings: Port to LibMain :^) 2021-11-28 08:10:53 +01:00
Andreas Kling
984cf1fe7a DisplaySettings: Port to LibMain :^) 2021-11-28 08:10:53 +01:00
Brian Gianforcaro
cf4fa936be Everywhere: Use default execpromises argument for Core::System::pledge 2021-11-28 08:04:57 +01:00
Brian Gianforcaro
eb896aa33e Settings: Convert to TRY + serenity_main(..) 2021-11-28 08:04:57 +01:00
kleines Filmröllchen
1ff48a3ca4 Terminal: Modernize terminal settings as a standalone application
The settings for Terminal are extracted into their own application,
TerminalSettings, which is reachable over the normal Settings menu as
well as the same place in the Terminal menu. The font settings are moved
into these settings as well, which are now split up into the "Terminal"
and "View" tabs. The font settings themselves receive an option to
override the selected font with the system default on the user side.
The live update behavior of all of the terminal settings is retained.

The layout of the new TerminalSettings is based around the other
Settings applications, but pixel-perfectness is missing in some places.
It's a bit fiddly and I'd like to have some better GUI::Label auto-size
behavior, but oh well :^)
2021-11-27 12:45:44 +01:00
Brian Gianforcaro
72e9d024b9 Settings: Fix launch of settings dialog
There was a bug report on discord where someone mentioned that
launching the keyboard settings always crashed. When looking
at the backtrace it became clear we were calling down the
`AppFile::executable()` path on uninitialized memory.

We can fix this by using the "official" API for obtaining data
from the GUI ModelIndex, instead of casting random memory to
the object type we expect it to be. :^)

Validated this fixes the issue for me locally.
2021-11-27 11:24:31 +01:00
Marcus Nilsson
67f349be46 PixelPaint: Keep a RefPtr to offset_text_box in EditGuideDialog
Keep a RefPtr to offset_text_box in EditGuideDialog instead of using
a local pointer. Previously the lambda in ok_button.on_click() would
outlive the local variable causing a crash.
2021-11-27 11:04:48 +01:00
Andreas Kling
1ded1ed963 Run: Port to LibMain :^) 2021-11-26 23:27:57 +01:00
Sam Atkins
377a984905 Settings: Make sure settings are listed in alphabetical order
DirectoryIterator, and so `Desktop::AppFile::for_each()`, doesn't
guarantee anything about the order, so we manually sort afterwards.
Which means using a manual version of NonnullRefPtrVector, since that
doesn't support `quick_sort()`.
2021-11-26 22:14:56 +01:00
Sam Atkins
705b7fc407 Browser: Allow custom search engine URLs that don't start http[s]:// 2021-11-26 22:14:56 +01:00
Sam Atkins
a1e1405f26 BrowserSettings: Add some icons for it :^) 2021-11-26 22:14:56 +01:00
Sam Atkins
c22b0bb8b2 Browser+Base: Delete provided Browser.ini file
Having files in Base's user `.config` folder means that every time the
Serenity image is built, all user settings in that file are thrown away.
So, let's not do that! :^)

Modified the default value for the homepage url to match what was in
Browser.ini, so there is no visible change.
2021-11-26 22:14:56 +01:00
Sam Atkins
e84b3e7110 BrowserSettings: Implement restoring default values 2021-11-26 22:14:56 +01:00
Sam Atkins
f2b8ae7d86 BrowserSettings: Add preferred-color-scheme setting 2021-11-26 22:14:56 +01:00
Sam Atkins
11466c5316 BrowserSettings: Add setting for search engine 2021-11-26 22:14:56 +01:00
Sam Atkins
e927048754 Browser: Move search engine definitions to a json file
This both makes them configurable, and means that we can read them from
other applications, such as BrowserSettings. :^)
2021-11-26 22:14:56 +01:00
Sam Atkins
1933076143 Browser+BrowserSettings: Persist the "show bookmarks bar" setting
Previously this setting was only temporary, but we now save/load it from
the config file.
2021-11-26 22:14:56 +01:00
Sam Atkins
8a284be5c7 BrowserSettings: Create a BrowserSettings application :^)
Browser has a bunch of settings, but most are non-trivial to add here.
So far, these are implemented:

- Homepage URL
- Whether to close download windows when they complete

The others will be added in subsequent commits.
2021-11-26 22:14:56 +01:00
Karol Kosek
20191b58e2 DisplaySettings: Update wallpaper config path only on success
The Window Server is ignoring incorrect files since 235f39e449, so let's
not update the config when that happens and an error message instead!
2021-11-26 11:30:55 -08:00
Karol Kosek
e56ffd11ce DisplaySettings: Always save the background color to the config
Previously, you could notice that the background color isn't being
updated when you picked a small bitmap image with the 'center' mode.
2021-11-26 11:30:55 -08:00
Ralf Donau
1c59cfa28c SystemMonitor: Remove unveiling /tmp/portal/config 2021-11-25 08:50:31 +01:00
kleines Filmröllchen
a099a77e82 SoundPlayer+LibDSP: Move the FFT implementation to LibDSP
LibDSP can greatly benefit from this nice FFT implementation, so let's
move it into the fitting library :^)

Note that this now requires linking SoundPlayer against LibDSP. That's
not an issue (LibDSP is rather small currently anyways), as we can
probably make great use of it in the future anyways.
2021-11-24 23:45:08 +00:00
Andreas Kling
4cbf7f24be Terminal: Tighten lambda captures in create_find_window() 2021-11-24 23:32:43 +01:00
Andreas Kling
1749442a1c Terminal: Use LibCore syscall wrapper for ptsname() 2021-11-24 23:25:03 +01:00
Andreas Kling
6b587714e8 Terminal: Use ErrorOr and TRY() when setting up the "find" dialog 2021-11-24 23:11:11 +01:00
Andreas Kling
0ff9df3cd6 Terminal: Use TRY() a lot more in serenity_main() 2021-11-24 23:07:31 +01:00
Andreas Kling
bc2ee02ce0 FileManager: Use TRY() a lot more in the main functions :^) 2021-11-24 23:07:31 +01:00
Maciej
700c76ba23 CrashReporter: Don't visualize whitespace in memory regions text editor
This was visible for memory regions with empty name.
2021-11-24 19:44:02 +01:00
Andreas Kling
dbab20782e LibGUI: Make FilteringProxyModel factory function return ErrorOr 2021-11-24 13:52:01 +01:00
Andreas Kling
71414821b4 Help: TRY() all the things in serenity_main() :^)
This patch makes use of all the new fallible APIs in LibGUI together
with TRY() to catch and propagate errors. The main error getting caught
is allocation failures while trying to construct the Help UI.

It's quite interesting to see how the code changes as more and more
fallible calls get branded as such by wrapping them in TRY().

There's a lot of repetitive "TRY(try_foo())" going on right now. Once
this becomes the dominant programming pattern, we can drop the "try_"
prefix everywhere. :^)
2021-11-24 13:52:01 +01:00
Andreas Kling
b6f49924be LibDesktop: Make allowlist APIs return ErrorOr<void>
This makes it very smooth to use TRY() when setting up these lists,
as you can see in the rest of this commit. :^)
2021-11-24 00:25:23 +01:00
Andreas Kling
f526325e24 ImageViewer: Port to LibMain :^) 2021-11-24 00:25:23 +01:00
Andreas Kling
ba4fd8fa15 FontEditor: Port to LibMain :^) 2021-11-24 00:25:23 +01:00
Andreas Kling
973cb0a49e Calculator: Port to LibMain :^) 2021-11-24 00:25:23 +01:00
Andreas Kling
31867bed5c KeyboardSettings: Port to LibMain :^) 2021-11-24 00:25:23 +01:00
Andreas Kling
10b5393506 MouseSettings: Port to LibMain :^) 2021-11-24 00:25:23 +01:00
Andreas Kling
db79f1cb78 Welcome: Port to LibMain :^) 2021-11-24 00:25:22 +01:00
Andreas Kling
e7d4622ce0 Help: Port to LibMain :^) 2021-11-24 00:25:22 +01:00
Andreas Kling
6536198693 TextEditor: Port to LibMain :^)
This opens up using TRY() for syscalls and Core::Object creation.
2021-11-23 15:44:59 +01:00
Andreas Kling
58fb3ebf66 LibCore+AK: Move MappedFile from AK to LibCore
MappedFile is strictly a userspace thing, so it doesn't belong in AK
(which is supposed to be user/kernel agnostic.)
2021-11-23 11:33:36 +01:00
Andreas Kling
21a5fb0fa2 LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore
With this change, System::foo() becomes Core::System::foo().

Since LibCore builds on other systems than SerenityOS, we now have to
make sure that wrappers work with just a standard C library underneath.
2021-11-23 11:33:36 +01:00
Mustafa Quraish
4d302e0e88 Everywhere: Use Application::construct() with Main::Arguments directly
Use the updated API everywhere we are currently manually passing in
`arguments.argc` and `arguments.argv`.
2021-11-22 21:13:42 -08:00
Mustafa Quraish
2fbcab46bf Everywhere: Use ArgsParser::parse() with Main::Arguments directly
Use the updated API everywhere we are currently manually passing in
`arguments.argc` and `arguments.argv`.
2021-11-22 21:13:42 -08:00
Pascal Puffke
ca7b603578 Mail: Port to LibMain 2021-11-22 23:56:22 +01:00