summaryrefslogtreecommitdiff
path: root/src/Resources.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/Resources.vala')
-rw-r--r--src/Resources.vala59
1 files changed, 46 insertions, 13 deletions
diff --git a/src/Resources.vala b/src/Resources.vala
index feb568b..e26448a 100644
--- a/src/Resources.vala
+++ b/src/Resources.vala
@@ -87,7 +87,8 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public const string GO_PREVIOUS = "go-previous";
- public const string ICON_ABOUT_LOGO = "shotwell-street.jpg";
+ //public const string ICON_ABOUT_LOGO = "shotwell-street.jpg";
+ public const string ICON_ABOUT_LOGO = "about-aachen.jpg";
public const string ICON_GENERIC_PLUGIN = "generic-plugin.png";
public const string ICON_SLIDESHOW_EXTENSION_POINT = "slideshow-extension-point";
public const string ICON_RATING_REJECTED = "rejected.svg";
@@ -686,11 +687,10 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
private string END_MULTIDAY_DATE_FORMAT_STRING = null;
private string START_MULTIMONTH_DATE_FORMAT_STRING = null;
private string END_MULTIMONTH_DATE_FORMAT_STRING = null;
-
+
public void init () {
- var icon_theme = Gtk.IconTheme.get_default();
+ get_icon_theme_engine();
// load application-wide stock icons as IconSets
- icon_theme.append_search_path(AppDirs.get_resources_dir().get_child("icons").get_path());
generate_rating_strings();
}
@@ -766,6 +766,40 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
if (old_language != null) {
Environment.set_variable("LANGUAGE", old_language, true);
}
+
+ }
+
+ public enum UnitSystem {
+ IMPERIAL,
+ METRIC,
+ UNKNOWN
+ }
+
+ private string lc_measurement = null;
+ private UnitSystem unit_system = UnitSystem.UNKNOWN;
+ private const string IMPERIAL_COUNTRIES[] = {"unm_US", "es_US", "en_US", "yi_US" };
+
+ public UnitSystem get_default_measurement_unit() {
+ if (unit_system != UnitSystem.UNKNOWN) {
+ return unit_system;
+ }
+
+ lc_measurement = Environment.get_variable("LC_MEASUREMENT");
+ if (lc_measurement == null) {
+ lc_measurement = Intl.get_language_names()[0];
+ }
+
+ var index = lc_measurement.last_index_of_char('.');
+ if (index > 0) {
+ lc_measurement = lc_measurement.substring(0, index);
+ }
+
+ unit_system = UnitSystem.METRIC;
+ if (lc_measurement in IMPERIAL_COUNTRIES) {
+ unit_system = UnitSystem.IMPERIAL;
+ }
+
+ return unit_system;
}
/**
@@ -828,8 +862,8 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
return END_MULTIMONTH_DATE_FORMAT_STRING;
}
- public File get_ui(string filename) {
- return AppDirs.get_resources_dir().get_child("ui").get_child(filename);
+ public string get_ui(string filename) {
+ return "/org/gnome/Shotwell/ui/%s".printf(filename);
}
private const string NONINTERPRETABLE_BADGE_FILE = "noninterpretable-video.png";
@@ -838,8 +872,8 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public Gdk.Pixbuf? get_noninterpretable_badge_pixbuf() {
if (noninterpretable_badge_pixbuf == null) {
try {
- noninterpretable_badge_pixbuf = new Gdk.Pixbuf.from_file(AppDirs.get_resources_dir().get_child(
- "icons").get_child(NONINTERPRETABLE_BADGE_FILE).get_path());
+ var path = "/org/gnome/Shotwell/icons/" + NONINTERPRETABLE_BADGE_FILE;
+ noninterpretable_badge_pixbuf = new Gdk.Pixbuf.from_resource(path);
} catch (Error err) {
error("VideoReader can't load noninterpretable badge image: %s", err.message);
}
@@ -850,7 +884,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public Gtk.IconTheme get_icon_theme_engine() {
Gtk.IconTheme icon_theme = Gtk.IconTheme.get_default();
- icon_theme.append_search_path(AppDirs.get_resources_dir().get_child("icons").get_path());
+ icon_theme.add_resource_path("/org/gnome/Shotwell/icons");
return icon_theme;
}
@@ -893,18 +927,17 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
}
public Gdk.Pixbuf? load_icon(string name, int scale = DEFAULT_ICON_SCALE) {
- File icons_dir = AppDirs.get_resources_dir().get_child("icons");
-
Gdk.Pixbuf pixbuf = null;
try {
- pixbuf = new Gdk.Pixbuf.from_file(icons_dir.get_child(name).get_path());
+ var path = "/org/gnome/Shotwell/icons/%s".printf(name);
+ pixbuf = new Gdk.Pixbuf.from_resource(path);
} catch (Error err) {
critical("Unable to load icon %s: %s", name, err.message);
}
if (pixbuf == null)
return null;
-
+
return (scale > 0) ? scale_pixbuf(pixbuf, scale, Gdk.InterpType.BILINEAR, false) : pixbuf;
}