2015-12-27 19:06:08 +03:00
|
|
|
namespace LAview.Desktop {
|
|
|
|
|
|
|
|
using Gtk;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Preferences window.
|
|
|
|
*/
|
|
|
|
public class PreferencesDialog {
|
|
|
|
Dialog dialog;
|
|
|
|
Gtk.ListStore liststore_data;
|
2016-02-14 14:54:32 +03:00
|
|
|
Gtk.ListStore liststore_objects;
|
2015-12-27 19:06:08 +03:00
|
|
|
FileChooserButton filechooserbutton_lyx;
|
2016-05-07 15:32:09 +03:00
|
|
|
FileChooserButton filechooserbutton_latexmk;
|
2015-12-27 19:06:08 +03:00
|
|
|
|
2016-01-30 05:52:02 +03:00
|
|
|
public PreferencesDialog (Gtk.Application application, Window parent) throws Error {
|
2015-12-27 19:06:08 +03:00
|
|
|
var builder = new Builder ();
|
|
|
|
builder.add_from_file (AppDirs.ui_dir + "/laview-desktop.glade");
|
|
|
|
builder.connect_signals (this);
|
|
|
|
|
|
|
|
dialog = builder.get_object ("preferences_window") as Dialog;
|
2016-01-30 05:52:02 +03:00
|
|
|
dialog.transient_for = parent;
|
|
|
|
dialog.modal = true;
|
2016-02-08 02:57:57 +03:00
|
|
|
//dialog.application = application;
|
2015-12-27 19:06:08 +03:00
|
|
|
dialog.delete_event.connect ((source) => {return true;});
|
|
|
|
liststore_data = builder.get_object ("liststore_data") as Gtk.ListStore;
|
2016-02-14 15:22:25 +03:00
|
|
|
liststore_objects = builder.get_object ("liststore_protocol_objects") as Gtk.ListStore;
|
2015-12-27 19:06:08 +03:00
|
|
|
filechooserbutton_lyx = builder.get_object ("filechooserbutton_lyx") as FileChooserButton;
|
2016-05-07 15:32:09 +03:00
|
|
|
filechooserbutton_latexmk = builder.get_object ("filechooserbutton_latexmk") as FileChooserButton;
|
2015-12-27 19:06:08 +03:00
|
|
|
|
|
|
|
fill_liststore_data ();
|
2016-02-14 14:54:32 +03:00
|
|
|
fill_liststore_objects ();
|
2015-12-27 19:06:08 +03:00
|
|
|
|
|
|
|
filechooserbutton_lyx.set_filename (AppCore.core.lyx_path);
|
2016-05-07 15:32:09 +03:00
|
|
|
filechooserbutton_latexmk.set_filename (AppCore.core.latexmk_path);
|
2015-12-27 19:06:08 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void fill_liststore_data () {
|
|
|
|
liststore_data.clear();
|
|
|
|
TreeIter iter = TreeIter();
|
2016-01-31 00:22:34 +03:00
|
|
|
foreach (var p in AppCore.core.data_plugins.entries) {
|
2015-12-27 19:06:08 +03:00
|
|
|
liststore_data.append (out iter);
|
|
|
|
liststore_data.set (iter, 0, p.value.get_readable_name ());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-02-14 14:54:32 +03:00
|
|
|
void fill_liststore_objects () {
|
|
|
|
liststore_objects.clear();
|
2015-12-27 19:06:08 +03:00
|
|
|
TreeIter iter = TreeIter();
|
2016-02-14 14:54:32 +03:00
|
|
|
foreach (var p in AppCore.core.object_plugins.entries) {
|
|
|
|
liststore_objects.append (out iter);
|
|
|
|
liststore_objects.set (iter, 0, p.value.get_readable_name ());
|
2015-12-27 19:06:08 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void show_all () {
|
|
|
|
dialog.show_all ();
|
|
|
|
}
|
|
|
|
|
|
|
|
[CCode (instance_pos = -1)]
|
|
|
|
public void button_close_clicked (Button button) {
|
|
|
|
dialog.hide ();
|
|
|
|
}
|
|
|
|
|
|
|
|
[CCode (instance_pos = -1)]
|
|
|
|
public void lyx_file_set (FileChooserButton chooser) {
|
|
|
|
AppCore.core.lyx_path = chooser.get_filename ();
|
|
|
|
}
|
|
|
|
|
|
|
|
[CCode (instance_pos = -1)]
|
2016-05-07 15:32:09 +03:00
|
|
|
public void latexmk_file_set (FileChooserButton chooser) {
|
|
|
|
AppCore.core.latexmk_path = chooser.get_filename ();
|
2015-12-27 19:06:08 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|