26 Commits

Author SHA1 Message Date
Niklas Haas
2101b846c3
Implement file sorting in thumbnail view (#6449)
* Use mtime as fallback timestamp for files without EXIF data

As suggested in #6449, with date-based sorting it can be useful to have
at least *some* sort of time-relevant information for EXIF-less files,
to prevent them from falling back to getting sorted alphabetically all
the time.

This commit simply defaults the file timestamp to the file's mtime as
returned by g_stat. For annoying reasons, it doesn't suffice to merely
forward the timestamp to the FileData structs - we also need to keep
track of it inside FilesData to cover the case of a file with 0 frames
in it.

* Add DateTime to Thumbnail

Putting it here facilitate easier sorting without having to re-construct
the DateTime on every comparison.

To simplify things moving forwards, use the Glib::DateTime struct right
away. This struct also contains timezone information, but we don't
currently care about timezone - so just use the local timezone as the
best approximation. (Nothing currently depends on getting the timezone
right, anyway)

In addition to the above, this commit also changes the logic to allow
generating datetime strings even for files with missing EXIF (which
makes sense as a result of the previous commit allowing the use of mtime
instead).

* Implement file sorting in thumbnail view

For simplicity, I decided to only implement the attributes that I could
verily easily reach from the existing metadata exported by Thumbnail.
Ideally, I would also like to be able to sort by "last modified" but I'm
not sure of the best way to reach this from this place in the code.

It's worth pointing out that, with the current implementation, the list
will not dynamically re-sort itself until you re-select the sorting
method - even if you make changes to the files that would otherwise
affect the sorting (e.g. changing the rank while sorting by rank). One
might even call this a feature, not a bug, since it prevents thumbnails
from moving around while you're trying to re-label them. You can always
re-select "sort by ..." from the context menu to force a re-sort.

Fixes #3317

Co-authored-by: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com>
2023-01-02 21:27:12 +01:00
Thanatomanic
fc031ccb5a
Remove deprecated GTK3 code, fixes #6103 (#6113)
Replaces the following deprecated Gtk classes throughout the codebase by their non-deprecated counterparts. Style, HBox, VBox, HPaned, VPaned, HScrollbar, VScrollbar, VSeparator, HSeparator, Stock, Table, VScale and HScale.
2021-02-17 11:44:25 +01:00
Ingo Weyrich
0d2ffb5e61 more final fixes 2020-01-24 14:53:41 +01:00
Ingo Weyrich
9a4ade6f20 devirtualize method calls by declaring classes and methods final 2020-01-23 22:18:46 +01:00
Ingo Weyrich
79431ffa1d Some changes suggested by @Floessie 2019-11-26 19:42:48 +01:00
Ingo Weyrich
587652283d further reduction of include dependencies, also finalised some classes 2019-11-09 16:51:54 +01:00
Ingo Weyrich
e5258e6f60 reduce rtgui/inspector.h dependencies 2019-11-08 20:22:18 +01:00
Flössie
add5c790d6 #pragma once for our headers plus drive-by formatting 2019-10-31 10:20:50 +01:00
Morgan Hardwood
60b2196bce Updated gnu.org links to use HTTPS 2019-09-10 12:34:57 +02:00
Ingo Weyrich
c82aafb748 Merge branch 'dev' into filebrowser-catalog-speedups 2019-07-30 16:16:46 +02:00
Ingo Weyrich
6b868a8d4d Make thumbnail range-selection more similar to OS behaviour, fixes #5393 2019-07-30 13:22:15 +02:00
Ingo Weyrich
de963c54de Further speedups for filebrowser/catalog 2019-07-27 17:39:16 +02:00
Ingo Weyrich
bbdd774afb Further speedups for filebrowser 2019-07-17 21:29:24 +02:00
Hombre
434e121f99 Merge branch 'dev' into hidpi-icons 2018-11-29 00:15:57 +01:00
heckflosse
831e18ca45 Add override keyword. Thanks @Floessie 2018-11-22 16:19:16 +01:00
Hombre
785a0e6a46 Merge branch 'dev' into hidpi-icons 2018-10-25 20:43:41 +02:00
Hombre
4eb8a8f70c Adding HiDPI support (WIP) 2018-10-25 20:22:33 +02:00
Hombre
0d61f14bae Added support for GDK_SCROLL_SMOOTH in some widgets
see #4781, #4786
2018-09-15 21:14:48 +02:00
Hombre
965cadb52e New batch of update for issue 3446
This commit include :
- cleanup rtgui/retinex.cc file (constructor only) and switched to
Gtk::Grid (the new standard) instead of Gtk::Box. This however doesn't
solve the issue of the Transmission curves in the Retinex tool, with
wrong resize of the Frame when folding/unfolding the curves.
- better alignment of the Histogram panel now with 4px of padding on the
left and right side
- Threshold selector now use the Scale's Trough style to draw its box
and sliders
- Curve's background are darker and restricted to the curve diagram
- Diagonal and Flat curves has been converted to Gtk::Grid as well
- A special color is now used for unsensitive Threshold selector and
Sclaes widgets
- Gap around the main Window has been removed on windows to circumvent a
bug in Gtk3, but the window can now only be maximized (usual use case)
or resized vertically by the top border only.
- Buttons at the bottom of the Editor panel has now the same height
2016-11-01 20:39:41 +01:00
Adam Reichold
8151e0f5ce Merge branch 'master' into 'gtk3'
Most conflicts seemed to be simple enough. There were a lot of `append_text` to
`append` conversions for `Gtk::ComboBoxText`. The `PopUpCommon` class also saw
a lot of changes with non-trivial conflict resolutions.
2016-01-06 23:56:12 +01:00
Hombre
48f0225104 Fixing rendering loop in the FileBrowser, based on a suggestion from
Adam
2015-12-05 01:27:39 +01:00
Adam Reichold
df70d03e13 Try to refactor the behaviour of the thumb browser selection modes adding support for shift-and-control range-selection to select several independent ranges. 2015-11-29 00:17:17 +01:00
Adam Reichold
88ab82cee9 Factor out the three thumbnail browser selection modes without changing their behaviour. 2015-11-28 23:21:17 +01:00
Morgan Hardwood
56a0805bc7 Gtk3 by Hombre, issue 2807 2015-08-12 16:07:19 +02:00
DrSlony
0e0cfb9b25 Formatted all .cc and .h code in rtengine, rtexif and rtgui using astyle 2015-08-11 11:55:03 +02:00
torger
d5ca351c20 Issue 2134: removed obsolete raw highlight preservation setting from GUI (still left in procparams for backwards compatilibility) 2015-07-10 12:00:36 +02:00