OpenMW
apps/opencs/view/world/genericcreator.hpp
Go to the documentation of this file.
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