PIValueTreeEdit almost finish fullEditMode

This commit is contained in:
2022-12-15 13:05:53 +03:00
parent cdb02fc9be
commit 4bb4e87cc2
10 changed files with 622 additions and 173 deletions

View File

@@ -45,7 +45,8 @@ public:
virtual void setValue(const PIVariant & v) = 0;
virtual PIVariant value() const = 0;
virtual PIVariantMap defaultAttributes() const { return PIVariantMap(); }
virtual PIVariantMap attributes() const { return PIVariantMap(); }
static PIVariantMap defaultAttributes() { return PIVariantMap(); }
template<typename T>
static void registerEditor(uint type_id) {
@@ -53,10 +54,13 @@ public:
piCout << "[PIVariantEditorBase::registerEditor] Editor with typeID" << type_id << "already registered, ignore";
return;
}
factories()[type_id] = []() -> PIVariantEditorBase * { return new T(); };
factories()[type_id] = []() -> PIVariantEditorBase * { return new T(); };
default_attributes()[type_id] = T::defaultAttributes();
}
static PIVariantEditorBase * createEditor(uint type_id);
static bool editorExists(uint type_id);
static PIVariantMap editorDefaultAttributes(uint type_id);
protected:
void createBoxLayout(QBoxLayout::Direction d = QBoxLayout::LeftToRight);
@@ -69,6 +73,7 @@ private:
void changeEvent(QEvent * e) override;
static PIMap<uint, PIVariantEditorBase * (*)()> & factories();
static PIMap<uint, PIVariantMap> & default_attributes();
};
@@ -81,7 +86,7 @@ public:
PIVariant value() const;
void setAttributes(const PIVariantMap & a);
PIVariantMap defaultAttributes() const;
PIVariantMap attributes() const;
void setFullEditMode(bool on);