aboutsummaryrefslogtreecommitdiff
path: root/main/src/main.vala
blob: d683b5d80bfa5cd9687546754193b2bfc52608af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using Dino.Entities;
using Dino.Ui;

extern const string GETTEXT_PACKAGE;
extern const string LOCALE_INSTALL_DIR;

namespace Dino {

void main(string[] args) {

    try{
        string? exec_path = args.length > 0 ? args[0] : null;
        SearchPathGenerator search_path_generator = new SearchPathGenerator(exec_path);
        Intl.textdomain(GETTEXT_PACKAGE);
        internationalize(GETTEXT_PACKAGE, search_path_generator.get_locale_path(GETTEXT_PACKAGE, LOCALE_INSTALL_DIR));

        Gtk.init();
        Dino.Ui.Application app = new Dino.Ui.Application() { search_path_generator=search_path_generator };
        Plugins.Loader loader = new Plugins.Loader(app);
        if (Environment.get_variable("DINO_PLUGINS_LOAD_ALL") == "1") {
            loader.load_all();
        }
        loader.load_type(typeof(Plugins.Rtp.Plugin));
        loader.load_type(typeof(Plugins.OpenPgp.Plugin));
        loader.load_type(typeof(Plugins.Omemo.Plugin));

        app.run(args);
        loader.shutdown();
    } catch (Error e) {
        warning(@"Fatal error: $(e.message)");
    }
}

}