]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiPrefs.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiPrefs.h
index d80af4d8adaab00ecf4b345a7f7ad61fcf2f0ada..2a0405fb3ec337eb1a482fd30757f8fe31bf801a 100644 (file)
 
 #include "GuiDialog.h"
 
-#include "Color.h"
+#include "ColorCode.h"
 #include "Converter.h"
 #include "Format.h"
+#include "FuncCode.h"
 #include "KeyMap.h"
-#include "lfuns.h"
 #include "LyXRC.h"
 #include "Mover.h"
 
 
 #include "ui_PrefPlaintextUi.h"
 #include "ui_PrefDateUi.h"
-#include "ui_PrefKeyboardUi.h"
+#include "ui_PrefInputUi.h"
 #include "ui_PrefLatexUi.h"
 #include "ui_PrefScreenFontsUi.h"
+#include "ui_PrefCompletionUi.h"
 #include "ui_PrefColorsUi.h"
 #include "ui_PrefDisplayUi.h"
+#include "ui_PrefEditUi.h"
 #include "ui_PrefPathsUi.h"
 #include "ui_PrefShortcutsUi.h"
 #include "ui_PrefSpellcheckerUi.h"
 #include "ui_PrefIdentityUi.h"
 #include "ui_ShortcutUi.h"
 
