#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:
QPushButton * delPB,
QPushButton * upPB,
QPushButton * downPB,
- QStringListModel * availableModel,
- QStringListModel * selectedModel);
+ GuiIdListModel * availableModel,
+ GuiIdListModel * selectedModel);
private:
///
virtual void updateAddPB();
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);
+ };
};
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> const & getModuleNames();
+ std::vector<modInfoStruct> const & getModuleInfo();
/// Modules in use in current buffer
- std::vector<std::string> const & getSelectedModules();
+ 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