| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Navigation bar can be complex and comprises of several different elements.
Until now the navigation bar was almost hardcoded. We needed to separate
different types of navigation bar elements:
* NAV_BAR_FIRST
- the first element, usually denoting gallery root. This element takes
priority and is used when there are no other elements in the path.
* NAV_BAR_ELEM
- normal element used in the path between first and last elements.
* NAV_BAR_LAST
- ending element, guaranteed there's at least the NAV_BAR_FIRST element
before.
* NAV_BAR_CURRENT
- non-clickable informational element displaying the current page title.
Optional, in contrast to the former three defines.
* NAV_BAR_CURRENT_ROOT
- a special case of the latter one, displayed at the very root page.
Also optional, in that case the navigation bar would become empty.
|
|
This change makes thumbnail image sizes more flexible by explicitly
stating the particular image size is a thumbnail. And each thumbnail
image size can have different squared settings.
On the theme side it's now mandatory to specify which thumbnail size
to use (if applicable). This allows us to have different thumbnail styles
for index and album pages.
This commit also removes the <squared_thumbnails> tag from setup.xml
file but retains fallback for ver. 1 setup.xml files.
|
|
Let's make it mandatory for now.
|
|
Although probably not very common scenario, let's be consistent across
all defined image sizes and clearly state that an explicitly supplied
image file for an optional image size should carry the tag in order
not to get resized.
|
|
This is a new internal properties storage for attributes that can be
defined both in the item and album scope, with the item scope taking
priority.
The big advantage is a better distinguishment from an undefined, default
value. It also makes easier to retrieve attributes with properly defined
scope priorities.
|
|
There were lots of errors reported for the same issue recently, let's
silence some and only report image copy/resize errors.
|
|
To allow combined use of different cgg versions, user may provide
ver. 2 setup.xml file that takes priority over standard setup.xml
file.
This applies only to current working directory, not the files
placed in ~/.cgg or distributed as $PREFIX/share/cgg.
|
|
This commit makes setup files (setup.xml and referenced design
setup xml file) versioned and adds checks for correct versions.
If a newer versioned file is detected, warning is printed out
in assumption that a stray cgg version is used.
If the version information is missing or is lower than expected
version, files are read in legacy mode. Some values are left
on defaults and missing mandatory values are either read from
renamed keys or made up to suit current requirements.
This essentially brings back compatibility with old setup.xml
files that are usually part of galleries.
However, some values are hardcoded and should be kept in mind
to update and test the legacy mode along with future enhancements.
|
|
This is a file format break within development branch.
|
|
Some cameras have the Exif.CanonSi.0x000c tag present but set to zero
(raw value). Since this would result in some -128 deg. C, ignore such
values.
|
|
|
|
Similar to using supplied timestamps this is useful for fully manual
lenses that don't provide any information to the camera.
|
|
This removes associated ICC profiles and such, though we should
perform proper colorspace conversion to plain (s)RGB first.
|
|
Turned out the Exif.Image.DateTime key may contain original timestamp
in some cases, e.g. when using extracted EXIF data from original image.
Since we can't trust this key has ever been modified by a photo software,
let's modify it together with other keys. It comes with a cost of changing
correct timestamp but we can't really distinguish that.
|
|
The gthread library has been merged in glib and the threading API has changed
a little. Since changes are negligible, there's no point of losing support
of older glib releases, thus make it conditional.
|
|
https://live.gnome.org/GnomeGoals/ModernAutotools
Big thanks to Pavel Raiskup for autoconf hints
|
|
|
|
In simple crop square mode it's sometimes viable to specify position
of the square. This is vastly useful for portrait pictures so that you
don't crop the head off the body.
|
|
The 5 percent value (from each side) wasn't really doing any good...
Let me know if you actually liked it.
|
|
Hopefully some browsers would understand that.
http://microformats.org/wiki/existing-rel-values
|
|
Be more illustrative by highlighting the arguments.
|
|
If there's a tag defined but not used on replace table processing,
this option determines whether it should be written in the generated
file or ignored completely.
Turned on by default, this will save a few bytes. Use commandline option
'--debug-dont-strip-unused-tags' to turn it off, e.g. when debugging
template files.
|
|
When number of jobs is not specified, use autodetection of number of
processors available in the system. This requires glib-2.35.4, checked
during configure.
https://bugzilla.gnome.org/show_bug.cgi?id=614930
https://bugzilla.gnome.org/show_bug.cgi?id=687223
|
|
Weird things happened to me in the past while debugging, it's like the
lifetime of returned const strings is unknown and we can't really rely
on them, so let's duplicate them immediately. This will not however fully
solve the issue but rather minimizes the risk.
Need to investigate what's going on, don't really want to start using
mutexes to ensure full thread safety. Moreover we have separate objects
in each thread.
|
|
Turned out these two keys are commonly used as well.
|
|
|
|
Some RAW editors like Adobe products like to include XMP data. Let's
strip them all off (unless disabled).
|
|
Turned off by default, this will copy all data from supplied external
EXIF metadata file back to all generated image files. All user overrides
are still applied on top of it.
Another reason for turning this off is file size concern, target image
files would carry a lot more information that may not be always needed and
would increase total amount of data transferred.
|
|
There are more date-related IPTC tags in the specs but so far
I haven't seen anything else than Iptc.Application2.{Date,Time}Created
|
|
This essentially means faking the datetime, e.g. when you want to mask
original picture date.
This commit also changes little bit of datetime conversion, hopefully
fixing DST issues. Needs more testing.
|
|
Simple datetime shift, including EXIF data modification.
|
|
Also adds IS_PROTECTED define in local item scope.
|
|
This change allows using local defines related to each item in the album
or index page.
|
|
This allows us to retrieve unmodified block data that could be used
for conditional processing later.
|
|
|
|
Errors may very well appear on file closing.
TODO: Go through all other file writes and add more checks.
|
|
This adds support for simple password protected areas (albums and
all subalbums) through webserver HTTP authentication. CGG simply
generates .htaccess and password files and it's up to the user to
set up the rest on server side.
No UI changes at this point. Limited to one user per album for
the moment.
|
|
More and more we need to know local and public locations for various
features. Let's introduce general keys once and for all.
|
|
And change g_str_has_prefix() for key name comparison to g_str_equal()
to prevent potential prefix clashes.
|
|
|
|
For the moment we're using Exif.CanonSi.0x000c key from Exiv2 namespace
since it's an unknown tag to it. This may need little tweaking in the
future when proper naming becomes upstream.
|
|
This brings an ability to specify external file to read EXIF/IPTC
data from. The motivation was to work around RAW editors randomly
stripping some EXIF blocks.
|
|
|
|
Simple check whether the EXIF/IPTC key is available for the current
image. Precisely one argument is required, similar to the get_exif_value()
custom function, an Exiv2 metadata attribute string is expected.
This allows templates to change behaviour when certain metadata key
is not present (e.g. don't print the particular table line at all).
|
|
Specifying all arguments in endif() or else() for custom block
functions reduces code readability and debugging comfort.
Let's be less strict and don't require them.
A simple test for function name should be enough, moreover nesting
is not limited by this change at all.
|
|
Similar to replace-table custom functions, this brings an ability
to register custom block functions that can be called from templates
with variable arguments.
The syntax is as follows:
<!-- $(if (function_name(arg1, "arg2", 'arg3'))) -->
...
<!-- $(endif (function_name(arg1, "arg2", 'arg3'))) -->
An optional exclamation mark before the function name reverts the result
(negates) the predicate.
This allows template flexibility with respect to the currently processed image.
|
|
Please shout if it breaks compilation against older glib versions
|
|
Some of us like to have indented arguments from a function name.
|
|
This brings a new HAS_EXIF define which is present when
EXIF information are available. Templates have been modified
to inform user when not available.
The test for EXIF metadata presence is fairly basic, we only look
for aperture, focal length and exposure time attributes. This might
be a subject to change in the future.
|