summaryrefslogtreecommitdiff
path: root/src/vala/main.vala
blob: 8b24cd7b9c8af4fadf5089d9acf28bd01283f0ef (about) (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[CCode (cheader_filename = "config.h")]
extern const string MAIN_VALA;

namespace Disfluid {

	public class Application: Adw.Application {

		private string debug_info = "";

		public signal void new_debug_info (string debug_info);

		public Application () {
			Object (application_id: "eu.planete_kraus.Disfluid", flags: 0);

			GLib.SimpleAction show_about_dialog =
				new GLib.SimpleAction ("about", null);
			show_about_dialog.activate.connect (() => {
					this.hold ();
					var window = Disfluid.About.create ();
					window.application = this;
					window.debug_info = this.debug_info;
					this.new_debug_info.connect ((app, di) => {
							window.debug_info = di;
						});
					window.present ();
					this.release ();
				});
			this.add_action (show_about_dialog);
			GLib.SimpleAction run_unit_tests =
				new GLib.SimpleAction ("run-unit-tests", null);
			run_unit_tests.activate.connect (() => {
					this.hold ();
					var dialog = new Disfluid.UnitTestsReportDialog (this);
					dialog.new_debug_info.connect ((app, di) => {
							this.new_debug_info (di);
						});
					dialog.present ();
					this.release ();
				});
			this.add_action (run_unit_tests);
			this.activate.connect (() => {
					var main_window = new Disfluid.Window (this);
					main_window.present ();
				});
		}
	}
}

int
main (string[] argv)
{
	Disfluid.set_program_name (argv[0]);
	Intl.setlocale (LocaleCategory.ALL, "");
	Intl.bindtextdomain (Disfluid.Config.PACKAGE, Disfluid.relocate (Disfluid.Config.LOCALEDIR));
	Intl.textdomain (Disfluid.Config.PACKAGE);
	var app = new Disfluid.Application ();
	return app.run (argv);
}