]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiDocument.h
Complete the removal of the embedding stuff. Maybe. It's hard to be sure we got every...
[lyx.git] / src / frontends / qt4 / GuiDocument.h
index 90a93f8314d6cef7114bf4de146cf2b1b1530bf2..92965adea2fa63b77abd660bbe1ba6e58fa335e6 100644 (file)
 #ifndef GUIDOCUMENT_H
 #define GUIDOCUMENT_H
 
-#include "GuiDialog.h"
+#include <QDialog>
+
+#include "BufferParams.h"
 #include "BulletsModule.h"
+#include "GuiDialog.h"
+#include "GuiIdListModel.h"
 #include "GuiSelectionManager.h"
-#include "BufferParams.h"
-
-#include "support/types.h"
 
 #include "ui_DocumentUi.h"
-#include "ui_EmbeddedFilesUi.h"
 #include "ui_FontUi.h"
 #include "ui_TextLayoutUi.h"
 #include "ui_MathsUi.h"
@@ -50,14 +50,10 @@ class GuiBranches;
 class PreambleModule;
 
 ///
-typedef void const * BufferId;
-
-#include <QDialog>
-#include <QStringList>
-#include <QStringListModel>
+QModelIndex getSelectedIndex(QListView * lv);
 
-#include <vector>
-#include <string>
+///
+typedef void const * BufferId;
 
 template<class UI>
 class UiWidget : public QWidget, public UI
@@ -67,6 +63,41 @@ public:
 };
 
 
+/// SelectionManager for use with modules
+class ModuleSelMan : public GuiSelectionManager 
+{
+public:
+       ModuleSelMan(
+               QListView * availableLV, 
+               QListView * selectedLV,
+               QPushButton * addPB, 
+               QPushButton * delPB, 
+               QPushButton * upPB, 
+               QPushButton * downPB,
+               GuiIdListModel * availableModel,
+               GuiIdListModel * selectedModel);
+private:
+       ///
+       virtual void updateAddPB();
+       ///
+       virtual void updateUpPB();
+       ///
+       virtual void updateDownPB();
+       ///
+       virtual void updateDelPB();
+       /// returns availableModel as a GuiIdListModel
+       GuiIdListModel * getAvailableModel() 
+       {
+               return dynamic_cast<GuiIdListModel *>(availableModel);
+       };
+       /// returns selectedModel as a GuiIdListModel
+       GuiIdListModel * getSelectedModel() 
+       {
+               return dynamic_cast<GuiIdListModel *>(selectedModel);
+       };
+};
+
+
 class GuiDocument : public GuiDialog, public Ui::DocumentUi
 {
        Q_OBJECT
@@ -95,6 +126,7 @@ private Q_SLOTS:
        void setLSpacing(int);
        void setMargins(bool);
        void setCustomPapersize(int);
+       void setColSep();
        void setCustomMargins(bool);
        void romanChanged(int);
        void sansChanged(int);
@@ -102,12 +134,9 @@ private Q_SLOTS:
        void setSkip(int);
        void enableSkip(bool);
        void portraitChanged();
+       void browseLayout();
        void classChanged();
        void updateModuleInfo();
-       void updateEmbeddedFileList();
-       
-private:
-       void closeEvent(QCloseEvent * e);
 
 private:
        UiWidget<Ui::TextLayoutUi> *textLayoutModule;
@@ -120,7 +149,6 @@ private:
        UiWidget<Ui::MathsUi> *mathsModule;
        UiWidget<Ui::LaTeXUi> *latexModule;
        UiWidget<Ui::PDFSupportUi> *pdfSupportModule;
-       UiWidget<Ui::EmbeddedFilesUi> *embeddedFilesModule;
        PreambleModule *preambleModule;
        
        GuiBranches *branchesModule;
@@ -130,26 +158,38 @@ private:
 
        GuiSelectionManager * selectionManager;
 
-       // FIXME
-       std::vector<std::string> lang_;
+       ///
+       QStringList lang_;
 
        /// Available modules
-       QStringListModel * availableModel() { return &available_model_; }
+       GuiIdListModel * availableModel() { return &modules_av_model_; }
        /// Selected modules
-       QStringListModel * selectedModel() { return &selected_model_; }
+       GuiIdListModel * selectedModel() { return &modules_sel_model_; }
 private:
        /// Apply changes
        void applyView();
        /// update
        void updateContents();
+       /// force content update
+       void forceUpdate();
+       ///
+       void updateAvailableModules();
+       ///
+       void updateSelectedModules();
        /// save as default template
        void saveDocDefault();
        /// reset to default params
        void useClassDefaults();
+       ///
+       void setLayoutComboByIDString(std::string const & idString);
+       /// available classes
+       GuiIdListModel classes_model_;
        /// available modules
-       QStringListModel available_model_;
+       GuiIdListModel modules_av_model_;
        /// selected modules
-       QStringListModel selected_model_;
+       GuiIdListModel modules_sel_model_;
+       /// current buffer
+       BufferId current_id_;
 
 protected:
        /// return false if validate_listings_params returns error
@@ -170,23 +210,23 @@ protected:
        /// always true since we don't manipulate document contents
        bool canApply() const { return true; }
        ///
-       TextClass const & textClass() const;
+       DocumentClass const & documentClass() const;
        ///
        BufferParams & params() { return bp_; }
        ///
        BufferParams const & params() const { return bp_; }
        ///
        BufferId id() const;
+       ///
+       struct modInfoStruct {
+               QString name;
+               std::string id;
+               QString description;
+       };
        /// List of available modules
-       std::vector<std::string> getModuleNames();
+       std::vector<modInfoStruct> const & getModuleInfo();
        /// Modules in use in current buffer
-       std::vector<std::string> const & getSelectedModules();
-       ///
-       std::string getModuleDescription(std::string const & modName) const;
-       ///
-       std::vector<std::string> getPackageList(std::string const & modName) const;
-       ///
-       bool isModuleAvailable(std::string const & modName) const;
+       std::vector<modInfoStruct> const getSelectedModules();
        ///
        void setLanguage() const;
        ///
@@ -201,17 +241,14 @@ protected:
        bool providesScale(std::string const & font) const;
 private:
        ///
-       void loadModuleNames();
+       void loadModuleInfo();
        ///
        BufferParams bp_;
        /// List of names of available modules
-       std::vector<std::string> moduleNames_;
+       std::vector<modInfoStruct> moduleNames_;
 };
 
 
-typedef void const * BufferId;
-
-
 class PreambleModule : public UiWidget<Ui::PreambleUi>
 {
        Q_OBJECT
@@ -238,4 +275,4 @@ private:
 } // namespace frontend
 } // namespace lyx
 
-#endif // QDOCUMENT_H
+#endif // GUIDOCUMENT_H