-#include <QDialog>
-#include <QValidator>
-
 #include <string>
 #include <vector>
 
 
 namespace lyx {
 
-class Color_color;
 class Converters;
 class Formats;
 class Movers;
 
 namespace frontend {
 
-class GuiPreferences;
+class PrefModule;
+
+class GuiPreferences : public GuiDialog, public Ui::PrefsUi
+{
+       Q_OBJECT
+public:
+       GuiPreferences(GuiView & lv);
+
+       void apply(LyXRC & rc) const;
+       void updateRc(LyXRC const & rc);
+
+public Q_SLOTS:
+       void change_adaptor();
+
+public:
+       /// Apply changes
+       void applyView();
+
+       std::vector<PrefModule *> modules_;
+
+       ///
+       bool initialiseParams(std::string const &);
+       ///
+       void clearParams() {}
+       ///
+       void dispatchParams();
+       ///
+       bool isBufferDependent() const { return false; }
+
+       /// various file pickers
+       QString browsebind(QString const & file) const;
+       QString browseUI(QString const & file) const;
+       QString browsekbmap(QString const & file) const;
+
+       /// general browse
+       QString browse(QString const & file, QString const & title) const;
+
+       /// set a color
+       void setColor(ColorCode col, QString const & hex);
+
+       /// update the screen fonts after change
+       void updateScreenFonts();
+
+       /// adjust the prefs paper sizes
+       PAPER_SIZE toPaperSize(int i) const;
+       /// adjust the prefs paper sizes
+       int fromPaperSize(PAPER_SIZE papersize) const;
+
+       LyXRC & rc() { return rc_; }
+       Converters & converters() { return converters_; }
+       Formats & formats() { return formats_; }
+       Movers & movers() { return movers_; }
+
+private:
+       ///
+       void addModule(PrefModule * module);
+
+       /// temporary lyxrc
+       LyXRC rc_;
+       /// temporary converters
+       Converters converters_;
+       /// temporary formats
+       Formats formats_;
+       /// temporary movers
+       Movers movers_;
+
+       /// A list of colors to be dispatched
+       std::vector<std::string> colors_;
+
+       bool redraw_gui_;
+       bool update_screen_font_;
+};
+
 
 class PrefModule : public QWidget
 {
        Q_OBJECT
 public:
-       PrefModule(docstring const & t,
-                       GuiPreferences * form = 0, QWidget * parent = 0)
-               : QWidget(parent), title_(t), form_(form)
+       PrefModule(QString const & cat, QString const & t,
+                       GuiPreferences * form)
+               : QWidget(form), category_(cat), title_(t), form_(form)
        {}
 
        virtual void apply(LyXRC & rc) const = 0;
        virtual void update(LyXRC const & rc) = 0;
 
-       docstring const & title() const { return title_; }
+       QString const & category() const { return category_; }
+       QString const & title() const { return title_; }
 
 protected:
-       docstring title_;
+       QString category_;
+       QString title_;
        GuiPreferences * form_;
 
 Q_SIGNALS:
@@ -89,7 +161,7 @@ class PrefPlaintext : public PrefModule, public Ui::PrefPlaintextUi
 {
        Q_OBJECT
 public:
-       PrefPlaintext(QWidget * parent = 0);
+       PrefPlaintext(GuiPreferences * form);
 
        virtual void apply(LyXRC & rc) const;
        virtual void update(LyXRC const & rc);
@@ -100,18 +172,21 @@ class PrefDate : public PrefModule, public Ui::PrefDateUi
 {
        Q_OBJECT
 public:
-       PrefDate(QWidget * parent = 0);
+       PrefDate(GuiPreferences * form);
 
        virtual void apply(LyXRC & rc) const;
        virtual void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void on_DateED_textChanged(const QString &);
 };
 
 
-class PrefKeyboard : public PrefModule, public Ui::PrefKeyboardUi
+class PrefInput : public PrefModule, public Ui::PrefInputUi
 {
        Q_OBJECT
 public:
-       PrefKeyboard(GuiPreferences * form, QWidget * parent = 0);
+       PrefInput(GuiPreferences * form);
 
        virtual void apply(LyXRC & rc) const;
        virtual void update(LyXRC const & rc);
@@ -122,7 +197,22 @@ private Q_SLOTS:
        void on_keymapCB_toggled(bool);
 
 private:
-       QString testKeymap(QString keymap);
+       QString testKeymap(QString const & keymap);
+};
+
+
+class PrefCompletion : public PrefModule, public Ui::PrefCompletionUi
+{
+       Q_OBJECT
+public:
+       PrefCompletion(GuiPreferences * form);
+
+       virtual void apply(LyXRC & rc) const;
+       virtual void update(LyXRC const & rc);
+       virtual void enableCB();
+private Q_SLOTS:
+       void on_popupTextCB_clicked();
+       void on_inlineTextCB_clicked();
 };
 
 
@@ -130,10 +220,21 @@ class PrefLatex : public PrefModule, public Ui::PrefLatexUi
 {
        Q_OBJECT
 public:
-       PrefLatex(GuiPreferences * form, QWidget * parent = 0);
+       PrefLatex(GuiPreferences * form);
 
        virtual void apply(LyXRC & rc) const;
        virtual void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void on_latexEncodingCB_stateChanged(int state);
+       void on_latexBibtexCO_activated(int n);
+       void on_latexIndexCO_activated(int n);
+
+private:
+       ///
+       std::set<std::string> bibtex_alternatives;
+       ///
+       std::set<std::string> index_alternatives;
 };
 
 
@@ -141,15 +242,15 @@ class PrefScreenFonts : public PrefModule, public Ui::PrefScreenFontsUi
 {
        Q_OBJECT
 public:
-       PrefScreenFonts(GuiPreferences * form, QWidget * parent = 0);
+       PrefScreenFonts(GuiPreferences * form);
 
        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&);
+       void selectRoman(const QString&);
+       void selectSans(const QString&);
+       void selectTypewriter(const QString&);
 };
 
 
@@ -157,23 +258,19 @@ class PrefColors : public PrefModule, public Ui::PrefColorsUi
 {
        Q_OBJECT
 public:
-       PrefColors(GuiPreferences * form, QWidget * parent = 0);
+       PrefColors(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
 
 private Q_SLOTS:
-       void change_color();
-       void change_lyxObjects_selection();
+       void changeColor();
+       void changeLyxObjectsSelection();
 
 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<ColorCode> lcolors_;
        std::vector<QString> curcolors_;
        std::vector<QString> newcolors_;
-
 };
 
 
@@ -181,10 +278,13 @@ class PrefDisplay : public PrefModule, public Ui::PrefDisplayUi
 {
        Q_OBJECT
 public:
-       PrefDisplay(QWidget * parent = 0);
+       PrefDisplay(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
+
+private Q_SLOTS:
+       void on_instantPreviewCO_currentIndexChanged(int);
 };
 
 
@@ -192,17 +292,20 @@ class PrefPaths : public PrefModule, public Ui::PrefPathsUi
 {
        Q_OBJECT
 public:
-       PrefPaths(GuiPreferences * form, QWidget * parent = 0);
+       PrefPaths(GuiPreferences * form);
 
        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();
+       void selectExampledir();
+       void selectTemplatedir();
+       void selectTempdir();
+       void selectBackupdir();
+       void selectWorkingdir();
+       void selectThesaurusdir();
+       void selectHunspelldir();
+       void selectLyxPipe();
 
 };
 
@@ -211,13 +314,11 @@ class PrefSpellchecker : public PrefModule, public Ui::PrefSpellcheckerUi
 {
        Q_OBJECT
 public:
-       PrefSpellchecker(GuiPreferences * form, QWidget * parent = 0);
+       PrefSpellchecker(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
 
-private Q_SLOTS:
-       void select_dict();
 };
 
 
@@ -225,7 +326,7 @@ class PrefConverters : public PrefModule, public Ui::PrefConvertersUi
 {
        Q_OBJECT
 public:
-       PrefConverters(GuiPreferences * form, QWidget * parent = 0);
+       PrefConverters(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
@@ -234,10 +335,10 @@ public Q_SLOTS:
        void updateGui();
 
 private Q_SLOTS:
-       void update_converter();
-       void switch_converter();
-       void converter_changed();
-       void remove_converter();
+       void updateConverter();
+       void switchConverter();
+       void removeConverter();
+       void changeConverter();
        void on_cacheCB_stateChanged(int state);
 
 private:
@@ -245,41 +346,11 @@ private:
 };
 
 
-class FormatValidator : public QValidator
-{
-public:
-       FormatValidator(QWidget *, Formats const & f);
-       void fixup(QString & input) const;
-       QValidator::State validate(QString & input, int & pos) const;
-private:
-       virtual std::string str(Formats::const_iterator it) const = 0;
-       int nr() const;
-       Formats const & formats_;
-};
-
-
-class FormatNameValidator : public FormatValidator
-{
-public:
-       FormatNameValidator(QWidget *, Formats const & f);
-private:
-       std::string str(Formats::const_iterator it) const;
-};
-
-class FormatPrettynameValidator : public FormatValidator
-{
-public:
-       FormatPrettynameValidator(QWidget *, Formats const & f);
-private:
-       std::string str(Formats::const_iterator it) const;
-};
-
-
 class PrefFileformats : public PrefModule, public Ui::PrefFileformatsUi
 {
        Q_OBJECT
 public:
-       PrefFileformats(GuiPreferences * form, QWidget * parent = 0);
+       PrefFileformats(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
@@ -300,11 +371,21 @@ private Q_SLOTS:
        void on_formatsCB_editTextChanged(const QString &);
        void on_formatNewPB_clicked();
        void on_formatRemovePB_clicked();
+       void on_viewerCO_currentIndexChanged(int i);
+       void on_editorCO_currentIndexChanged(int i);
        void setFlags();
        void updatePrettyname();
 
 private:
        Format & currentFormat();
+       ///
+       void updateViewers();
+       ///
+       void updateEditors();
+       ///
+       LyXRC::Alternatives viewer_alternatives;
+       ///
+       LyXRC::Alternatives editor_alternatives;
 };
 
 
@@ -312,13 +393,13 @@ class PrefLanguage : public PrefModule, public Ui::PrefLanguageUi
 {
        Q_OBJECT
 public:
-       PrefLanguage(QWidget * parent = 0);
+       PrefLanguage(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
 
-private:
-       std::vector<std::string> lang_;
+private Q_SLOTS:
+       void on_uiLanguageCO_currentIndexChanged(int);
 };
 
 
@@ -326,7 +407,7 @@ class PrefPrinter : public PrefModule, public Ui::PrefPrinterUi
 {
        Q_OBJECT
 public:
-       PrefPrinter(QWidget * parent = 0);
+       PrefPrinter(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
@@ -337,18 +418,29 @@ class PrefUserInterface : public PrefModule, public Ui::PrefUi
 {
        Q_OBJECT
 public:
-       PrefUserInterface(GuiPreferences * form, QWidget * parent = 0);
+       PrefUserInterface(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
 
 public Q_SLOTS:
-       void select_ui();
-       void on_loadWindowSizeCB_toggled(bool);
+       void selectUi();
+       void on_clearSessionPB_clicked();
+};
 
+
+class PrefEdit : public PrefModule, public Ui::PrefEditUi
+{
+       Q_OBJECT
+public:
+       PrefEdit(GuiPreferences * form);
+
+       void apply(LyXRC & rc) const;
+       void update(LyXRC const & rc);
 };
 
 
+
 class GuiShortcutDialog : public QDialog, public Ui::shortcutUi
 {
 public:
@@ -359,36 +451,33 @@ public:
 class PrefShortcuts : public PrefModule, public Ui::PrefShortcuts
 {
        Q_OBJECT
-private:
-       enum item_type {
-               System,         //< loaded from a bind file
-               UserBind,       //< \bind loaded from user.bind
-               UserUnbind,     //< \unbind loaded from user.bind, with corresponding
-                                       //<    entry in system bind file
-               UserExtraUnbind //< \unbind loaded from user.bind, without
-                                               //<    corresponding entry in system bind file.
-       };
 public:
-       PrefShortcuts(GuiPreferences * form, QWidget * parent = 0);
+       PrefShortcuts(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
        void updateShortcutsTW();
+       void modifyShortcut();
+       void removeShortcut();
        ///
-       void setItemType(QTreeWidgetItem * item, item_type tag);
+       void setItemType(QTreeWidgetItem * item, KeyMap::ItemType tag);
        QTreeWidgetItem * insertShortcutItem(FuncRequest const & lfun, 
-               KeySequence const & shortcut, item_type tag);
+               KeySequence const & shortcut, KeyMap::ItemType tag);
 
 public Q_SLOTS:
-       void select_bind();
+       void selectBind();
+       void on_modifyPB_pressed();
        void on_newPB_pressed();
        void on_removePB_pressed();
-       void on_searchLE_textChanged();
+       void on_searchLE_textEdited();
        ///
        void on_shortcutsTW_itemSelectionChanged();
-       void shortcut_okPB_pressed();
-       void shortcut_clearPB_pressed();
        void on_shortcutsTW_itemDoubleClicked();
+       ///
+       void shortcutOkPressed();
+       void shortcutCancelPressed();
+       void shortcutClearPressed();
+       void shortcutRemovePressed();
 
 private:
        ///
@@ -411,6 +500,8 @@ private:
        KeyMap system_bind_;
        KeyMap user_bind_;
        KeyMap user_unbind_;
+       ///
+       QString save_lfun_;
 };
 
 
@@ -418,94 +509,13 @@ class PrefIdentity : public PrefModule, public Ui::PrefIdentityUi
 {
        Q_OBJECT
 public:
-       PrefIdentity(QWidget * parent = 0);
+       PrefIdentity(GuiPreferences * form);
 
        void apply(LyXRC & rc) const;
        void update(LyXRC const & rc);
 };
 
 
-class GuiPreferences : public GuiDialog, public Ui::PrefsUi
-{
-       Q_OBJECT
-public:
-       GuiPreferences(LyXView & lv);
-
-       void apply(LyXRC & rc) const;
-       void updateRc(LyXRC const & rc);
-
-public Q_SLOTS:
-       void change_adaptor();
-
-public:
-       //
-       void closeEvent(QCloseEvent * e);
-       ///
-       void add(PrefModule * module);
-       /// Apply changes
-       void applyView();
-       /// update (do we need this?)
-       void updateContents();
-
-       std::vector<PrefModule *> modules_;
-
-       ///
-       bool initialiseParams(std::string const &);
-       ///
-       void clearParams() {}
-       ///
-       void dispatchParams();
-       ///
-       bool isBufferDependent() const { return false; }
-
-       /// various file pickers
-       docstring const browsebind(docstring const & file) const;
-       docstring const browseUI(docstring const & file) const;
-       docstring const browsekbmap(docstring const & file) const;
-       docstring const browsedict(docstring const & file) const;
-
-       /// general browse
-       docstring const browse(docstring const & file,
-                                docstring const & title) const;
-
-       /// browse directory
-       docstring const browsedir(docstring const & path,
-                                   docstring const & title) const;
-
-       /// set a color
-       void setColor(Color_color col, std::string const & hex);
-
-       /// update the screen fonts after change
-       void updateScreenFonts();
-
-       /// adjust the prefs paper sizes
-       PAPER_SIZE toPaperSize(int i) const;
-       /// adjust the prefs paper sizes
-       int fromPaperSize(PAPER_SIZE papersize) const;
-
-       LyXRC & rc() { return rc_; }
-       Converters & converters() { return converters_; }
-       Formats & formats() { return formats_; }
-       Movers & movers() { return movers_; }
-
-private:
-       /// temporary lyxrc
-       LyXRC rc_;
-       /// temporary converters
-       Converters converters_;
-       /// temporary formats
-       Formats formats_;
-       /// temporary movers
-       Movers movers_;
-
-       /// A list of colors to be dispatched
-       std::vector<std::string> colors_;
-
-       bool redraw_gui_;
-       bool update_screen_font_;
-};
-
-
 } // namespace frontend
 } // namespace lyx