]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/QPrefs.h
Transfer Text::drawSelection() from InsetText::drawSelection() to InsetText::draw...
[lyx.git] / src / frontends / qt4 / QPrefs.h
index 2338a3ab4a423329e0aed659df78996f9175cc50..86beb937b7364f20b5b2c067eb5bd5280b3a8e3d 100644 (file)
 #define QPREFS_H
 
 #include "QDialogView.h"
-#include "QPrefsDialog.h"
+
+#include "Color.h"
+#include "LyXRC.h"
+
+#include "ui_PrefsUi.h"
 
 #include <vector>
 
+#include <QDialog>
+#include <QCloseEvent>
+
+#include "ui_PrefPlaintextUi.h"
+#include "ui_PrefDateUi.h"
+#include "ui_PrefKeyboardUi.h"
+#include "ui_PrefLatexUi.h"
+#include "ui_PrefScreenFontsUi.h"
+#include "ui_PrefColorsUi.h"
+#include "ui_PrefCygwinPathUi.h"
+#include "ui_PrefDisplayUi.h"
+#include "ui_PrefPathsUi.h"
+#include "ui_PrefSpellcheckerUi.h"
+#include "ui_PrefConvertersUi.h"
+#include "ui_PrefCopiersUi.h"
+#include "ui_PrefFileformatsUi.h"
+#include "ui_PrefLanguageUi.h"
+#include "ui_PrefPrinterUi.h"
+#include "ui_PrefUi.h"
+#include "ui_PrefIdentityUi.h"
+
 namespace lyx {
 
 class Converters;
@@ -25,6 +50,327 @@ class Movers;
 
 namespace frontend {
 
+class QPrefs;
+
+class PrefModule : public QWidget
+{
+       Q_OBJECT
+public:
+       PrefModule(docstring const & t,
+                       QPrefs * form = 0, QWidget * parent = 0)
+               : QWidget(parent), title_(t), form_(form)
+       {}
+
+       virtual void apply(LyXRC & rc) const = 0;
+       virtual void update(LyXRC const & rc) = 0;
+
+       docstring const & title() const { return title_; }
+
+protected:
+       docstring title_;
+       QPrefs * form_;
+
+Q_SIGNALS:
+       void changed();
+};
+
+
+class PrefPlaintext :  public PrefModule, public Ui::QPrefPlaintextUi
+{
+       Q_OBJECT
+public:
+       PrefPlaintext(QWidget * parent = 0);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+};
+
+
+class PrefDate :  public PrefModule, public Ui::QPrefDateUi
+{
+       Q_OBJECT
+public:
+       PrefDate(QWidget * parent = 0);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+};
+
+
+class PrefKeyboard :  public PrefModule, public Ui::QPrefKeyboardUi
+{
+       Q_OBJECT
+public:
+       PrefKeyboard(QPrefs * form, QWidget * parent = 0);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void on_firstKeymapPB_clicked(bool);
+       void on_secondKeymapPB_clicked(bool);
+       void on_keymapCB_toggled(bool);
+
+private:
+       QString testKeymap(QString keymap);
+};
+
+
+class PrefLatex :  public PrefModule, public Ui::QPrefLatexUi
+{
+       Q_OBJECT
+public:
+       PrefLatex(QPrefs * form, QWidget * parent = 0);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+};
+
+
+class PrefScreenFonts :  public PrefModule, public Ui::QPrefScreenFontsUi
+{
+       Q_OBJECT
+public:
+       PrefScreenFonts(QPrefs * form, QWidget * parent = 0);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void select_roman(const QString&);
+       void select_sans(const QString&);
+       void select_typewriter(const QString&);
+};
+
+
+class PrefColors :  public PrefModule, public Ui::QPrefColorsUi
+{
+       Q_OBJECT
+public:
+       PrefColors(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void change_color();
+       void change_lyxObjects_selection();
+
+private:
+       std::vector<Color_color> lcolors_;
+       // FIXME the use of mutable here is required due to the
+       // fact that initialization is not done in the controller
+       // but in the constructor.
+       std::vector<QString> curcolors_;
+       std::vector<QString> newcolors_;
+
+};
+
+
+class PrefCygwinPath :  public PrefModule, public Ui::QPrefCygwinPathUi
+{
+       Q_OBJECT
+public:
+       PrefCygwinPath(QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+};
+
+
+class PrefDisplay :  public PrefModule, public Ui::QPrefDisplayUi
+{
+       Q_OBJECT
+public:
+       PrefDisplay(QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+};
+
+
+class PrefPaths :  public PrefModule, public Ui::QPrefPathsUi
+{
+       Q_OBJECT
+public:
+       PrefPaths(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void select_templatedir();
+       void select_tempdir();
+       void select_backupdir();
+       void select_workingdir();
+       void select_lyxpipe();
+
+};
+
+
+class PrefSpellchecker :  public PrefModule, public Ui::QPrefSpellcheckerUi
+{
+       Q_OBJECT
+public:
+       PrefSpellchecker(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void select_dict();
+};
+
+
+class PrefConverters :  public PrefModule, public Ui::QPrefConvertersUi
+{
+       Q_OBJECT
+public:
+       PrefConverters(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+public Q_SLOTS:
+       void updateGui();
+
+private Q_SLOTS:
+       void update_converter();
+       void switch_converter();
+       void converter_changed();
+       void remove_converter();
+       void on_cacheCB_stateChanged(int state);
+
+private:
+       void updateButtons();
+};
+
+
+class PrefCopiers :  public PrefModule, public Ui::QPrefCopiersUi
+{
+       Q_OBJECT
+public:
+       PrefCopiers(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+       void update();
+
+private Q_SLOTS:
+       void switch_copierLB(int nr);
+       void switch_copierCO(int nr);
+       void copiers_changed();
+       void new_copier();
+       void modify_copier();
+       void remove_copier();
+
+private:
+       void updateButtons();
+};
+
+
+class PrefFileformats :  public PrefModule, public Ui::QPrefFileformatsUi
+{
+       Q_OBJECT
+public:
+       PrefFileformats(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+       void update();
+Q_SIGNALS:
+       void formatsChanged();
+private:
+       void updateButtons();
+
+private Q_SLOTS:
+       void switch_format(int);
+       void fileformat_changed();
+       void new_format();
+       void modify_format();
+       void remove_format();
+};
+
+
+class PrefLanguage :  public PrefModule, public Ui::QPrefLanguageUi
+{
+       Q_OBJECT
+public:
+       PrefLanguage(QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+private:
+       std::vector<std::string> lang_;
+};
+
+
+class PrefPrinter :  public PrefModule, public Ui::QPrefPrinterUi
+{
+       Q_OBJECT
+public:
+       PrefPrinter(QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+};
+
+
+class PrefUserInterface :  public PrefModule, public Ui::QPrefUi
+{
+       Q_OBJECT
+public:
+       PrefUserInterface(QPrefs * form, QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+
+public Q_SLOTS:
+       void select_ui();
+       void select_bind();
+       void on_loadWindowSizeCB_toggled(bool);
+
+};
+
+
+class PrefIdentity :  public PrefModule, public Ui::QPrefIdentityUi
+{
+       Q_OBJECT
+public:
+       PrefIdentity(QWidget * parent = 0);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
+};
+
+///
+class QPrefsDialog : public QDialog, public Ui::QPrefsUi
+{
+       Q_OBJECT
+public:
+       QPrefsDialog(QPrefs *);
+
+       void apply(LyXRC & rc) const;
+       void updateRc(LyXRC const & rc);
+
+public Q_SLOTS:
+       void change_adaptor();
+
+protected:
+       void closeEvent(QCloseEvent * e);
+
+private:
+       void add(PrefModule * module);
+
+private:
+       QPrefs * form_;
+       std::vector<PrefModule *> modules_;
+};
+
+
 class ControlPrefs;
 
 class QPrefs