aboutsummaryrefslogtreecommitdiff
path: root/fiv-browser.c
Commit message (Collapse)AuthorAgeFilesLines
* Use a GQueue for thumbnailingPřemysl Eric Janouch2022-08-091-18/+13
| | | | It's mildly less awkward to use, and fixes one complexity issue.
* Do produce thumbnails of thumbnails, but in memoryPřemysl Eric Janouch2022-08-091-11/+0
|
* Remove a stale commentPřemysl Eric Janouch2022-08-091-1/+0
|
* Support opening collections of filesPřemysl Eric Janouch2022-08-081-11/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Make Alt+Return work in the browser as wellPřemysl Eric Janouch2022-08-061-0/+10
|
* Use gdk_event_triggers_context_menu()Přemysl Eric Janouch2022-08-031-7/+11
|
* Centre ultra-wide items verticallyPřemysl Eric Janouch2022-07-311-1/+1
| | | | Overall, this looks better, even though we lose a baseline of sorts.
* Extend a commentPřemysl Eric Janouch2022-07-241-0/+1
|
* Work around broken Cairo Quartz backend on macOSPřemysl Eric Janouch2022-07-231-38/+62
| | | | Pre-render the padded pattern, costing us 2 megabytes of memory there.
* Only offer horizontal browser scrolling if usefulPřemysl Eric Janouch2022-07-211-13/+19
| | | | Motivated by small screens.
* Use GDK event handling return value constantsPřemysl Eric Janouch2022-07-211-28/+28
|
* Fix touch screen drag scrolling in the browserPřemysl Eric Janouch2022-07-211-7/+20
|
* Handle the long press gesture on browser itemsPřemysl Eric Janouch2022-07-211-0/+40
| | | | Unfortunately, this doesn't work on X11, though Wayland seems fine.
* Support horizontal scrolling in the browserPřemysl Eric Janouch2022-07-171-1/+8
| | | | An unlikely situation.
* Implement GtkScrollable in FivViewPřemysl Eric Janouch2022-07-171-6/+5
| | | | | This fixes rendering and positioning behaviour when dragging on X11, where we aim to use a native GdkWindow.
* Make the browser scroll with touchpad on WaylandPřemysl Eric Janouch2022-07-151-2/+36
| | | | And generally clear up scroll handling.
* Move the browser's popup menu to its own filePřemysl Eric Janouch2022-07-041-182/+8
|
* Employ embedded thumbnail extractionPřemysl Eric Janouch2022-06-081-12/+39
| | | | | | | | | | | | And store all direct thumbnailer output in the browser's cache-- low-quality thumbnails will always be regenerated, as is desired, and we'll reload faster on devices where we don't store thumbnails. This change improves latency at the cost of overall efficiency, seeing as images with thumbnails will be spent cycles on twice. Keeping this out-of-process avoids undesired lock-ups. Moreover, embedded thumbnails can be fairly expensive to decode.
* Add a command line option to extract thumbnailsPřemysl Eric Janouch2022-06-081-1/+2
| | | | | Only use LibRaw for now, which probably has the most impact using the least amount of effort.
* Clean upPřemysl Eric Janouch2022-06-051-2/+2
| | | | Use gchar when memory is allocated through GLib.
* Cache thumbnails across reloadsPřemysl Eric Janouch2022-06-041-7/+34
| | | | | | | | | This will speed up sort changes, as well as simple reloads, at the cost of an extra hash map from URIs to Cairo surface references. It seems unnecessary to provide an explicit option to flush this cache, as it may be cleared by changing either the directory or the current thumbnail size.
* Attach mtime to the browser's rescaled thumbnailsPřemysl Eric Janouch2022-06-041-1/+14
|
* Use the model's mtime for validating thumbnailsPřemysl Eric Janouch2022-06-041-7/+8
| | | | | Saves a syscall, generalizes fiv_thumbnail_lookup(), wastes a tiny bit of memory per entry.
* Expose the mtime of the model's entriesPřemysl Eric Janouch2022-06-041-6/+6
|
* Prevent thumbnailing from disrupting mouse clicksPřemysl Eric Janouch2022-02-241-9/+9
|
* Turn the browser into a DnD sourcePřemysl Eric Janouch2022-02-221-14/+99
| | | | | | The destination does all the work of handling file operations. Also, add some missing logic for horizontal scrolling.
* Use the X-GNOME-FullName desktop file keyPřemysl Eric Janouch2022-02-211-2/+3
|
* Avoid g_app_info_should_show() in context menusPřemysl Eric Janouch2022-02-211-4/+2
| | | | We were hiding our own JPEG cropper.
* Clean upPřemysl Eric Janouch2022-02-201-3/+3
|
* Make thumbnailers pass back raw imagesPřemysl Eric Janouch2022-02-201-30/+51
|
* Show application icons in context menu itemsPřemysl Eric Janouch2022-02-201-2/+20
|
* Open items on mouse button release, not pressPřemysl Eric Janouch2022-02-141-25/+31
| | | | | | | | At least the left and middle mouse buttons seem to behave similarly in other programs and systems. Context menus are opened on button release on Windows and with some GTK+ widgets (popovers in GtkPlacesSidebar).
* Scroll to selection when returning from the viewerPřemysl Eric Janouch2022-02-131-2/+15
|
* Make changing the browser zoom launch thumbnailersPřemysl Eric Janouch2022-02-131-0/+3
|
* Add keyboard shortcuts for thumbnail sizePřemysl Eric Janouch2022-01-231-1/+13
|
* Fully support GNOME's inode/directory mechanismPřemysl Eric Janouch2022-01-121-9/+23
|
* Avoid blank browser space when resizing the windowPřemysl Eric Janouch2022-01-121-2/+10
|
* Implement browser keyboard navigationPřemysl Eric Janouch2022-01-111-8/+166
|
* Support invoking a context menu from keyboardPřemysl Eric Janouch2022-01-111-4/+54
|
* Implement selection in the browserPřemysl Eric Janouch2022-01-111-12/+61
| | | | Keyboard controls are missing so far.
* Make the browser implement its own scrollablePřemysl Eric Janouch2022-01-101-5/+114
| | | | It's quite rough around the edges so far.
* Add an unnecessarily fancy about dialogPřemysl Eric Janouch2022-01-091-1/+1
|
* Parallelize thumbnail productionPřemysl Eric Janouch2022-01-081-47/+75
|
* Fix browsing the "resource" GVfs schemaPřemysl Eric Janouch2022-01-051-0/+4
|
* Rename the whole project shorterPřemysl Eric Janouch2022-01-051-1/+1
| | | | | | | There is no point in claiming speed, it turns out to be a strange focus to have, considering the amount of available innovations to make. The new name does not appear to be taken by anything important.
* Use a unified filesystem modelPřemysl Eric Janouch2022-01-051-61/+41
| | | | | | This removes some duplication of effort. So far, sorting adjustments are not exposed in the UI.
* A bunch of additional fixesPřemysl Eric Janouch2021-12-311-4/+5
|
* Minor URL-related fix-upsPřemysl Eric Janouch2021-12-311-13/+3
|
* Convert all loading to use GFilePřemysl Eric Janouch2021-12-301-15/+18
| | | | Now we're able to make use of GVfs, with some caveats.
* Fix thumbnailing cancellationPřemysl Eric Janouch2021-12-281-0/+5
| | | | Everything's according to GAsyncResult documentation.