X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiDocument.h;h=920e95145d102319956b8c1ddc407bae1b3b3c5e;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=7590cdaa931960c0223c9f83ceab7ab4256cf207;hpb=fc36725282df43059aee9a821f098309ccdbd523;p=lyx.git diff --git a/src/frontends/qt4/GuiDocument.h b/src/frontends/qt4/GuiDocument.h index 7590cdaa93..920e95145d 100644 --- a/src/frontends/qt4/GuiDocument.h +++ b/src/frontends/qt4/GuiDocument.h @@ -5,6 +5,7 @@ * Licence details can be found in the file COPYING. * * \author Edwin Leuven + * \author Richard Heck (modules) * * Full author contact details are available in file CREDITS. */ @@ -12,13 +13,17 @@ #ifndef GUIDOCUMENT_H #define GUIDOCUMENT_H -#include "GuiDialogView.h" +#include + +#include "BufferParams.h" #include "BulletsModule.h" -#include "ControlDocument.h" +#include "GuiDialog.h" +#include "GuiIdListModel.h" #include "ui_DocumentUi.h" #include "ui_FontUi.h" #include "ui_TextLayoutUi.h" +#include "ui_MasterChildUi.h" #include "ui_MathsUi.h" #include "ui_LaTeXUi.h" #include "ui_PageLayoutUi.h" @@ -27,74 +32,93 @@ #include "ui_NumberingUi.h" #include "ui_MarginsUi.h" #include "ui_PreambleUi.h" +#include "ui_PDFSupportUi.h" +#include "ui_ModulesUi.h" +#include "ui_OutputUi.h" +#include "ui_ListingsSettingsUi.h" -#include +#include +#include -#include -#include +namespace lyx { +class BufferParams; class FloatPlacement; +class LayoutModuleList; +class TextClass; + +namespace frontend { + +class GuiBranches; +class GuiIndices; +class ModuleSelectionManager; +class PreambleModule; + +/// +typedef void const * BufferId; template class UiWidget : public QWidget, public UI { public: - UiWidget(QWidget * parent = 0) : QWidget(parent) - { - UI::setupUi(this); - } + UiWidget(QWidget * parent = 0) : QWidget(parent) { UI::setupUi(this); } }; -namespace lyx { -namespace frontend { - -class GuiBranches; -class GuiDocument; -class PreambleModule; -class GuiDocumentDialog : public QDialog, public Ui::DocumentUi { +class GuiDocument : public GuiDialog, public Ui::DocumentUi +{ Q_OBJECT public: - friend class GuiDocument; - - GuiDocumentDialog(GuiDocument *); - - void updateParams(BufferParams const & params); - void apply(BufferParams & params); + GuiDocument(GuiView & lv); + void paramsToDialog(); void updateFontsize(std::string const &, std::string const &); + void updateFontlist(); + void updateDefaultFormat(); void updatePagestyle(std::string const &, std::string const &); + bool isChildIncluded(std::string const &); void showPreamble(); - /// validate listings parameters and return an error message, if any - docstring validate_listings_params(); + /// + BufferParams const & params() const { return bp_; } -public Q_SLOTS: +private Q_SLOTS: void updateNumbering(); void change_adaptor(); - void set_listings_msg(); + void includeonlyClicked(QTreeWidgetItem * item, int); + void setListingsMessage(); void saveDefaultClicked(); void useDefaultsClicked(); - -protected Q_SLOTS: void setLSpacing(int); void setMargins(bool); - void setCustomPapersize(int); + void papersizeChanged(int); + void setColSep(); void setCustomMargins(bool); + void fontencChanged(int); void romanChanged(int); void sansChanged(int); void ttChanged(int); + void setIndent(int); + void enableIndent(bool); void setSkip(int); void enableSkip(bool); void portraitChanged(); + void browseLayout(); + void browseMaster(); void classChanged(); - -protected: - void closeEvent(QCloseEvent * e); - + void bibtexChanged(int); + void updateModuleInfo(); + void modulesChanged(); + void changeBackgroundColor(); + void deleteBackgroundColor(); + void xetexChanged(bool); + void branchesRename(docstring const &, docstring const &); private: + /// validate listings parameters and return an error message, if any + QString validateListingsParameters(); UiWidget *textLayoutModule; + UiWidget *masterChildModule; UiWidget *fontModule; UiWidget *pageLayoutModule; UiWidget *marginsModule; @@ -103,55 +127,122 @@ private: UiWidget *biblioModule; UiWidget *mathsModule; UiWidget *latexModule; - PreambleModule *preambleModule; - - GuiBranches *branchesModule; + UiWidget *pdfSupportModule; + UiWidget *modulesModule; + UiWidget *outputModule; + UiWidget *listingsModule; + PreambleModule * preambleModule; + + GuiBranches * branchesModule; + GuiIndices * indicesModule; BulletsModule * bulletsModule; FloatPlacement * floatModule; - GuiDocument * form_; - - /// FIXME - std::vector lang_; -}; - - -class GuiDocument : public GuiView -{ -public: + ModuleSelectionManager * selectionManager; - friend class GuiDocumentDialog; + /// Available modules + GuiIdListModel * availableModel() { return &modules_av_model_; } + /// Selected modules + GuiIdListModel * selectedModel() { return &modules_sel_model_; } - GuiDocument(Dialog &); - - void showPreamble(); - /// parent controller - ControlDocument & controller() - { return static_cast(this->getController()); } - /// parent controller - ControlDocument const & controller() const - { return static_cast(this->getController()); } -private: /// Apply changes - void apply(); + void applyView(); /// update - void update_contents(); - /// build the dialog - void build_dialog(); + void updateContents(); + /// + void updateAvailableModules(); + /// + void updateSelectedModules(); + /// + void updateIncludeonlys(); /// save as default template void saveDocDefault(); /// reset to default params void useClassDefaults(); -protected: + /// + void setLayoutComboByIDString(std::string const & idString); + /// available classes + GuiIdListModel classes_model_; + /// available modules + GuiIdListModel modules_av_model_; + /// selected modules + GuiIdListModel modules_sel_model_; + /// current buffer + BufferId current_id_; + /// return false if validate_listings_params returns error - virtual bool isValid(); + bool isValid(); + + /// font family names for BufferParams::fontsDefaultFamily + static char const * const fontfamilies[5]; + /// GUI names corresponding fontfamilies + static char const * fontfamilies_gui[5]; + /// + bool initialiseParams(std::string const & data); + /// + void clearParams(); + /// + void dispatchParams(); + /// + void modulesToParams(BufferParams &); + /// + bool isBufferDependent() const { return true; } + /// always true since we don't manipulate document contents + bool canApply() const { return true; } + /// + DocumentClass const & documentClass() const; + /// + BufferParams & params() { return bp_; } + /// + BufferId id() const; + /// + struct modInfoStruct { + QString name; + std::string id; + QString description; + }; + /// List of available modules + std::list const & getModuleInfo(); + /// Modules in use in current buffer + std::list const getSelectedModules(); + /// + std::list const getProvidedModules(); + /// + std::list const + makeModuleInfo(LayoutModuleList const & mods); + /// + void setLanguage() const; + /// + void saveAsDefault() const; + /// + bool isFontAvailable(std::string const & font) const; + /// does this font provide Old Style figures? + bool providesOSF(std::string const & font) const; + /// does this font provide true Small Caps? + bool providesSC(std::string const & font) const; + /// does this font provide size adjustment? + bool providesScale(std::string const & font) const; + /// + void executeBranchRenaming() const; + /// + void setCustomPapersize(bool custom); +private: + /// + void loadModuleInfo(); + /// + void updateUnknownBranches(); + /// + BufferParams bp_; + /// List of names of available modules + std::list moduleNames_; + /// + std::map changedBranches_; + /// + std::list includeonlys_; }; -typedef void const * BufferId; - - class PreambleModule : public UiWidget { Q_OBJECT @@ -164,7 +255,7 @@ Q_SIGNALS: /// signal that something's changed in the Widget. void changed(); -protected: +private: void closeEvent(QCloseEvent *); void on_preambleTE_textChanged() { changed(); }