Commit graph

31 commits

Author SHA1 Message Date
Karol Kosek
99d46caa28 LibGUI: Disable changing the view on error in the FilePicker
Prior to this change, changing the view would hide the error label
and show an empty directory.
2021-07-27 19:06:21 +02:00
Karol Kosek
80e3cf3ef7 LibGUI: Show an error message on open error in the FilePicker 2021-07-27 19:06:21 +02:00
Karol Kosek
232f0fb2d3 LibGUI: Add keyboard shortcuts to FilePicker
Taken from FileManager.
2021-07-25 17:56:51 +02:00
Andreas Kling
c7d891765c LibGfx: Use "try_" prefix for static factory functions
Also mark them as [[nodiscard]].
2021-07-21 18:02:15 +02:00
Marcus Nilsson
72a5347f91 LibGUI: Pass path to FileSystemModel when creating FilePicker
This saves a few lstat lookups since otherwise '/' is indexed before
set_path() is called. It also cleans up warnings if '/' is not
unveiled when opening FilePicker, like in WidgetGallery.
2021-07-18 00:55:04 +02:00
Karol Kosek
5c89305fc6 LibGUI: Don't clear textbox on save mode in FilePicker
This fixes a rather frustrating issue during saving a file,
when clicking on a folder (to change the path of saved file)
caused the filename to disappear from the text box.
2021-07-13 21:16:44 +02:00
Ali Mohammad Pur
51c2c69357 AK+Everywhere: Disallow constructing Functions from incompatible types
Previously, AK::Function would accept _any_ callable type, and try to
call it when called, first with the given set of arguments, then with
zero arguments, and if all of those failed, it would simply not call the
function and **return a value-constructed Out type**.
This lead to many, many, many hard to debug situations when someone
forgot a `const` in their lambda argument types, and many cases of
people taking zero arguments in their lambdas to ignore them.
This commit reworks the Function interface to not include any such
surprising behaviour, if your function instance is not callable with
the declared argument set of the Function, it can simply not be
assigned to that Function instance, end of story.
2021-06-06 00:27:30 +04:30
Andreas Kling
54f6ac1854 LibGUI: Don't mark "open" FilePicker as done if the file is not found
If you type in a filename that doesn't exist, show an error message
instead of closing the FilePicker "successfully."
2021-05-20 20:55:29 +02:00
Andreas Kling
9b9966b63b LibGUI: Make GUI::FilePicker handle absolute paths better
Some people apparently like to type in full absolute paths into the
filename box of GUI::FilePicker. So let's handle that as you'd expect
by using the full path as the selected path.
2021-05-20 20:55:29 +02:00
Andreas Kling
3773e72752 LibGUI: Tweak API for getting the selected path
Return a String instead of a LexicalPath. Also call it a path instead
of a file since that's what we're really returning.
2021-05-20 20:55:29 +02:00
Andreas Kling
7ae7170d61 Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
DexesTTP
91c210c39a LibGUI: Make common locations configurable 2021-04-26 18:57:57 +02:00
Brian Gianforcaro
1682f0b760 Everything: Move to SPDX license identifiers in all files.
SPDX License Identifiers are a more compact / standardized
way of representing file license information.

See: https://spdx.dev/resources/use/#identifiers

This was done with the `ambr` search and replace tool.

 ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-22 11:22:27 +02:00
Andreas Kling
a2baab38fd Everywhere: It's now "Foobar", not "FooBar", and not "foo bar"
I hereby declare these to be full nouns that we don't split,
neither by space, nor by underscore:

- Breadcrumbbar
- Coolbar
- Menubar
- Progressbar
- Scrollbar
- Statusbar
- Taskbar
- Toolbar

