diff --git a/data/dev.mnts.ModManager.gschema.xml b/data/dev.mnts.ModManager.gschema.xml
deleted file mode 100644
index 8f5fde7..0000000
--- a/data/dev.mnts.ModManager.gschema.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/data/dev.mnts.ModManager.gschema.xml.in b/data/dev.mnts.ModManager.gschema.xml.in
new file mode 100644
index 0000000..a80203b
--- /dev/null
+++ b/data/dev.mnts.ModManager.gschema.xml.in
@@ -0,0 +1,9 @@
+
+
+
+
+ {}
+ Dictionary of games being managed. First string is game name second is path to mods folder.
+
+
+
diff --git a/data/dev.mnts.ModManager.metainfo.xml.in b/data/dev.mnts.ModManager.metainfo.xml.in
index a3e141e..12e17a3 100644
--- a/data/dev.mnts.ModManager.metainfo.xml.in
+++ b/data/dev.mnts.ModManager.metainfo.xml.in
@@ -1,6 +1,6 @@
- dev.mnts.ModManager.desktop
+ @APP_ID@
CC0-1.0
GPL-3.0-or-later
diff --git a/data/icons/meson.build b/data/icons/meson.build
index fdd4318..9b5e4f1 100644
--- a/data/icons/meson.build
+++ b/data/icons/meson.build
@@ -1,5 +1,3 @@
-application_id = 'dev.mnts.ModManager'
-
scalable_dir = 'hicolor' / 'scalable' / 'apps'
install_data(
scalable_dir / ('@0@.svg').format(application_id),
diff --git a/data/meson.build b/data/meson.build
index 545b64d..488d00b 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,5 +1,9 @@
+configuration = configuration_data()
+configuration.set('APP_ID', application_id)
+configuration.set('GETTEXT_PACKAGE', gettext_package)
+
desktop_file = i18n.merge_file(
- input: 'dev.mnts.ModManager.desktop.in',
+ input: configure_file(input: 'dev.mnts.ModManager.metainfo.xml.in', output: '@BASENAME@.in', configuration: configuration),
output: 'dev.mnts.ModManager.desktop',
type: 'desktop',
po_dir: '../po',
@@ -13,7 +17,7 @@ if desktop_utils.found()
endif
appstream_file = i18n.merge_file(
- input: 'dev.mnts.ModManager.metainfo.xml.in',
+ input: configure_file(input: 'dev.mnts.ModManager.metainfo.xml.in', output: '@BASENAME@.in', configuration: configuration),
output: 'dev.mnts.ModManager.metainfo.xml',
po_dir: '../po',
install: true,
@@ -24,7 +28,12 @@ appstreamcli = find_program('appstreamcli', required: false, disabler: true)
test('Validate appstream file', appstreamcli,
args: ['validate', '--no-net', '--explain', appstream_file])
-install_data('dev.mnts.ModManager.gschema.xml',
+
+gschema = configure_file(
+ input: '@0@.gschema.xml.in'.format(base_id),
+ output: '@0@.gschema.xml'.format(application_id),
+ configuration: configuration,
+ install: true,
install_dir: get_option('datadir') / 'glib-2.0' / 'schemas'
)
diff --git a/dev.mnts.ModManager.json b/dev.mnts.ModManager.json
index 6f4943b..9756ddc 100644
--- a/dev.mnts.ModManager.json
+++ b/dev.mnts.ModManager.json
@@ -51,7 +51,7 @@
"sources": [
{
"type": "git",
- "url": "file:///home/tine/projects"
+ "url": "."
}
]
}
diff --git a/meson.build b/meson.build
index f9ddc38..9017219 100644
--- a/meson.build
+++ b/meson.build
@@ -7,7 +7,6 @@ project('mod-manager', 'rust',
i18n = import('i18n')
gnome = import('gnome')
-
base_id = 'dev.mnts.ModManager'
gettext_package = meson.project_name()
diff --git a/src/application.rs b/src/application.rs
index 94b8d87..cf3153a 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -22,11 +22,11 @@ use adw::subclass::prelude::*;
use gtk::prelude::*;
use gtk::{gio, glib};
+use crate::config::APP_ID;
use crate::config::VERSION;
-use crate::config::APP_ID;
-use crate::windows::main::Welcome;
-use crate::windows::main::ModManagerWindowMain;
use crate::settings::ModManagerSettings;
+use crate::windows::main::ModManagerWindowMain;
+use crate::windows::main::Welcome;
mod imp {
@@ -89,7 +89,7 @@ glib::wrapper! {
}
impl ModManagerApplication {
- pub fn new( flags: &gio::ApplicationFlags) -> Self {
+ pub fn new(flags: &gio::ApplicationFlags) -> Self {
glib::Object::builder()
.property("application-id", APP_ID)
.property("flags", flags)
@@ -121,4 +121,3 @@ impl ModManagerApplication {
about.present();
}
}
-
diff --git a/src/dev.mnts.ModManager.gschema.xml.in b/src/dev.mnts.ModManager.gschema.xml.in
deleted file mode 100644
index 9c4e250..0000000
--- a/src/dev.mnts.ModManager.gschema.xml.in
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- {}
- Dictionary of games being managed. First string is game name second is path to mods folder.
-
-
-
\ No newline at end of file
diff --git a/src/main.rs b/src/main.rs
index 87c08d4..14301bc 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,33 +1,33 @@
/*
- Copyright (c) 2023 Tine Jozelj
+Copyright (c) 2023 Tine Jozelj
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
-mod application;
-mod config;
-mod windows;
-mod components;
mod api;
+mod application;
+mod components;
+mod config;
mod settings;
+mod windows;
use self::application::ModManagerApplication;
use config::{GETTEXT_PACKAGE, LOCALEDIR, PKGDATADIR};
use gettextrs::{bind_textdomain_codeset, bindtextdomain, textdomain};
-use gtk::{gio, glib};
use gtk::prelude::*;
+use gtk::{gio, glib};
fn main() -> glib::ExitCode {
// Set up gettext translations
@@ -44,7 +44,7 @@ fn main() -> glib::ExitCode {
// Create a new GtkApplication. The application manages our main loop,
// application windows, integration with the window manager/compositor, and
// desktop features such as file opening and single-instance applications.
- let app = ModManagerApplication::new( &gio::ApplicationFlags::empty());
+ let app = ModManagerApplication::new(&gio::ApplicationFlags::empty());
// Run the application. This function will block until the application
// exits. Upon return, we have our exit code to return to the shell. (This
diff --git a/src/meson.build b/src/meson.build
index 34d7c14..4e66df6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,7 +1,7 @@
-datadir = get_option('prefix') / get_option('datadir')
-pkgdatadir = datadir / meson.project_name()
+pkgdatadir = get_option('prefix') / get_option('datadir') / meson.project_name()
gnome = import('gnome')
+# GResources
blueprints = custom_target('blueprints',
input: files(
'windows/main/main.blp',
@@ -13,7 +13,6 @@ blueprints = custom_target('blueprints',
output: '.',
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
)
-
gnome.compile_resources('mod-manager',
'mod-manager.gresource.xml',
dependencies: blueprints,
@@ -22,19 +21,6 @@ gnome.compile_resources('mod-manager',
install_dir: pkgdatadir,
)
-# GSchema
-gschema_conf = configuration_data()
-gschema_conf.set('APP_ID', application_id)
-gschema_conf.set('GETTEXT_PACKAGE', gettext_package)
-gschema = configure_file(
- input: '@0@.gschema.xml.in'.format(base_id),
- output: '@0@.gschema.xml'.format(application_id),
- configuration: gschema_conf,
- install: true,
- install_dir: pkgdatadir / 'glib-2.0' / 'schemas'
-)
-gnome.compile_schemas(depend_files: gschema)
-
# Configuration
conf = configuration_data()
conf.set_quoted('APP_ID', application_id)
diff --git a/src/settings.rs b/src/settings.rs
index 3a5808b..9a23c3c 100644
--- a/src/settings.rs
+++ b/src/settings.rs
@@ -1,18 +1,20 @@
+use gio::glib;
use gsettings_macro::gen_settings;
use gtk::gio;
-use gio::glib;
use std::collections::HashMap;
use crate::config::APP_ID;
-#[gen_settings(
- file = "./src/dev.mnts.ModManager.gschema.xml.in",
+#[gen_settings(file = "./data/dev.mnts.ModManager.gschema.xml.in")]
+#[gen_settings_define(
+ key_name = "games",
+ arg_type = "HashMap",
+ ret_type = "HashMap"
)]
-#[gen_settings_define(key_name = "games", arg_type = "HashMap", ret_type = "HashMap")]
pub struct ModManagerSettings;
impl Default for ModManagerSettings {
fn default() -> Self {
Self::new(APP_ID)
}
-}
\ No newline at end of file
+}