]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/QPrefsDialog.h
This new citation dialog follows a new design similar to lyx-1.3:
[lyx.git] / src / frontends / qt4 / QPrefsDialog.h
1 // -*- C++ -*-
2 /**
3  * \file QPrefsDialog.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author John Levon
8  * \author Abdelrazak Younes
9  *
10  * Full author contact details are available in file CREDITS.
11  */
12
13 #ifndef QPREFSDIALOG_H
14 #define QPREFSDIALOG_H
15
16 #include "LColor.h"
17 #include "lyxrc.h"
18
19 #include "ui/QPrefsUi.h"
20
21 #include <vector>
22
23 #include <QDialog>
24 #include <QCloseEvent>
25
26 #include "ui/QPrefAsciiUi.h"
27 #include "ui/QPrefDateUi.h"
28 #include "ui/QPrefKeyboardUi.h"
29 #include "ui/QPrefLatexUi.h"
30 #include "ui/QPrefScreenFontsUi.h"
31 #include "ui/QPrefColorsUi.h"
32 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
33 #include "ui/QPrefCygwinPathUi.h"
34 #endif
35 #include "ui/QPrefDisplayUi.h"
36 #include "ui/QPrefPathsUi.h"
37 #include "ui/QPrefSpellcheckerUi.h"
38 #include "ui/QPrefConvertersUi.h"
39 #include "ui/QPrefCopiersUi.h"
40 #include "ui/QPrefFileformatsUi.h"
41 #include "ui/QPrefLanguageUi.h"
42 #include "ui/QPrefPrinterUi.h"
43 #include "ui/QPrefUi.h"
44 #include "ui/QPrefIdentityUi.h"
45
46 template<class UI>
47         class UiWidget: public QWidget, public UI
48         {
49         public:
50                 UiWidget(QWidget * Parent): QWidget(Parent)
51                 {
52                         UI::setupUi(this);
53                 }
54         };
55
56 namespace lyx {
57 namespace frontend {
58
59 class QPrefs;
60
61 ///
62 class QPrefsDialog : public QDialog, public Ui::QPrefsUi {
63         Q_OBJECT
64 public:
65         QPrefsDialog(QPrefs *);
66
67         ~QPrefsDialog();
68         
69         void apply(LyXRC & rc) const;
70         void update(LyXRC const & rc);
71
72 protected:
73         void updateConverters();
74         void updateConverterButtons();
75         void updateCopiers();
76         void updateCopierButtons();
77         void updateFormats();
78         void updateFormatsButtons();
79
80 public slots:
81         void change_adaptor();
82
83         void switch_format(int);
84         void fileformat_changed();
85         void new_format();
86         void modify_format();
87         void remove_format();
88
89         void switch_converter(int);
90         void converter_changed();
91         void new_converter();
92         void modify_converter();
93         void remove_converter();
94
95         void switch_copierLB(int nr);
96         void switch_copierCO(int nr);
97         void copiers_changed();
98         void new_copier();
99         void modify_copier();
100         void remove_copier();
101
102         void change_color();
103
104         void select_ui();
105         void select_bind();
106         void select_keymap1();
107         void select_keymap2();
108         void select_dict();
109         void select_templatedir();
110         void select_tempdir();
111         void select_backupdir();
112         void select_workingdir();
113         void select_lyxpipe();
114
115         void select_roman(const QString&);
116         void select_sans(const QString&);
117         void select_typewriter(const QString&);
118
119 protected:
120         void closeEvent(QCloseEvent * e);
121
122 private:
123
124         /// languages
125         std::vector<std::string> lang_;
126
127         std::vector<LColor_color> colors_;
128
129         UiWidget<Ui::QPrefAsciiUi> * asciiModule;
130         UiWidget<Ui::QPrefDateUi> * dateModule;
131         UiWidget<Ui::QPrefKeyboardUi> * keyboardModule;
132         UiWidget<Ui::QPrefLatexUi> * latexModule;
133         UiWidget<Ui::QPrefScreenFontsUi> * screenfontsModule;
134         UiWidget<Ui::QPrefColorsUi> * colorsModule;
135 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
136         UiWidget<Ui::QPrefCygwinPathUi> * cygwinpathModule;
137 #endif
138         UiWidget<Ui::QPrefDisplayUi> * displayModule;
139         UiWidget<Ui::QPrefPathsUi> * pathsModule;
140         UiWidget<Ui::QPrefSpellcheckerUi> * spellcheckerModule;
141         UiWidget<Ui::QPrefConvertersUi> * convertersModule;
142         UiWidget<Ui::QPrefCopiersUi> * copiersModule;
143         UiWidget<Ui::QPrefFileformatsUi> * fileformatsModule;
144         UiWidget<Ui::QPrefLanguageUi> * languageModule;
145         UiWidget<Ui::QPrefPrinterUi> * printerModule;
146         UiWidget<Ui::QPrefUi> * uiModule;
147         UiWidget<Ui::QPrefIdentityUi> * identityModule;
148
149         QPrefs * form_;
150 };
151
152 } // namespace frontend
153 } // namespace lyx
154
155 #endif // PREFSDIALOG_H