#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"
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
};
+/// 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
void setLSpacing(int);
void setMargins(bool);
void setCustomPapersize(int);
+ void setColSep();
void setCustomMargins(bool);
void romanChanged(int);
void sansChanged(int);
void classChanged();
void updateModuleInfo();
void updateEmbeddedFileList();
-
-private:
- void closeEvent(QCloseEvent * e);
private:
UiWidget<Ui::TextLayoutUi> *textLayoutModule;
std::vector<std::string> 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
/// 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 {
+ std::string name;
+ std::string id;
+ };
/// 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;
///
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
} // namespace frontend
} // namespace lyx
-#endif // QDOCUMENT_H
+#endif // GUIDOCUMENT_H