Skip to content
API Documentation
BastionGuard™
ResourceHelper Class Reference
Inheritance diagram for ResourceHelper:

Static Public Member Functions

static string resource_prefix ()
static string resource_uri (string rel)
static bool resource_exists (string rel)
static Gee.ArrayList< string > base_dirs ()
static ? string resolve_file (string rel)
static ? string resolve_css (string name)
static ? string resolve_icon_file (string icon_name)

Detailed Description

Definition at line 4 of file ResourceHelper.vala.

Member Function Documentation

◆ base_dirs()

Gee.ArrayList< string > ResourceHelper.base_dirs ( )
inlinestatic

Definition at line 23 of file ResourceHelper.vala.

23 {
24 var dirs = new Gee.ArrayList<string>();
25
26 string? env = Environment.get_variable("BASTIONGUARD_DATA");
27 if (env != null && env.length > 0) dirs.add(env);
28
29 dirs.add("/usr/share/bastionguard-backup");
30 dirs.add("/usr/local/share/bastionguard-backup");
31 dirs.add("/usr/share/BastionGuard/data");
32 dirs.add("/usr/local/share/BastionGuard/data");
33
34 string user_data = Environment.get_user_data_dir();
35 dirs.add(GLib.Path.build_filename(user_data, "bastionguard-backup"));
36 dirs.add(GLib.Path.build_filename(user_data, "BastionGuard", "data"));
37
38 string cwd = Environment.get_current_dir();
39 dirs.add(GLib.Path.build_filename(cwd, "files"));
40 dirs.add(GLib.Path.build_filename(cwd, "icons"));
41 dirs.add(GLib.Path.build_filename(cwd, "src", "share", "bastionguard-backup"));
42 dirs.add(GLib.Path.build_filename(cwd, "src", "share", "bastionguard-backup", "images"));
43 dirs.add(GLib.Path.build_filename(cwd, "src", "share", "pixmaps"));
44 dirs.add(GLib.Path.build_filename(cwd, "src", "share", "icons"));
45 dirs.add(GLib.Path.build_filename(cwd, "src", "share"));
46 dirs.add(GLib.Path.build_filename(cwd, "share"));
47 return dirs;
48 }

Referenced by resolve_file().

◆ resolve_css()

? string ResourceHelper.resolve_css ( string name)
inlinestatic

Definition at line 58 of file ResourceHelper.vala.

58 {
59 string[] candidates = {
60 name,
61 GLib.Path.build_filename("css", name),
62 GLib.Path.build_filename("data", name)
63 };
64 foreach (var rel in candidates) {
65 var p = resolve_file(rel);
66 if (p != null) return p;
67 }
68 return null;
69 }
static ? string resolve_file(string rel)

References resolve_file().

Referenced by MainWindow.load_css().

◆ resolve_file()

? string ResourceHelper.resolve_file ( string rel)
inlinestatic

Definition at line 50 of file ResourceHelper.vala.

50 {
51 foreach (var search_root in base_dirs()) {
52 var p = GLib.Path.build_filename(search_root, rel);
53 if (FileUtils.test(p, FileTest.EXISTS)) return p;
54 }
55 return null;
56 }
static Gee.ArrayList< string > base_dirs()

References base_dirs().

Referenced by resolve_css(), and resolve_icon_file().

◆ resolve_icon_file()

? string ResourceHelper.resolve_icon_file ( string icon_name)
inlinestatic

Definition at line 71 of file ResourceHelper.vala.

71 {
72 string[] exts = { ".png", ".svg", ".jpg", ".gif" };
73 string[] rels = {
74 GLib.Path.build_filename("images", icon_name),
75 GLib.Path.build_filename("pixmaps", icon_name),
76 GLib.Path.build_filename("icons", icon_name),
77 icon_name
78 };
79 foreach (var rel0 in rels) {
80 if (rel0.has_suffix(".png") || rel0.has_suffix(".svg") || rel0.has_suffix(".jpg") || rel0.has_suffix(".gif")) {
81 var p = resolve_file(rel0);
82 if (p != null) return p;
83 } else {
84 foreach (var ext in exts) {
85 var p = resolve_file(rel0 + ext);
86 if (p != null) return p;
87 }
88 }
89 }
90
91 string[] abs = {
92 GLib.Path.build_filename("/usr/share/bastionguard-backup/images", icon_name + ".png"),
93 GLib.Path.build_filename("/usr/share/bastionguard-backup/images", icon_name + ".svg"),
94 GLib.Path.build_filename("/usr/local/share/bastionguard-backup/images", icon_name + ".png"),
95 GLib.Path.build_filename("/usr/local/share/bastionguard-backup/images", icon_name + ".svg"),
96 GLib.Path.build_filename("/usr/share/pixmaps", icon_name + ".png"),
97 GLib.Path.build_filename("/usr/local/share/pixmaps", icon_name + ".png"),
98 GLib.Path.build_filename("/usr/share/icons/hicolor/128x128/apps", icon_name + ".png"),
99 GLib.Path.build_filename("/usr/share/icons/hicolor/96x96/apps", icon_name + ".png"),
100 GLib.Path.build_filename("/usr/share/icons/hicolor/64x64/apps", icon_name + ".png"),
101 GLib.Path.build_filename("/usr/share/icons/hicolor/48x48/apps", icon_name + ".png"),
102 GLib.Path.build_filename("/usr/share/icons/hicolor/32x32/apps", icon_name + ".png"),
103 GLib.Path.build_filename("/usr/share/icons/hicolor/24x24/apps", icon_name + ".png"),
104 GLib.Path.build_filename("/usr/share/icons/hicolor/22x22/apps", icon_name + ".png"),
105 GLib.Path.build_filename("/usr/share/icons/hicolor/16x16/apps", icon_name + ".png"),
106 GLib.Path.build_filename("/usr/local/share/icons/hicolor/128x128/apps", icon_name + ".png")
107 };
108 foreach (var p in abs) if (FileUtils.test(p, FileTest.EXISTS)) return p;
109 return null;
110 }

References resolve_file().

Referenced by IconManager.lookup().

◆ resource_exists()

bool ResourceHelper.resource_exists ( string rel)
inlinestatic

Definition at line 14 of file ResourceHelper.vala.

14 {
15 try {
16 var file = File.new_for_uri(resource_uri(rel));
17 return file.query_exists();
18 } catch (Error e) {
19 return false;
20 }
21 }
static string resource_uri(string rel)

References Error, and resource_uri().

Referenced by MainWindow.load_css(), and IconManager.lookup().

◆ resource_prefix()

string ResourceHelper.resource_prefix ( )
inlinestatic

Definition at line 6 of file ResourceHelper.vala.

6 {
7 return "/org/bastionguard/backup";
8 }

Referenced by MainWindow.load_css(), IconManager.lookup(), and resource_uri().

◆ resource_uri()

string ResourceHelper.resource_uri ( string rel)
inlinestatic

Definition at line 10 of file ResourceHelper.vala.

10 {
11 return "resource://" + resource_prefix() + "/" + rel;
12 }
static string resource_prefix()

References resource_prefix().

Referenced by resource_exists().


The documentation for this class was generated from the following file: