#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_PrefsUi.h"
-#include "ui_PrefPlaintextUi.h"
-#include "ui_PrefDateUi.h"
-#include "ui_PrefKeyboardUi.h"
+#include "ui_PrefOutputUi.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();
+
+Q_SIGNALS:
+ void prefsApplied(LyXRC const & rc);
+
+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:
};
-class PrefPlaintext : public PrefModule, public Ui::PrefPlaintextUi
+class PrefOutput : public PrefModule, public Ui::PrefOutputUi
{
Q_OBJECT
public:
- PrefPlaintext(QWidget * parent = 0);
+ PrefOutput(GuiPreferences * form);
virtual void apply(LyXRC & rc) const;
virtual void update(LyXRC const & rc);
+
+private Q_SLOTS:
+ void on_DateED_textChanged(const QString &);
};
-class PrefDate : public PrefModule, public Ui::PrefDateUi
+class PrefInput : public PrefModule, public Ui::PrefInputUi
{
Q_OBJECT
public:
- PrefDate(QWidget * parent = 0);
+ PrefInput(GuiPreferences * form);
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);
+ void on_scrollzoomEnableCB_toggled(bool);
+
+private:
+ QString testKeymap(QString const & keymap);
};
-class PrefKeyboard : public PrefModule, public Ui::PrefKeyboardUi
+class PrefCompletion : public PrefModule, public Ui::PrefCompletionUi
{
Q_OBJECT
public:
- PrefKeyboard(GuiPreferences * form, QWidget * parent = 0);
+ PrefCompletion(GuiPreferences * form);
virtual void apply(LyXRC & rc) const;
virtual void update(LyXRC const & rc);
-
+ virtual void enableCB();
private Q_SLOTS:
- void on_firstKeymapPB_clicked(bool);
- void on_secondKeymapPB_clicked(bool);
- void on_keymapCB_toggled(bool);
-
-private:
- QString testKeymap(QString keymap);
+ void on_popupTextCB_clicked();
+ void on_inlineTextCB_clicked();
};
{
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;
};
{
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&);
+
+public Q_SLOTS:
+ void updateScreenFontSizes(LyXRC const & rc);
};
{
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 changeSysColor();
+ 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_;
-
};
{
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);
+ void on_displayGraphicsCB_toggled(bool);
};
{
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();
};
{
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();
+ void on_spellcheckerCB_currentIndexChanged(int);
};
{
Q_OBJECT
public:
- PrefConverters(GuiPreferences * form, QWidget * parent = 0);
+ PrefConverters(GuiPreferences * form);
void apply(LyXRC & rc) const;
void update(LyXRC const & rc);
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:
};
-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);
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;
};
{
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);
+ void on_languagePackageCO_currentIndexChanged(int);
};
{
Q_OBJECT
public:
- PrefPrinter(QWidget * parent = 0);
+ PrefPrinter(GuiPreferences * form);
void apply(LyXRC & rc) const;
void update(LyXRC const & rc);
{
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();
};
-/**
- * A lineedit for inputting shortcuts
- */
-class ShortcutEdit : public QLineEdit {
+class PrefEdit : public PrefModule, public Ui::PrefEditUi
+{
Q_OBJECT
public:
- ShortcutEdit(QWidget * parent) : QLineEdit(parent) {}
-protected Q_SLOTS:
- void keyPressEvent(QKeyEvent * e);
- bool event(QEvent* e);
+ PrefEdit(GuiPreferences * form);
+
+ void apply(LyXRC & rc) const;
+ void update(LyXRC const & rc);
};
+
class GuiShortcutDialog : public QDialog, public Ui::shortcutUi
{
public:
GuiShortcutDialog(QWidget * parent);
- ShortcutEdit * shortcutLE;
};
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_searchPB_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:
///
KeyMap system_bind_;
KeyMap user_bind_;
KeyMap user_unbind_;
+ ///
+ QString save_lfun_;
};
{
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