diff --git a/config/ws.backbone.laview.core.gschema.xml b/config/ws.backbone.laview.core.gschema.xml
index 0f03529..317ea30 100644
--- a/config/ws.backbone.laview.core.gschema.xml
+++ b/config/ws.backbone.laview.core.gschema.xml
@@ -25,6 +25,18 @@
Microsoft doesn't follow any file hierarchy standarts.
+
+ ""
+ Path to user's data plugins.
+ Need for plugins developing/debugging.
+
+
+
+ ""
+ Path to user's object plugins.
+ Need for plugins developing/debugging.
+
+
"Hello, earthlings"
A greeting
diff --git a/src/core/Core.vala b/src/core/Core.vala
index 797e9ef..1f47d0c 100644
--- a/src/core/Core.vala
+++ b/src/core/Core.vala
@@ -13,9 +13,6 @@ namespace LAview.Core {
AppSettings settings;
- public Gee.HashMap data_plugins = new Gee.HashMap();
- public Gee.HashMap object_plugins = new Gee.HashMap();
-
public string lyx_path {
get { return settings.lyx_path; }
set { settings.lyx_path = value; }
@@ -31,6 +28,19 @@ namespace LAview.Core {
set { settings.perl_path = value; }
}
+ public string data_path {
+ get { return settings.data_path; }
+ set { settings.data_path = value; }
+ }
+
+ public string object_path {
+ get { return settings.object_path; }
+ set { settings.object_path = value; }
+ }
+
+ public Gee.HashMap data_plugins = new Gee.HashMap();
+ public Gee.HashMap object_plugins = new Gee.HashMap();
+
/**
* Load Data Modules.
*/
@@ -75,9 +85,17 @@ namespace LAview.Core {
/* Initialization */
AppDirs.init ();
+ settings = new AppSettings();
+
load_data_modules (AppDirs.data_plugins_dir);
load_object_modules (AppDirs.object_plugins_dir);
- settings = new AppSettings();
+
+ if (File.new_for_path (data_path).query_exists())
+ load_data_modules (data_path);
+
+ if (File.new_for_path (object_path).query_exists())
+ load_object_modules (object_path);
+
load_templates_list ();
clear_cache ();
}
@@ -129,7 +147,7 @@ namespace LAview.Core {
objects_list = { };
composed_objects = { };
- var converter = new Conv.Converter.new_with_paths (settings.lyx_path, settings.latexmk_pl_path, settings.perl_path);
+ var converter = new Conv.Converter.new_with_paths (lyx_path, latexmk_pl_path, perl_path);
var t_path = Path.build_path (Path.DIR_SEPARATOR_S, AppDirs.cache_dir, "template.tex");
var lyx_file_path = templates[template_index].get_path();
try {
@@ -188,7 +206,7 @@ namespace LAview.Core {
if (c == false)
throw new IOError.FAILED (_("Prepare document first."));
generate_document_tex ();
- var converter = new Conv.Converter.new_with_paths (settings.lyx_path, settings.latexmk_pl_path, settings.perl_path);
+ var converter = new Conv.Converter.new_with_paths (lyx_path, latexmk_pl_path, perl_path);
return converter.tex2pdf (doc_tex_path(), doc_pdf_path());
}
@@ -733,7 +751,7 @@ namespace LAview.Core {
}
string generate_document_lyx () throws Error {
generate_document_tex ();
- var converter = new Conv.Converter.new_with_paths (settings.lyx_path, settings.latexmk_pl_path, settings.perl_path);
+ var converter = new Conv.Converter.new_with_paths (lyx_path, latexmk_pl_path, perl_path);
var sp = converter.tex2lyx (doc_tex_path(), doc_lyx_path());
if (sp.wait_check() == false) throw new IOError.FAILED(_("Error running tex2lyx subprocess."));
if (!File.new_for_path(doc_lyx_path()).query_exists())
diff --git a/src/core/Settings.vala b/src/core/Settings.vala
index 0a5f7c6..6065598 100644
--- a/src/core/Settings.vala
+++ b/src/core/Settings.vala
@@ -7,6 +7,8 @@ namespace LAview.Core {
string _latexmk_pl_path;
string _perl_path;
string[] _templates_strv;
+ string _data_path;
+ string _object_path;
public string lyx_path {
get { return _lyx_path; }
@@ -43,6 +45,24 @@ namespace LAview.Core {
}
}
+ public string data_path {
+ get { return _data_path; }
+ set {
+ if (settings != null) settings.set_string ("data-path", value);
+ _data_path = value;
+ }
+ default = "data";
+ }
+
+ public string object_path {
+ get { return _object_path; }
+ set {
+ if (settings != null) settings.set_string ("object-path", value);
+ _object_path = value;
+ }
+ default = "object";
+ }
+
public AppSettings () throws Error {
string schema_file = AppDirs.settings_dir+"/gschemas.compiled";
if (!File.new_for_path (schema_file).query_exists ())
@@ -67,7 +87,18 @@ namespace LAview.Core {
settings.changed["perl-path"].connect (() => {
_perl_path = settings.get_string("perl-path");
});
-
+ _templates_strv = settings.get_strv("templates");
+ settings.changed["templates"].connect (() => {
+ _templates_strv = settings.get_strv("templates");
+ });
+ _data_path = settings.get_string("data-path");
+ settings.changed["data-path"].connect (() => {
+ _data_path = settings.get_string("data-path");
+ });
+ _object_path = settings.get_string("object-path");
+ settings.changed["object-path"].connect (() => {
+ _object_path = settings.get_string("object-path");
+ });
}
}
}