Commit Graph

305 Commits

Author SHA1 Message Date
Andreas Kling
6f5f9e6567 Calendar: Alt shortcuts and book title capitalization in menus 2021-04-10 16:11:48 +02:00
Andreas Kling
5d609e408b Calculator: Alt shortcuts and book title capitalization in menus 2021-04-10 16:09:23 +02:00
Andreas Kling
8e74c9dbb6 Calculator: Add a separator line between the menu and the main UI 2021-04-10 16:08:14 +02:00
Andreas Kling
53ed30a9f5 QuickShow: Alt shortcuts and book title capitalization in menus 2021-04-10 14:58:48 +02:00
Andreas Kling
9288e64179 PixelPaint: Add icon and keyboard shortcut for the "New Image" action 2021-04-10 14:58:48 +02:00
Andreas Kling
4e56e9fa2a PixelPaint: Alt shortcuts and book title capitalization in menus 2021-04-10 14:58:48 +02:00
Andreas Kling
095979dbcd FontEditor: Alt shortcuts and book title capitalization in menus 2021-04-10 14:58:48 +02:00
Andreas Kling
1029069ad6 Browser: Add a separator line below the menu while in multi-tab mode 2021-04-09 22:23:32 +02:00
Andreas Kling
e34238945d Browser: Add more Alt shortcuts to menu actions 2021-04-09 21:53:43 +02:00
Andreas Kling
2c94c9fa7f SystemMonitor: Add Alt shorcuts to menu actions 2021-04-09 17:10:30 +02:00
Andreas Kling
9945135f66 Browser: Add Alt shortcuts to menu actions 2021-04-09 17:08:49 +02:00
Andreas Kling
c6c0ec9403 FileManager: Add Alt shortcuts to menu actions 2021-04-09 17:08:49 +02:00
Andreas Kling
f718f04b14 TextEditor: Add Alt shortcuts to menu actions 2021-04-09 17:08:49 +02:00
Andreas Kling
c2b760e335 Terminal+LibVT: Add Alt shortcuts to menu actions 2021-04-09 17:08:49 +02:00
Dmitrii Trifonov
eb2b406173 FontEditor: Added quick and dirty support to add cyrrilic fonts.
This is a hack to support cyrillic text in serenity OS.
2021-04-09 08:33:12 +02:00
thankyouverycool
08f11d01d9 FontEditor+ClipboardHistory: Use system-wide Clipboard
Glyphs can now be copied between editors.
2021-04-07 19:27:01 +02:00
thankyouverycool
ebf3ce7806 FontEditor: Reset selected glyph on init
Fixes glyphs not updating when loading between fonts at the same
index. Fixes GlyphEditor spinbox inadvertently modifying width
of last selected index.
2021-04-07 19:27:01 +02:00
thankyouverycool
bb9cd13a56 FontEditor: Convert to GML and add new edit commands to GlyphEditor
Adds cut, copy, paste and delete to GlyphEditor. Font preview has
moved to a separate resizable ToolWindow. Font metadata can now be
hidden. FontEditor and glyph widgets can now be re-initialized
instead of resetting window's main widget after loading new fonts.
2021-04-06 22:24:05 +02:00
thankyouverycool
d115b29a5b FontEditor: Inherit GlyphMapWidget from ScrollableWidget
This makes it easier to work in FontEditor at low resolution.
Previously glyph map resized itself and the parent window to
accomodate fonts, which isn't ideal. Users typically control
window size/position after launch; widgets have to make do.
2021-04-06 22:24:05 +02:00
Andreas Kling
ec1a72b759 FileManager: Set the default menu item in desktop context menus
This makes the "Run TextEditor" action show up in bold text as expected
when opening the context menu for TextEditor on the desktop. :^)
2021-04-06 17:55:47 +02:00
Andreas Kling
7b9754d976 SystemMonitor: Highlight kernel processes a bit better in SystemMonitor
Kernel processes are now displayed with a gear icon and a "(*)" suffix
in the process list.
2021-04-06 17:55:47 +02:00
Andreas Kling
516868e197 SystemMonitor: Add Alt shortcuts for top-level menus 2021-04-05 23:15:43 +02:00
Andreas Kling
0652c2e4cc FileManager: Add Alt shortcuts for top-level menus 2021-04-05 23:15:43 +02:00
Andreas Kling
1d46e8d50c Browser: Add Alt shortcuts for top-level menus 2021-04-05 23:15:43 +02:00
Andreas Kling
357f288fef Terminal: Add Alt shortcuts for top-level menus 2021-04-05 23:15:43 +02:00
Andreas Kling
6902adbb84 SystemMonitor: Only show the most important process stats by default
You can still enable additional columns via the context menu, and this
gives us a much more focused default interface.
2021-04-05 13:40:25 +02:00
Andreas Kling
52de9b1753 LibGUI: Do AbstractView::set_column_hidden() => set_column_visible()
This API felt backwards, so let's change it.
2021-04-05 11:57:47 +02:00
Andreas Kling
cbc582e0df SystemMonitor: Don't generate backtraces while not looking at them 2021-04-05 11:42:54 +02:00
Linus Groh
45d4bf156d SystemMonitor: Tweak default window size
This ensures that all information on the 'Graphs' tab is visible by
default without having to resize the window.

