Added support for asyncronous commands

Implemented command to issue a recompute of statistics for a statistics case on project loading
p4#: 22417
This commit is contained in:
Magne Sjaastad
2013-09-16 07:42:30 +02:00
parent 39178578de
commit 91adbe79bf
5 changed files with 251 additions and 15 deletions

View File

@@ -36,6 +36,8 @@ public:
RimCommandObject();
virtual ~RimCommandObject();
virtual bool isAsyncronous() { return false; };
virtual void redo() {};
virtual void undo() {};
};
@@ -64,6 +66,35 @@ public:
virtual caf::PdmFieldHandle* userDescriptionField();
virtual void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue );
virtual bool isAsyncronous();
};
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
class RimCommandIssueFieldChanged : public RimCommandObject
{
CAF_PDM_HEADER_INIT;
public:
RimCommandIssueFieldChanged();
virtual ~RimCommandIssueFieldChanged();
caf::PdmField<QString> commandName;
caf::PdmField<QString> objectName;
caf::PdmField<QString> fieldName;
caf::PdmField<QString> fieldValueToApply;
virtual void redo();
virtual void undo();
virtual caf::PdmFieldHandle* userDescriptionField();
private:
void childObjects(caf::PdmObject* pdmObject, std::vector<caf::PdmObject*>& children);
caf::PdmObject* findObjectByName(caf::PdmObject* root, const QString& objectName);
caf::PdmFieldHandle* findFieldByKeyword(caf::PdmObject* pdmObject, const QString& fieldName);
};