]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/QPrefsDialog.h
Added initial qt4 work by Abdelrazak Younes
[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
18 #include "ui/QPrefsUi.h"
19
20 #include <vector>
21
22 #include <QDialog>
23 #include <QCloseEvent>
24
25 #include "ui/QPrefAsciiUi.h"
26 #include "ui/QPrefDateUi.h"
27 #include "ui/QPrefKeyboardUi.h"
28 #include "ui/QPrefLatexUi.h"
29 #include "ui/QPrefScreenFontsUi.h"
30 #include "ui/QPrefColorsUi.h"
31 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
32 #include "ui/QPrefCygwinPathUi.h"
33 #endif
34 #include "ui/QPrefDisplayUi.h"
35 #include "ui/QPrefPathsUi.h"
36 #include "ui/QPrefSpellcheckerUi.h"
37 #include "ui/QPrefConvertersUi.h"
38 #include "ui/QPrefCopiersUi.h"
39 #include "ui/QPrefFileformatsUi.h"
40 #include "ui/QPrefLanguageUi.h"
41 #include "ui/QPrefPrinterUi.h"
42 #include "ui/QPrefUi.h"
43 #include "ui/QPrefIdentityUi.h"
44
45 template<class UI>
46         class UiWidget: public QWidget, public UI
47         {
48         public:
49                 UiWidget(QWidget * Parent): QWidget(Parent)
50                 {
51                         UI::setupUi(this);
52                 }
53         };
54
55
56 namespace lyx {
57 namespace frontend {
58
59 class QPrefs;
60
61 class QPrefsDialog : public QDialog, public Ui::QPrefsUi {
62         Q_OBJECT
63 public:
64         friend class QPrefs;
65
66         QPrefsDialog(QPrefs *);
67
68         ~QPrefsDialog();
69
70         void updateConverters();
71         void updateConverterButtons();
72         void updateCopiers();
73         void updateCopierButtons();
74         void updateFormats();
75         void updateFormatsButtons();
76
77 public slots:
78         void change_adaptor();
79
80         void switch_format(int);
81         void fileformat_changed();
82         void new_format();
83         void modify_format();
84         void remove_format();
85
86         void switch_converter(int);
87         void converter_changed();
88         void new_converter();
89         void modify_converter();
90         void remove_converter();
91
92         void switch_copierLB(int nr);
93         void switch_copierCO(int nr);
94         void copiers_changed();
95         void new_copier();
96         void modify_copier();
97         void remove_copier();
98
99         void change_color();
100
101         void select_ui();
102         void select_bind();
103         void select_keymap1();
104         void select_keymap2();
105         void select_dict();
106         void select_templatedir();
107         void select_tempdir();
108         void select_backupdir();
109         void select_workingdir();
110         void select_lyxpipe();
111
112         void select_roman(const QString&);
113         void select_sans(const QString&);
114         void select_typewriter(const QString&);
115
116 protected:
117         void closeEvent(QCloseEvent * e);
118
119 private:
120
121         std::vector<LColor_color> colors_;
122
123         UiWidget<Ui::QPrefAsciiUi> * asciiModule;
124         UiWidget<Ui::QPrefDateUi> * dateModule;
125         UiWidget<Ui::QPrefKeyboardUi> * keyboardModule;
126         UiWidget<Ui::QPrefLatexUi> * latexModule;
127         UiWidget<Ui::QPrefScreenFontsUi> * screenfontsModule;
128         UiWidget<Ui::QPrefColorsUi> * colorsModule;
129 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
130         UiWidget<Ui::QPrefCygwinPathUi> * cygwinpathModule;
131 #endif
132         UiWidget<Ui::QPrefDisplayUi> * displayModule;
133         UiWidget<Ui::QPrefPathsUi> * pathsModule;
134         UiWidget<Ui::QPrefSpellcheckerUi> * spellcheckerModule;
135         UiWidget<Ui::QPrefConvertersUi> * convertersModule;
136         UiWidget<Ui::QPrefCopiersUi> * copiersModule;
137         UiWidget<Ui::QPrefFileformatsUi> * fileformatsModule;
138         UiWidget<Ui::QPrefLanguageUi> * languageModule;
139         UiWidget<Ui::QPrefPrinterUi> * printerModule;
140         UiWidget<Ui::QPrefUi> * uiModule;
141         UiWidget<Ui::QPrefIdentityUi> * identityModule;
142
143         QPrefs * form_;
144 };
145
146 } // namespace frontend
147 } // namespace lyx
148
149 #endif // PREFSDIALOG_H