Fixes #6135.
2021-04-05 11:26:07 +02:00
Tim Waterhouse
3feaebfc2d PixelPaint: Empty Tool menu
Fix #4038 by not deferring the creation of the tools. The original
change that introduced this, 7973f76790,
mentions this was needed to avoid having the menu work on the wrong
window, but I don't see that issue with this change so that may not be
needed anymore.
2021-04-05 09:04:43 +02:00
Andreas Kling
7b7cbcecdf SystemMonitor: Scope the process-specific actions to the process list
We don't want the process-specific actions to activate via keyboard
shortcuts when we're not focusing the process list.
2021-04-04 22:45:45 +02:00
Andreas Kling
5d379fcfb4 SystemMonitor: Actually reuse existing process properties windows 2021-04-04 22:43:43 +02:00
Andreas Kling
eff7ea5b84 LibGUI: Add GUI::CommonActions::make_properties_action()
Many apps want a "Properties" action with the same icon and shortcut.
2021-04-04 22:43:43 +02:00
Andreas Kling
578f749791 SystemMonitor: Remove unnecessary splitter from UI layout 2021-04-04 22:43:43 +02:00
Andreas Kling
8f0f6af369 SystemMonitor: Show total CPU usage percentage in status bar 2021-04-04 22:43:43 +02:00
Andreas Kling
9cba533e36 SystemMonitor: Tweak main UI layout :^) 2021-04-04 22:43:43 +02:00
Andreas Kling
a1b7bd6fea SystemMonitor: Add ability to open process properties from context menu 2021-04-04 22:43:43 +02:00
Andreas Kling
af06eac364 SystemMonitor: Remove "Process" context menu from menu bar
This menu is only relevant while interacting with the process list,
so let's not have it in the menu bar where its presence implies
universal relevance.
2021-04-04 22:43:43 +02:00
Andreas Kling
58ae8aabea SystemMonitor: Show process-specific details in a separate window
When double-clicking a process in the process list, we now open the
detailed information in a new window instead of showing it in a view
below the process list.

This declutters the main UI, and allows you to view details for
multiple processes at the same time.

