OpenMW
|
00001 #ifndef CSV_WORLD_GENERICCREATOR_H 00002 #define CSV_WORLD_GENERICCREATOR_H 00003 00004 class QPushButton; 00005 class QLineEdit; 00006 class QHBoxLayout; 00007 00008 #include "creator.hpp" 00009 00010 #include "../../model/world/universalid.hpp" 00011 00012 namespace CSMWorld 00013 { 00014 class CreateCommand; 00015 } 00016 00017 namespace CSVWorld 00018 { 00019 class GenericCreator : public Creator 00020 { 00021 Q_OBJECT 00022 00023 CSMWorld::Data& mData; 00024 QUndoStack& mUndoStack; 00025 CSMWorld::UniversalId mListId; 00026 QPushButton *mCreate; 00027 QLineEdit *mId; 00028 std::string mErrors; 00029 QHBoxLayout *mLayout; 00030 bool mLocked; 00031 00032 protected: 00033 00034 void update(); 00035 00036 virtual void setManualEditing (bool enabled); 00038 00039 void insertAtBeginning (QWidget *widget, bool stretched); 00040 00041 void insertBeforeButtons (QWidget *widget, bool stretched); 00042 00043 virtual std::string getId() const; 00044 00045 virtual void configureCreateCommand (CSMWorld::CreateCommand& command) const; 00046 00047 CSMWorld::Data& getData() const; 00048 00049 const CSMWorld::UniversalId& getCollectionId() const; 00050 00051 public: 00052 00053 GenericCreator (CSMWorld::Data& data, QUndoStack& undoStack, 00054 const CSMWorld::UniversalId& id, bool relaxedIdRules = false); 00055 00056 virtual void setEditLock (bool locked); 00057 00058 virtual void reset(); 00059 00060 virtual std::string getErrors() const; 00063 00064 00065 private slots: 00066 00067 void textChanged (const QString& text); 00068 00069 void create(); 00070 }; 00071 } 00072 00073 #endif