#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
+
+#include <utility>
#include "ControlPrefs.h"
+#include "ViewBase.h"
-//#include "frontends/Dialogs.h"
-#include "commandtags.h"
#include "frontends/LyXView.h"
+#include "bufferlist.h"
+#include "helper_funcs.h"
+#include "gettext.h"
+#include "support/filetools.h"
+#include "frontends/Dialogs.h"
+#include "converter.h"
+#include "format.h"
+#include "debug.h"
+
+extern string system_lyxdir;
+extern string user_lyxdir;
+extern BufferList bufferlist;
+
+using namespace lyx::support;
+
+using std::endl;
+using std::pair;
ControlPrefs::ControlPrefs(LyXView & lv, Dialogs & d)
: ControlDialogBI(lv, d)
{}
+void ControlPrefs::setParams()
+{
+ rc_ = lyxrc;
+}
+
+
void ControlPrefs::apply()
{
- lyxrc = rc_;
+ view().apply();
+ lyxrc = rc_;
+
+ bufferlist.setCurrentAuthor(rc_.user_name, rc_.user_email);
+
+ // The Save button has been pressed
+ if (isClosing()) {
+ lv_.dispatch(FuncRequest(LFUN_SAVEPREFERENCES));
+ }
+}
+
+
+string const ControlPrefs::browsebind(string const & file)
+{
+ string dir = AddName(system_lyxdir, "bind");
+ // FIXME: stupid name
+ string name = _("System Bind|#S#s");
+ pair<string,string> dir1(name, dir);
+
+ dir = AddName(user_lyxdir, "bind");
+ // FIXME: stupid name
+ name = _("User Bind|#U#u");
+ pair<string,string> dir2(name, dir);
+
+ return browseFile(file, _("Choose bind file"), "*.bind", false, dir1, dir2);
+}
+
+
+string const ControlPrefs::browseUI(string const & file)
+{
+ string dir = AddName(system_lyxdir, "ui");
+ // FIXME: stupid name
+ string name = _("Sys UI|#S#s");
+ pair<string,string> dir1(name, dir);
+
+ dir = AddName(user_lyxdir, "ui");
+ // FIXME: stupid name
+ name = _("User UI|#U#u");
+ pair<string,string> dir2(name, dir);
+
+ return browseFile(file, _("Choose UI file"), "*.ui", false, dir1, dir2);
}
-void ControlPrefs::save()
+string const ControlPrefs::browsekbmap(string const & file)
{
+ string const dir = AddName(system_lyxdir, "kbd");
+ string const name = _("Key maps|#K#k");
+ pair<string, string> dir1(name, dir);
+
+ return browseFile(file, _("Choose keyboard map"), "*.kmap", false, dir1);
+}
+
+
+string const ControlPrefs::browsedict(string const & file)
+{
+ return browseFile(file, _("Choose personal dictionary"), "*.ispell");
+}
+
+
+string const ControlPrefs::browse(string const & file, string const & title)
+{
+ return browseFile(file, title, "*", true);
+}
+
+
+string const ControlPrefs::browsedir(string const & path, string const & title)
+{
+ return browseDir(path, title);
+}
+
+
+void ControlPrefs::redrawGUI()
+{
+ // we must be sure to get the new values first
lyxrc = rc_;
- lv_.dispatch(FuncRequest(LFUN_SAVEPREFERENCES));
+
+ lv_.getDialogs().redrawGUI();
+}
+
+
+void ControlPrefs::setColor(LColor::color col, string const & hex)
+{
+ string const s = lcolor.getLyXName(col) + ' ' + hex;
+ lv_.dispatch(FuncRequest(LFUN_SET_COLOR, s));
+}
+
+
+void ControlPrefs::updateScreenFonts()
+{
+ // we must be sure to get the new values first
+ lyxrc = rc_;
+
+ lv_.dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE));
+}
+
+
+void ControlPrefs::setConverters(Converters const & conv)
+{
+ converters = conv;
+ converters.update(formats);
+ converters.buildGraph();
+}
+
+
+void ControlPrefs::setFormats(Formats const & form)
+{
+ formats = form;
}