This is just a first cut, there are many refinements possible here. :^)
2021-04-04 22:43:43 +02:00
Andreas Kling
5fcce5c7e2 SystemMonitor: Start capturing CPU/memory graphs on startup
It felt really weird that the graphs didn't start filling in before
you opened the graph tab for the first time.
2021-04-04 22:43:43 +02:00
Andreas Kling
0f7443f010 SystemMonitor: Add a status bar to the main window
To get us started, this shows the number of processes and threads in
the last captured state.
2021-04-04 22:43:43 +02:00
Marco Cutecchia
1e912fb5a1 PixelPaint: Avoid notifying image when creating a layer's snapshot
This fixes a bug where the application would crash if the user
changed the default values for opacity or visibility of a layer
and then tried to draw on it.
2021-04-04 22:43:30 +02:00
Andreas Kling
0b8226811f Kernel+CrashReporter: Add metadata about page faults to crash reports
Crash reports for page faults now tell you what kind of memory access
failed and where. :^)
2021-04-04 20:13:55 +02:00
Andreas Kling
e238435c4f CrashReporter: Only create coredump metadata hash map once
We were rebuilding the metadata map a bunch of times on startup.
2021-04-04 20:13:55 +02:00
Dawid Wolosowicz
f05cca7a9a Spreadsheet: Declare the extern GML variable as an array, not a pointer
Part of #5906
Fixes #5943
2021-04-04 00:38:02 +02:00
thankyouverycool
14e074cd24 LibGUI+Calendar: Inherit from Frame class
Fixes incorrect painting with variable thickness and cuts down
on some layout boilerplate.
2021-04-02 22:23:21 +02:00
Daniël van de Burgt
a106f852d3
WindowServer+MouseSettings: Add ability to configure double-click speed (#5876)
This adds a double-click speed slider control to the Mouse Settings
panel, and value labels for both the movement speed and double-click
speed sliders.

To allow for updating and persisting the configured double-click
speed through the WindowServer, two IPC calls - `SetDoubleClickSpeed`
and `GetDoubleClickSpeed` - have been added.
2021-04-02 16:08:18 +02:00
Idan Horowitz
77601e09c8 FontEditor+TextEditor+Playground: Refuse to load device files
This prevents the undefined behaviour that would come up as a result of
doing so. (For example: opening "infinite" devices like /dev/full will
result in an infinite loop until exhaustion of memory)
2021-03-30 11:29:52 +02:00
thankyouverycool
4465b37897 LibGUI+Calendar: Add new month and year views to Calendar
And overhaul resize and paint events to fix layout edge cases in
which Calendar wasn't filling its parent widget completely. Ensures
month views always display prior month days for click navigation.
Converts Calendar app layout to GML.
2021-03-30 10:34:34 +02:00
Timothy Flynn
855920fe13 Browser+LibWeb+WebContent: Add action to clear resource cache 2021-03-30 10:27:49 +02:00
Edgar Araújo
ca90a2029d Everywhere: Change font properties to be described in GML 2021-03-29 09:10:23 +02:00
Edgar Araújo
243d7d9ecf Everywhere: Remove empty {} from GML objects 2021-03-29 09:10:23 +02:00
Idan Horowitz
9f656b6fa9 LibCoreDump+CrashDaemon: Compress coredumps
Most coredumps contain large amounts of consecutive null bytes and as
such are a prime candidate for compression.

This commit makes CrashDaemon compress files once the kernel finishes
emitting them, as well as adds the functionality needed in LibCoreDump
to then parse them.
2021-03-28 20:42:33 +02:00
AnotherTest
ccf84a4709 Spreadsheet: Ignore extra empty lines after the rows
We now ignore the last CRLF in e.g.
```csv
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF
```
2021-03-28 11:46:47 +02:00
AnotherTest
894bfa30a2 Spreadsheet: Make the CSV reader more lenient
This adds an option "Lenient" that makes the reader conform to what
appears to be the norm in spreadsheet-land:
- Treat missing values as empty ones
- Update previously read rows if another row with more columns are seen
  afterwards
2021-03-28 11:46:47 +02:00
AnotherTest
102065a8a9 Spreadsheet: Show the error (if any) in csv import dialog's preview
...and don't try to read from a CSV that has errors.
Fixes #5942.
2021-03-28 11:46:47 +02:00
Andreas Kling
247717431d LibGUI: Make GUI::Widget::event() protected 2021-03-28 11:25:40 +02:00
Linus Groh
9734420dfa Browser: Set parent of tab child windows
By setting the parent of the JS console, DOM inspector, view source and
download windows, they will be destroyed automatically when the main
browser window is closed.

Fixes #2373.
2021-03-27 19:24:40 +01:00
Cesar Torres
fd126578d9 SoundPlayer: Add samplerate variable to visualizations
also fix conflict
2021-03-27 10:20:55 +01:00
Cesar Torres
2e28b8ebcc SoundPlayer: Add playlist supprt
And a M3U(8) parser
2021-03-27 10:20:55 +01:00
Cesar Torres
e4d6a56a28 AudioPlayer: Further decouple the player from the GUI 2021-03-27 10:20:55 +01:00
Cesar Torres
f9e4bff487 SoundPlayer: Reduce sample buffer size and add a sample load event 2021-03-27 10:20:55 +01:00
Cesar Torres
7aa5297835 SoundPlayer: Update the SoundPlayer interface
Also fix rebase conflict
2021-03-27 10:20:55 +01:00
Cesar Torres
45e928bfb2 SoundPlayer: Adapt the existing SampleWidget visualization to
the new abstraction
2021-03-27 10:20:55 +01:00
Cesar Torres
876c62409a SoundPlayer: Add a no-visualization visualization :^)
For now it displays one of SerenityOS's wallpapers, but it should
show the playing file's cover, if any.
2021-03-27 10:20:55 +01:00
Cesar Torres
773c3586f1 SoundPlayer: Move the SoundPlayer-specific Slider widget to another file 2021-03-27 10:20:55 +01:00
Cesar Torres
f6f2f67c56 SoundPlayer: Add a 'Bars' audio visualization 2021-03-27 10:20:55 +01:00
Cesar Torres
b02f01843a SoundPlayer: Add abstractions for players and visulizations
This can make them easier to be swappable in realtime
2021-03-27 10:20:55 +01:00
Cesar Torres
809f1d984d SoundPlayer: Implement the Fast Fourier Transform algorithm 2021-03-27 10:20:55 +01:00
Cesar Torres
0d5e1e9df1 Everywhere: rename 'Sample' type to 'Frame'
Because it's what it really is. A frame is composed of 1 or more samples, in
the case of SerenityOS 2 (stereo). This will make it less confusing for
future mantainability.
2021-03-27 10:20:55 +01:00
Federico Guerinoni
49a062f81d LibGUI: Show human readable size in filemanager
The size is visible only in TableView mode of the filemanager.
2021-03-26 22:59:09 +01:00
Timothy Flynn
cd82fd24e2 Browser: Add right-click context menu item for editing bookmarks
This allows users to right-click on a bookmark button to open a small
dialog for editing bookmark titles and URLs.
2021-03-26 22:58:31 +01:00
Andreas Kling
78b12e1521 Userland: Turn all application menus into window menus :^) 2021-03-25 22:14:09 +01:00
Andreas Kling
e76771bfad WindowServer+LibGfx: Show menus in windows! :^)
This patch begins the transition away from the global menu towards
per-window menus instead.

