Invoke GetDDescription() in a tag
-
On 17/12/2013 at 01:55, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R14
Platform:
Language(s) : C++ ;---------
Hi folks,
I have a simple tag with a dynamic combobox which gets filled in GetDdescription. Like this:Bool ModelMetaDataTag::GetDDescription(GeListNode* node, Description* description, DESCFLAGS_DESC& flags) { if (!description->LoadDescription(node->GetType())) return FALSE; std::vector<String> items; BaseContainer *descbase = description->GetParameterI(DescLevel(1001),NULL); if (descbase) { BaseContainer *listBc = descbase->GetContainerInstance(DESC_CYCLE); if (listBc) { listBc->FlushAll(); // clear combobox for (size_t i = 0; i < items.size(); ++i) { listBc->SetString((LONG)i, items[i]); } } } flags |= DESCFLAGS_DESC_LOADED; return SUPER::GetDDescription(node, description, flags); }
When I have this tag selected and then perform a clone of the document and insert it then the combobox of the tag will be empty and I need to rebuild it by deselecting and activating it again.
For the mentioned procedure I use these python commands:docClone = doc.GetClone(c4d.COPYFLAGS_DOCUMENT) c4d.documents.InsertBaseDocument(docClone)
Now the question how can I restore the content of the combobox immediately when the cloned document gets inserted?
Best regards,
Satara -
On 17/12/2013 at 04:37, xxxxxxxx wrote:
Have you tried setting the DIRTYFLAGS_DESCRIPTION on the tag?
Best,
-Niklas -
On 17/12/2013 at 05:37, xxxxxxxx wrote:
Thanks, totally forgot about that flag. It seems to work, but it does appear empty for a short time. Is it possible to fill the container outside of this function? Shouldn't it be filled already, when the document is just cloned?
-
On 19/12/2013 at 13:31, xxxxxxxx wrote:
Hi Satara,
can you put a debug print in GetDDescription() and check if it is called once before the correct items are
filled in the description?Thanks,
-Niklas -
On 22/12/2013 at 02:43, xxxxxxxx wrote:
Yes it gets called. I have to change the way the list of items gets generated. Thanks for your help.