summaryrefslogtreecommitdiff
path: root/Applications/FileManager
AgeCommit message (Collapse)Author
2020-08-14LibGUI: Make ModelSelection non-copyable and non-movableAndreas Kling
These are meant to be attached to an AbstractView at all times.
2020-08-13LibGUI: Rename ModelClient::on_model_update() => model_did_update()Andreas Kling
This follows the typical client callback naming scheme used elsewhere and doesn't collide with the "on_foo" Function hook convention.
2020-08-13LibGUI: Remove Model::sibling() since it's the same as index()Andreas Kling
... I'm not sure what the idea was here, but since these functions do the same thing, let's only have index().
2020-08-13LibGUI: Rename SortingProxyModel "target" to "source" insteadAndreas Kling
2020-08-12FileManager: Remove one direct call to FileSystemModel from outsideAndreas Kling
We should stop accessing the FileSystemModel outside DirectoryView. This whole app is pretty badly factored, due to LibGUI being in its infancy while it first developed.
2020-08-12FileManager: Use FileIconProvider in the properties dialogAndreas Kling
This removes the need for the properties dialog to access the internal data model used by the directory view.
2020-08-10FileManager: Make the desktop process show as "FileManager (Desktop)"Andreas Kling
2020-08-04FileManager: Disown spawned processesAndreas Kling
2020-08-01FileManager: Build new path of renamed files correctlyTill Mayer
Fixes #2932.
2020-07-23LibGUI: Rename GUI::Image => GUI::ImageWidgetAndreas Kling
"Image" was a bit too vague, "ImageWidget" is obviously a widget of some sort.
2020-07-19FileManager: Show a special icon for the home directoryAndreas Kling
The home-directory icon now shows up in the FileManager title bar, and alongside the path in the location textbox. Very nice. :^)
2020-07-19LibGUI+FileManager: Add setting for showing/hiding dotfilesAndreas Kling
GUI::FileSystemModel can now be told to display (or not display) files whose name start with a dot (other than . and ..)
2020-07-19FileManager: Use new TextBox::DisplayOnly mode in the properties dialogAndreas Kling
Use this instead of disabling the name TextBox. This looks a little bit nicer than the grayed-out appearance. :^)
2020-07-16LibGUI: Add InputBox::show with required parent window argumentTom
Similar to MessageBox::show, this encourages passing in a window.
2020-07-16LibWeb: Require parent window argument for MessageBoxTom
Since the vast majority of message boxes should be modal, require the parent window to be passed in, which can be nullptr for the rare case that they don't. By it being the first argument, the default arguments also don't need to be explicitly stated in most cases, and it encourages passing in a parent window handle. Fix up several message boxes that should have been modal.
2020-07-15FileManager: Make Ctrl-L focus location bar, and change shortcuts for ↵Nico Weber
changing view Ctrl-L focuses the location bar in all file managers I know of, and does so in SerenityOS's browser too. It should work in SerenityOS's file manager as well. Unfortunately, Ctrl-L was already "View List", so change the shortcuts of all the view modes to Ctrl-1/2/3 which is what several other file managers use. (I tried Ctrl-Shift-1/2/3 which is what Windows Explorer uses after 8.1, but it didn't Just Work, and Ctrl-1/2/3 are currently free anyways. If we ever want to use them for tabs or whatever, we can change the view shortcuts then.)
2020-07-15LibGUI+FileManager: Fix forgetting to map sorting proxy model indexesSergey Bugaev
Also assert indexes are valid in a few more places. Finally fixes https://github.com/SerenityOS/serenity/issues/1440 and https://github.com/SerenityOS/serenity/issues/2787 :^)
2020-07-15FileManager: Add a new file action to FileManager GUIStijn
This action was already present when running FileManager in desktop mode, but now it's also available in windowed mode. :)
2020-07-15FileManager: Allow double-clicking applications againTom
By adding a special LauncherType::Application we can still get meta data for the application, but also know that we should consider executing that binary as the default action. LaunchServer will not do this for us, as it should probably not be allowed to run arbitrary binaries that haven't been registered as handlers.
2020-07-15FileManager: Add "Open with" menu if alternative applications are availableTom
2020-07-13LibGUI: Add ModelClient abstract class and allow registering clientsTom
This solves a problem where the SortingProxyModel doesn't receive the on_update call because other code overwrote the handler later on.
2020-07-11FileManager: Specify "Open in Text Editor" action as default in context menuTom
Since double-clicking the item would trigger the "Open in Text Editor" action, specify it as the default action when displaying the context menu.
2020-07-10FileManager: Show an open folder icon for the selected directorythankyouverycool
The currently selected directory now displays an open folder icon in the directory tree.
2020-07-04TextEditor: Tweak 16x16 iconAndreas Kling
In keeping with the slightly-higher-contrast theme.
2020-07-04LibGUI: Turn GUI::Application::the() into a pointerAndreas Kling
During app teardown, the Application object may be destroyed before something else, and so having Application::the() return a reference was obscuring the truth about its lifetime. This patch makes the API more honest by returning a pointer. While this makes call sites look a bit more sketchy, do note that the global Application pointer only becomes null during app teardown.
2020-07-04LibGUI: Make GUI::Application a Core::ObjectAndreas Kling
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
2020-07-03FileManager: Add "Open Terminal here..." action to menu and toolbarLinus Groh
Currently it's only available in the context menu, which isn't quite obvious.
2020-06-29FileManager: Show a folder icon in the location text box :^)Andreas Kling
2020-06-29Everywhere: Replace some uses of fork/exec with posix_spawnNico Weber
It's less code, and it's potentially more efficient once posix_spawn is a real syscall.
2020-06-18FileManager: Small improvements to PropertyDialog's apply button logicTill Mayer
The apply button used to be enabled directly after opening the dialog. Changes in the permissions now enable/disable the apply button as well.
2020-06-18FileManager: Replace Label with Image component to show iconsHüseyin ASLITÜRK
2020-06-17FileManager: Use Core::File::read_link()Sergey Bugaev
2020-05-29Meta: Add a script check the presence of "#pragma once" in header filesEmanuele Torre
.. and make travis run it. I renamed check-license-headers.sh to check-style.sh and expanded it so that it now also checks for the presence of "#pragma once" in .h files. It also checks the presence of a (single) blank line above and below the "#pragma once" line. I also added "#pragma once" to all the files that need it: even the ones we are not check. I also added/removed blank lines in order to make the script not fail. I also ran clang-format on the files I modified.
2020-05-26AK: Rename FileSystemPath -> LexicalPathSergey Bugaev
And move canonicalized_path() to a static method on LexicalPath. This is to make it clear that FileSystemPath/canonicalized_path() only perform *lexical* canonicalization.
2020-05-26Userland et al: Pledge sigaction when neededSergey Bugaev
* In some cases, we can first call sigaction()/signal(), then *not* pledge sigaction. * In other cases, we pledge sigaction at first, call sigaction()/signal() second, then pledge again, this time without sigaction. * In yet other cases, we keep the sigaction pledge. I suppose these could all be migrated to drop it or not pledge it at all, if somebody is interested in doing that.
2020-05-19FileManager: Remove empty public access modifier from DesktopWidgetLinus Groh
2020-05-18FileManager: Make the location box 2px tallerAndreas Kling
2020-05-16FileManager+LibGUI+Userland: Switch clipboard to MIME typesSergey Bugaev
We will now actually use MIME types for clipboard. The default type is now "text/plain" (instead of just "text"). This also fixes some issues in copy(1) and paste(1).
2020-05-14Clipboard: Move the system clipboard to a dedicated service process :^)Andreas Kling
This commit moves the clipboard from WindowServer into a new Clipboard service program. Clipboard runs as the unprivileged "clipboard" user and with a much tighter pledge than WindowServer. To keep things working as before, all GUI::Application users now make a connection to Clipboard after making the connection to WindowServer. It could be interesting to connect to Clipboard on demand, but right now that would necessitate expanding every GUI app's pledge to include "unix" and also unveiling the clipboard portal, which I prefer not to.
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-12LibGUI: Include keyboard modifier state with button on_click callsAndreas Kling
This will allow you us to implement special behavior when Ctrl+clicking a button.
2020-05-09LibDesktop: Switch to LaunchServer for DesktopServices::openNicholas Hollett
Moves DirectoryServices out of LibCore (because we need to link with LibIPC), renames it Desktop::Launcher (because Desktop::DesktopServices doesn't scan right) and ports it to use the LaunchServer which is now responsible for starting programs for a file.
2020-05-03AK+FileManager: Move out human_readable_size to AK::NumberFormatAnotherTest
2020-05-02LibGUI: The UI calls it 'Icon view', fix the name in the codeBen Wiederhake
2020-04-30FileManager: Realize the initial path when opened from the command lineAndreas Kling
2020-04-29FileManager: Fix crash when file properties has unnamed UID or GIDAndreas Kling
It's perfectly valid for a file to be owned by a UID or GID with no corresponding entry in /etc/passwd or /etc/group respectively. Fixes #1988.
2020-04-29DisplaySettings: Rename from DisplayPropertiesAndreas Kling
2020-04-28FileManager: Disable PropertiesDialog custom rename disabling logicAndres Vieira
TextBox already handles well its disabled state so it's no use to have a way to prevent it from PropertiesDialog, too.
2020-04-28FileManager: Disable permission checkboxes if user is not owner of pathAndres Vieira
2020-04-28FileManager: Deny rename in PropertiesDialog if user can't write in pathAndres Vieira
The FileManager PropertiesDialog always let the user change the name of files and folders to then be prompted with write permissions error. Now it checks for write permissions on the containing folder so it can "disable" the TextBox input. We can't really disable TextBox right now, hence the quotes.