The global menu looks neat, but has always felt clunky, and there
are a number of usability problems with it, especially in programs
with multiple windows.

You can now call GUI::Window::set_menubar() to add a menubar to
your window. It will be specific to that one window only.
2021-03-25 22:14:09 +01:00
lucastarche
115348147d TextEditorWidget: Whitespace related options 2021-03-25 11:01:49 +01:00
lucastarche
f6892d1ede TextEditorWidget: Added tab width submenu 2021-03-25 11:01:49 +01:00
David Isaksson
3f9ac88c6e PropertiesWindow: Show the file size in a human readable format 2021-03-25 10:59:11 +01:00
David Isaksson
391d1ddfd8 Spreadsheet: Ensure that cell exists on drop event for text data
Fixes crash where we tried to get a cell to set text from the drop
event. We now create the cell if it does not already exists.

Fixes issue #5923
2021-03-24 20:36:41 +01:00
Linus Groh
40eab55e7d LibJS: Remove as_size_t()
Just like to_size_t() - which was already removed in f369229 - this is
non-standard, use to_length() instead. One remaining use was removed,
and I'm glad it's gone. :^)
2021-03-23 08:22:39 +01:00
lucastarche
fa9dfa3da1 PixelPaint: Added Zoom tool 2021-03-23 08:21:08 +01:00
lucastarche
3947d301e5 PixelPaint: ImageEditor scaling method
Moved the code on mousewheel_event to its own function.
2021-03-23 08:21:08 +01:00
AnotherTest
ba2df70eab Spreadsheet: Do not assume that a worksheet always exists
Fixes #5910.
Fixes #4822 (as far as I can tell).
2021-03-22 17:46:17 +01:00
AnotherTest
534626f917 Spreadsheet: Save the cells under the correct name
This broke in 6a6f19a72f, which replaced
the representation of columns with numbers.
As a result, the save logic would store cells as
"\x<column_index><row_number>", which is obviously wrong.
Fixes #5905.
Also simplifies the control flow in `import_worksheet` a bit.
2021-03-22 17:46:17 +01:00
AnotherTest
7b4fa860d2 Spreadsheet: Check for parse errors after parsing the source
There won't be any parse errors before we actually try to parse
something.
Fixes input like "=1+" crashing the spreadsheet instead of just causing
an error in the cell.
2021-03-22 17:46:17 +01:00
AnotherTest
fef165f1d2 Spreadsheet: Do not assume that user input has balanced parenthesis
Otherwise people with broken paren keys, or people with entertaining
ideas like "=9\b)" will cause an assert to trip.
Fixes #5909.
2021-03-22 17:46:17 +01:00
AnotherTest
9b68f91c0b Spreadsheet: Add an export wizard, and support for custom CSV exports
Fixes #4269.
2021-03-22 07:43:58 +01:00
AnotherTest
bba3a7a2cb Spreadsheet: Ignore empty cells when calculating data bounds
There's no reason to use extra rows/columns to represent empty cells
when exporting.
2021-03-22 07:43:58 +01:00
AnotherTest
8bd138cbbe Spreadsheet/XSV: Make the writer respect QuoteAll
Also make the header container type generic, and name an enum.
2021-03-22 07:43:58 +01:00
AnotherTest
3c151b3de6 Spreadsheet: Add an import wizard, and add support for custom CSV files
Fixes the import half of #4269.
2021-03-22 07:43:58 +01:00
AnotherTest
3bbcde9192 Spreadsheet/XSV: Add at() accessors
These are just aliases for operator[].
Also make the headers() getter return a vector of empty strings when the
csv file has no explicit headers.
2021-03-22 07:43:58 +01:00
AnotherTest
c1d67d6b17 Spreadsheet: Don't assume that the 'cells' field is an object
It might be missing, or not be an object.
Fixes #4821.
2021-03-22 07:43:58 +01:00
AnotherTest
9f8d518e82 Spreadsheet: Only append new columns/rows every 50ms
Fixes #5550.
2021-03-22 07:43:58 +01:00
Edgar Araújo
5df34f6567 TextEditor: Exit program when file is not opened
When trying to open files not permitted by the user, display the error
message and exit.
2021-03-19 09:15:43 +01:00
thankyouverycool
4ef0e4b62e Serendipity: Add new tips and use more GML 2021-03-18 07:50:48 +01:00
thankyouverycool
7beae8042a Spreadsheet: Set default width for columns 2021-03-18 07:49:55 +01:00
Oleg Sikorskiy
9ea15a84ac Piano: Avoid selecting out of range notes.
Fixes #5736. The selected note value could also underflow if
you drag to the left, but the assert got triggered only in
case you're dragging past the end of the note roll.
2021-03-17 21:58:26 +01:00
Andreas Kling
d792200a55 LibJS: Rename GlobalObject::initialize() => initialize_global_object()
This function was shadowing Object::initialize() which cannot be called
on global objects and has a different set of parameters.
2021-03-17 16:53:35 +01:00
Linus Groh
10843a2c8c QuickShow: Animate animated images :^)
With a little help (read: copy & paste) from ImageWidget, QuickShow will
now cycle through the frames of animated images - enjoy the cat GIFs!

Future improvement: cache decoded images like LibWeb's ImageResource to
waste less CPU - the same applies to LibGUI though, maybe we can put
something shared in LibGfx.

Closes #5837.
2021-03-17 12:37:48 +01:00
Andreas Kling
5023331726 LibGfx: Rename 32-bit bitmap StorageFormats to BGRA8888 and BGRx8888 2021-03-16 12:00:43 +01:00
Andreas Kling
e0f32626bc LibGfx: Rename 32-bit BitmapFormats to BGRA8888 and BGRx888x
The previous names (RGBA32 and RGB32) were misleading since that's not
the actual byte order in memory. The new names reflect exactly how the
color values get laid out in bitmap data.
2021-03-16 11:50:03 +01:00