X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiPrefs.h;h=0eebd86f04d4f62fc78f059a5284265b3cd40057;hb=6ae7cad09fabfca114170b6bd1c01b81300e314e;hp=dcba32be36cbb6a1ed710d2134e48b0fe440c790;hpb=42015a8ebd17092c9b55c9519015119d04f52218;p=lyx.git diff --git a/src/frontends/qt4/GuiPrefs.h b/src/frontends/qt4/GuiPrefs.h index dcba32be36..0eebd86f04 100644 --- a/src/frontends/qt4/GuiPrefs.h +++ b/src/frontends/qt4/GuiPrefs.h @@ -19,8 +19,8 @@ #include "ColorCode.h" #include "Converter.h" #include "Format.h" +#include "FuncCode.h" #include "KeyMap.h" -#include "lfuns.h" #include "LyXRC.h" #include "Mover.h" @@ -28,11 +28,13 @@ #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" @@ -44,9 +46,6 @@ #include "ui_PrefIdentityUi.h" #include "ui_ShortcutUi.h" -#include -#include - #include #include @@ -59,24 +58,99 @@ 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 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; + QString browsedict(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 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: @@ -88,7 +162,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); @@ -99,18 +173,18 @@ 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); }; -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); @@ -121,7 +195,18 @@ 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); }; @@ -129,7 +214,7 @@ 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); @@ -140,7 +225,7 @@ 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); @@ -156,7 +241,7 @@ 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); @@ -167,12 +252,8 @@ private Q_SLOTS: private: std::vector 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 curcolors_; std::vector newcolors_; - }; @@ -180,7 +261,7 @@ 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); @@ -191,12 +272,13 @@ 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_exampledir(); void select_templatedir(); void select_tempdir(); void select_backupdir(); @@ -210,7 +292,7 @@ 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); @@ -224,7 +306,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); @@ -244,41 +326,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); @@ -311,13 +363,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 lang_; +private Q_SLOTS: + void on_uiLanguageCO_currentIndexChanged(int); }; @@ -325,7 +377,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); @@ -336,7 +388,7 @@ 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); @@ -346,6 +398,18 @@ public Q_SLOTS: }; +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: @@ -357,34 +421,39 @@ 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 + enum ItemType { + 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. + //< 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, ItemType tag); QTreeWidgetItem * insertShortcutItem(FuncRequest const & lfun, - KeySequence const & shortcut, item_type tag); + KeySequence const & shortcut, ItemType tag); public Q_SLOTS: void select_bind(); + void on_modifyPB_pressed(); void on_newPB_pressed(); void on_removePB_pressed(); void on_searchLE_textEdited(); /// void on_shortcutsTW_itemSelectionChanged(); void shortcut_okPB_pressed(); + void shortcut_cancelPB_pressed(); void shortcut_clearPB_pressed(); + void shortcut_removePB_pressed(); void on_shortcutsTW_itemDoubleClicked(); private: @@ -408,6 +477,8 @@ private: KeyMap system_bind_; KeyMap user_bind_; KeyMap user_unbind_; + /// + QString save_lfun_; }; @@ -415,94 +486,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(GuiView & 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 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(ColorCode 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 colors_; - - bool redraw_gui_; - bool update_screen_font_; -}; - - } // namespace frontend } // namespace lyx