summaryrefslogtreecommitdiff
path: root/Applications
AgeCommit message (Collapse)Author
2020-12-20LibGUI: Make GUI::Label auto-sizing declarativeAndreas Kling
You can now set the "autosize" property on a GUI::Label and it will automatically update its width preference to fit the text.
2020-12-20LibGUI: Rename ProgressBar property caption => text and expose to GMLAndreas Kling
2020-12-20FileManager: Move the main window UI to GMLAndreas Kling
This was pretty straightforward although it does expose a bunch of missing functionality (mostly properties.)
2020-12-20LibGUI: Introduce GML - a simple GUI Markup Language :^)Andreas Kling
This patch replaces the UI-from-JSON mechanism with a more human-friendly DSL. The current implementation simply converts the GML into a JSON object that can be consumed by GUI::Widget::load_from_json(). The parser is not very helpful if you make a mistake. The language offers a very simple way to instantiate any registered Core::Object class by simply saying @ClassName @GUI::Label { text: "Hello friends!" tooltip: ":^)" } Layouts are Core::Objects and can be assigned to the "layout" property: @GUI::Widget { layout: @GUI::VerticalBoxLayout { spacing: 2 margins: [8, 8, 8, 8] } } And finally, child objects are simply nested within their parent: @GUI::Widget { layout: @GUI::HorizontalBoxLayout { } @GUI::Button { text: "OK" } @GUI::Button { text: "Cancel" } } This feels a *lot* more pleasant to write than the JSON we had. The fact that no new code was being written with the JSON mechanism was pretty telling, so let's approach this with developer convenience in mind. :^)
2020-12-19LibProtocol: Remove use of ByteBuffer::wrap() in protocol APIAndreas Kling
2020-12-17LibGUI: Move selection behavior from TableView up to AbstractViewAndreas Kling
Let's make SelectionBehavior a view concept where views can either select individual items (row, index) or whole rows. Maybe some day we'll do whole columns, but I don't think we need that now.
2020-12-16FileManager: Fix assertion when drag&dropping a file to the desktopAndreas Kling
2020-12-16IRCClient: Remove unnecessary temporary variable from connect()Conrad Pankoff
2020-12-16FileManager: Make symlink icons show up nicely in properties dialogAndreas Kling
2020-12-16FileManager+LibGUI: Draw the item text for desktop icons with shadowAndreas Kling
This makes it look nice regardless of wallpaper or background color.
2020-12-15FileManager: Simplify breadcrumb bar hook callbackAndreas Kling
Now that we store each partial path with the segments, we can just open up the path of the segment you clicked on.
2020-12-14CrashDaemon: Show source position in backtraceItamar
2020-12-14CrashDaemon: Add service that acts on new coredumpsItamar
Currently we only print a backtrace. In the future, we could do something nice in the GUI.
2020-12-14Loader: Stabilize loader & Use shared libraries everywhere :^)Itamar
The dynamic loader is now stable enough to be used everywhere in the system - so this commit does just that. No More .a Files, Long Live .so's!
2020-12-14Debugger: Add 'examine' commandItamar
This command outputs the memory contents of a given address as an unsigned int. LibDebug already had support for this, so just a matter of intergating it in sdb. Very useful :)
2020-12-14Debugger: Fix CLI parsing of breakpoint addressesItamar
Previously, we only accepted addresses that started with digits '0'-'9', which was not correct because we expect addresses to be in base 16. We now expect addresses to be written with '0x' prefix, e.g 0xdeadbeef.
2020-12-14FileManager: Use GUI::BreadcrumbBar :^)Andreas Kling
FileManager windows now alternate between the old-style location text box and a new-style breadcrumb bar. The location bar shows up when you try to edit the location (with Ctrl+L) and disappears once the textbox loses focus. The textbox and breadcrumb bar are mutually exclusive to keep it tidy.
2020-12-13LibCore: Make IODevice::read_line() return a StringAndreas Kling
Almost everyone using this API actually wanted String instead of a ByteBuffer anyway, and there were a bunch of slightly different ways clients would convert to String. Let's just cut out all the confusion and make it return String. :^)
2020-12-13DisplaySettings: Allow unsetting the wallpaperAndreas Kling
It was previously not possible to unset the wallpaper once set, since loading an image from the path "" would always fail.
2020-12-13DisplaySettings: Remove a bunch of unnecessary "this->"Andreas Kling
2020-12-13DisplaySettings: Improve contrast of screen resolution labelAndreas Kling
Since we're putting this on top of the wallpaper preview, let's make it white with a black shadow to ensure that it's always readable.
2020-12-13Welcome: Fix reading of welcome.txt fileLinus Groh
The buffer returned by read_line() used to be null-terminated, however that was changed in 129a58a, resulting in some line strings containing garbage data. Explicitly telling the String constructor the buffer's size fixes that. Fixes #4397.
2020-12-12Spreadsheet: Reduce top bar default heightLinus Groh
50px is a bit extreme, it's down to 26px high now. Still a bit larger than a regular GUI::TextBox but enough to look decent, even with the help button in there. Closes #3905.
2020-12-11FileManager: Added context menu for right-clicks on desktop icons.Zac
Moved the same copy/paste/properties/delete functionality used in the run_in_windowed_mode() method to the run_in_desktop_mode() method.
2020-12-11FileManager: focus_dependent_delete_action is correctly enabled/disabledZac
The focus_dependent_delete_action that sits in the file manager's toolbar would always remain enabled, even if nothing was selected, activating it if nothing was selected would then crash the application. The action is now correctly enabled/disabled, but due to the way selection works in TreeViews, something is always selected, what really matters is if the TreeView has something selected, and it has focus. As it currently stands, there is no way to know when the TreeView's is_focused status changes. In order for this to work I added a callback to the Widget class which fires when a widget receives or looses focus. In that callback, the focus_dependent_delete_action's enabled value is recalculated.
2020-12-11FileManager: TreeView accepts drags from the DirectoryView.Zac
2020-12-09DisplaySettings: Ensure wallpaper mode is always initializedLinus Groh
If loading the WindowServer config fails or we get a value other than "simple", "center", "tile", or "scaled", DisplaySettings would crash when changing the wallpaper image. Fixes #4360.
2020-12-08Browser: Don't focus the bookmarks bar overflow button on clickAndreas Kling
2020-12-08FileManager: Fix TreeView collapsing on file system changes (#4348)Zac
TreeViews using FileSystemModels collapse whenever the file system is changed in anyway. This includes creating, dragging, deleting or pasting any files/folders. This commit updates the refresh_tree_view() lambda, which seems to have stopped working at some point, and calls it whenever any of the actions mentioned above are activated.
2020-12-07Browser: Don't focus bookmarks toolbar buttons when clicking themAndreas Kling
They should only receive focus when tabbed to. This matches what we already do for other toolbar buttons.
2020-12-06Spreadsheet: Use JS::Parser::print_errors() for reporting syntax errorsLinus Groh
2020-12-03SoundPlayer: Accept drop eventsJulian Offenhäuser
Files can now be dragged into the window and loading errors will be handled more gracefully.
2020-12-02Applications+Userland: Switch to new Audio::Loader APIJulian Offenhäuser
2020-12-02SystemMonitor: Add Interrupts tabLuke
I was looking through the proc folder, noticed this and thought "why not?" It's setup as an updating model because of the call count, however, the call count doesn't appear to be working right now.
2020-12-01FileManager: Call on_selection_change with the correct viewZac
2020-11-30Spreadsheet: Invert the drag-selection triggerAnotherTest
Make drag-selection the default behaviour, allowing (almost) any part of the cell to initiate a select. a small 5x5 rect at the corners of a cell can be used to initiate a drag-copy instead. Fixes #4268.
2020-11-30Spreadsheet: Implement drag-to-selectAnotherTest
To initiate drag-to-select, the user can move the mouse to near the edge of a cell, and click-and-drag when the cursor changes to a crosshair. Fixes #4167.
2020-11-30Spreadsheet: Clear callbacks on persistent widgets before tearing tabs downAnotherTest
Otherwise changes to the widgets would cause all sorts of updates on half-deleted cells. Fixes #4171.
2020-11-30Spreadsheet: Clear the cell and commit when the delete key is pressedAnotherTest
...as the initial stroke that begins an edit. This is still imperfect, as it completely ignores selections. Fixes #4168 (sort of).
2020-11-30Spreadsheet: Implement infinit-scroll for columnsAnotherTest
This naturally also implements multi-char columns, and also integrates it into the js runtime (such columns can be named in ranges too).
2020-11-30Spreadsheet: Implement infinite-scroll for rowsAnotherTest
Every time the scrollbar reaches the end, we append 100 more rows (seamlessly!). As a result of defaulting to 100 rows, we can also save with the smallest number of rows required. This partially deals with #4170.
2020-11-30Spreadsheet: Force-update the spreadsheet widget after pastingAnotherTest
Just updating the sheet will not cause a widget update.
2020-11-30Terminal: Wait on the utmpupdate process to finishTom
This solves utmpupdate zombies hanging around until Terminal terminates.
2020-11-29Terminal: Allow the user to configure the maximum history sizeAnotherTest
Closes #4238.
2020-11-27TextEditor: Add button to match regular expression during searchEmanuel Sprung
2020-11-24Spreadsheet: Allow copying from one cell to manyAnotherTest
This simply fils the target selection with the source cell. Fixes #4010.
2020-11-24Spreadsheet: Add support for importing from and exporting to CSV filesAnotherTest
Closes #4136.
2020-11-24Spreadsheet: Add a CSV reader and writerAnotherTest
This is not utilised yet.
2020-11-23Calculator: Changed 'CE' Button from 'Clear Error' To 'Clear Entry'Zac
The CE button on the windows calculator was used to clear the current entry rather than the current error. This commit changes the calculator's CE button such that it now clears the current value being entered into the keypad and errors are now cleared at the end of every successful operation.
2020-11-22PixelPaint: Use UndoStack instead of HistoryBenJilks
This allows to share more code with other undo systems.