4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
15 #include "QDialogView.h"
16 #include "BulletsModule.h"
18 #include "ui/DocumentUi.h"
19 #include "ui/FontUi.h"
20 #include "ui/TextLayoutUi.h"
21 #include "ui/MathsUi.h"
22 #include "ui/LaTeXUi.h"
23 #include "ui/PageLayoutUi.h"
24 #include "ui/LanguageUi.h"
25 #include "ui/BiblioUi.h"
26 #include "ui/NumberingUi.h"
27 #include "ui/MarginsUi.h"
29 // For the Preamble module
30 #include "ui/PreambleUi.h"
32 #include <QCloseEvent>
41 class UiWidget: public QWidget, public UI
44 UiWidget(QWidget * parent = 0) : QWidget(parent)
57 class QDocumentDialog : public QDialog, public Ui::QDocumentUi {
60 friend class QDocument;
62 QDocumentDialog(QDocument *);
64 void updateParams(BufferParams const & params);
65 void apply(BufferParams & params);
67 void updateFontsize(std::string const &, std::string const &);
68 void updatePagestyle(std::string const &, std::string const &);
73 void updateNumbering();
74 void change_adaptor();
75 void validate_listings_params();
76 void saveDefaultClicked();
77 void useDefaultsClicked();
80 void setLSpacing(int);
81 void setMargins(bool);
82 void setCustomPapersize(int);
83 void setCustomMargins(bool);
84 void romanChanged(int);
85 void sansChanged(int);
88 void enableSkip(bool);
89 void portraitChanged();
93 void closeEvent(QCloseEvent * e);
97 UiWidget<Ui::TextLayoutUi> *textLayoutModule;
98 UiWidget<Ui::FontUi> *fontModule;
99 UiWidget<Ui::PageLayoutUi> *pageLayoutModule;
100 UiWidget<Ui::MarginsUi> *marginsModule;
101 UiWidget<Ui::LanguageUi> *langModule;
102 UiWidget<Ui::NumberingUi> *numberingModule;
103 UiWidget<Ui::BiblioUi> *biblioModule;
104 UiWidget<Ui::MathsUi> *mathsModule;
105 UiWidget<Ui::LaTeXUi> *latexModule;
106 PreambleModule *preambleModule;
108 QBranches *branchesModule;
110 BulletsModule * bulletsModule;
111 FloatPlacement * floatModule;
116 std::vector<std::string> lang_;
120 class ControlDocument;
123 : public QController<ControlDocument, QView<QDocumentDialog> >
127 friend class QDocumentDialog;
137 void update_contents();
140 /// save as default template
141 void saveDocDefault();
142 /// reset to default params
143 void useClassDefaults();
147 typedef void const * BufferId;
150 class PreambleModule : public UiWidget<Ui::PreambleUi>
155 void update(BufferParams const & params, BufferId id);
156 void apply(BufferParams & params);
159 /// signal that something's changed in the Widget.
163 void closeEvent(QCloseEvent *);
164 void on_preambleTE_textChanged() { changed(); }
167 typedef std::map<BufferId, std::pair<int,int> > Coords;
168 Coords preamble_coords_;
169 BufferId current_id_;
174 } // namespace frontend
177 #endif // QDOCUMENT_H