Commit Graph

22 Commits

Author SHA1 Message Date
701846ab39
Support opening collections of files
Implement a process-local VFS to enable grouping together arbitrary
URIs passed via program arguments, DnD, or the file open dialog.

This VFS contains FivCollectionFile objects, which act as "simple"
proxies over arbitrary GFiles.  Their true URIs may be retrieved
through the "standard::target-uri" attribute, in a similar way to
GVfs's "recent" and "trash" backends.

(The main reason we proxy rather than just hackishly return foreign
GFiles from the VFS is that loading them would switch the current
directory, and break iteration as a result.

We could also keep the collection outside of GVfs, but that would
result in considerable special-casing, and the author wouldn't gain
intimate knowledge of GIO.)

There is no perceived need to keep old collections when opening
new ones, so we simply change and reload the contents when needed.

Similarly, there is no intention to make the VFS writeable.

The process-locality of this and other URI schemes has proven to be
rather annoying when passing files to other applications,
however most of the resulting complexity appears to be essential
rather than accidental.

Note that the GTK+ file chooser widget is retarded, and doesn't
recognize URIs that lack the authority part in the location bar.
2022-08-08 18:06:50 +02:00
5bae7c1bd2
Use gdk_event_triggers_context_menu() 2022-08-03 21:37:45 +02:00
0bfd3ad4ce
Fix touch screen scrolling on sidebar breadcrumbs
The drag gesture needs to be disabled there,
because touch drags fail in an unfortunate way.
2022-07-22 15:40:17 +02:00
c6096d05b5
Discard the inner sidebar's size request
It used to create a hole when there weren't enough bookmarks
to fill that space.
2022-07-14 12:47:35 +02:00
de27dce09c
Add a context menu to breadcrumbs 2022-07-04 20:44:48 +02:00
4ca8825e02
Clean up
Use gchar when memory is allocated through GLib.
2022-06-05 13:30:53 +02:00
3ddb0cf205
Expose the mtime of the model's entries 2022-06-04 14:50:56 +02:00
efc13db66e
Plug two memory leaks 2022-06-04 01:28:44 +02:00
1a8c461af2
Simplify sidebar DnD 2022-02-19 23:13:35 +01:00
13ae4810ca
Apply some bits of GNOME HIG 1.0 2022-01-13 21:38:32 +01:00
59af3b7e7b
Show sidebar DnD targets when dragging breadcrumbs 2022-01-07 07:41:05 +01:00
fc559c3d01
Work around an annoying GTK+ issue 2022-01-07 07:28:05 +01:00
8fdf9e2bc3
Turn breadcrumbs into DnD sources
Now it makes sense to keep that GtkSidebar placeholder item around.
2022-01-07 06:11:42 +01:00
235af37382
Handle middle mouse clicks on breadcrumbs
Also, don't act on button releases happening outside the widget.
2022-01-07 05:33:33 +01:00
06ab13797d
Add some padding to the location dialog
It looked awful with Ubuntu's theme.
2022-01-07 03:48:30 +01:00
bb67df716c
Mildly improve Ubuntu 20.04 compatibility 2022-01-06 08:39:33 +01:00
d889acc315
Show available protocols in open location dialog 2022-01-05 07:59:18 +01:00
244779bd8c
Factor out make_browser_sidebar()
It's a very mild improvement, but an improvement nonetheless.
2022-01-05 05:17:18 +01:00
b935b0baf8
Use a unified filesystem model
This removes some duplication of effort.

So far, sorting adjustments are not exposed in the UI.
2022-01-05 03:48:22 +01:00
5f8dc88fa7
Minor URL-related fix-ups 2021-12-31 00:41:04 +01:00
380ddd540b
Convert all loading to use GFile
Now we're able to make use of GVfs, with some caveats.
2021-12-30 22:32:29 +01:00
b78010ccb1
Adopt shorter identifiers
Also, slightly reformat the source code according to clang-format.
2021-12-18 07:04:01 +01:00