This patch makes everything consistent by replacing every other variant
of these with the proper one. :^)
2021-04-13 16:58:15 +02:00
FalseHonesty
2ed5d19407 LibGUI+HackStudio: Add way to tell FilePicker to open a folder
This now means that when trying to open a folder, one can click on
the folder and press open instead of having to actually step into
the desired folder. Of course, it also means it won't let you open
non-directories anymore.
2021-04-13 15:16:07 +02:00
Andreas Kling
8db4819271 LibGUI: Allow navigating into symlinked directories in FilePicker
If you double-click on a symlink to a directory while browsing with
a FilePicker, you most likely want to open the directory the symlink
points to, not open the symlink itself. So let's do that. :^)
2021-04-09 23:04:04 +02:00
Andreas Kling
da7dbc116e LibGUI: Use "Tray" look & feel for the common locations frame :^) 2021-04-09 21:53:43 +02:00
thankyouverycool
8afe013069 LibGUI:: Let open/save specify starting directory in FilePicker 2021-04-06 22:24:05 +02:00
Andreas Kling
c28a3a385b LibGUI: Tweak order of common location buttons in FilePicker
Let's put the root directory up top so the buttons are in order of
directory specificity.
2021-04-06 21:07:04 +02:00
Andreas Kling
33d9b592cd LibGUI: Make FilePicker's common location buttons checkable
We now use the checked state of these buttons to indicate that you are
in that specific folder. The checked state is updated automagically
no matter how you navigate the file system. :^)
2021-04-06 21:07:04 +02:00
Andreas Kling
25de655d43 LibGUI: Add shortcuts to common locations in GUI::FilePicker
This patch adds a handy set of buttons on the left hand side that can
take you to common locations such as:

- Your home directory
- Your desktop directory
- The root directory
2021-04-06 21:07:04 +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
Timothy Flynn
b88de8a91f LibGUI: Add transient option to show dotfiles in FilePicker
This is particularly useful when wanting to open files in ~/.config
from the Text Editor. The option is currently not persistent, but could
be hooked into File Manager's configuration.
2021-03-29 19:36:38 +02:00
Andreas Kling
5d180d1f99 Everywhere: Rename ASSERT => VERIFY
(...and ASSERT_NOT_REACHED => VERIFY_NOT_REACHED)

Since all of these checks are done in release builds as well,
let's rename them to VERIFY to prevent confusion, as everyone is
used to assertions being compiled out in release.

We can introduce a new ASSERT macro that is specifically for debug
checks, but I'm doing this wholesale conversion first since we've
accumulated thousands of these already, and it's not immediately
obvious which ones are suitable for ASSERT.
2021-02-23 20:56:54 +01:00
Andreas Kling
d9212bb2f4 LibGUI: Parent FilePicker toolbar buttons to the window
This makes the shortcuts actually work since unparented actions are
considered application-global, and we disable application-global
shortcuts while a modal dialog (like FilePicker) is up. This is pretty
counter-intuitive so I think there's room for API improvement here
but let's at least make Alt+Up work in FilePicker for now. :^)
2021-02-20 13:27:21 +01:00
Linus Groh
3583b62ad3 LibGUI: Swap order of InputBox value and parent window args
This is now consistent with the other dialog classes.
2021-02-20 12:19:46 +01:00
Andreas Kling
4f0be55770 LibGUI: Remove GUI::FilePicker::file_exists()
I have no idea why this existed but everyone should just use
Core::File::exists() instead. :^)
2021-02-19 23:46:54 +01:00
Andreas Kling
a8e0671344 LibGUI: Port GUI::FilePicker to GML and improve the layout
Also remove the image preview feature as it was rather ugly.
If we bring it back we should it should look good.
2021-02-19 23:03:47 +01:00
Nico Weber
97234a5b9d LibGUI: Switch cancel/confirm button order on file picker dialog
Most (all?) other dialogs in the system have the cancel button on the
right, so make the file picker consistent with the rest.
2021-01-26 21:02:46 +01:00
Nico Weber
09b881797f LibGUI: Tweak "Overwrite file?" dialog text to use one sentence per sentence 2021-01-26 21:02:46 +01:00
Andreas Kling
13d7c09125 Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Renamed from Libraries/LibGUI/FilePicker.cpp (Browse further)