Recent commit cause remove morphs which have been imported

Issue #283 resolved
engetudouiti created an issue

I up-date new version to test new function, but when I open old saved scene (today,,)

then up-date daz importer, now the scene remove most of morphs, but only show one morph for each category like this,,

About cutsom morphs, now it only show, the first category morph (and only one morph) and there seems no check mark any more .

Comments (11)

  1. engetudouiti reporter

    It seems change with user current scene, witch morph visible, but after all, if I collapse all etc,, they not show morphs correctly. (some custom category may disappear,, and remain one morph for each morph category without any check mark)

    I feel some panell issue happend. (or do not know if new function default setting cause issue etc,,)

  2. engetudouiti reporter

    I revert my local to c47c1a1 then, they return.

    So other 3 commits seems cause this issue.

    (I suppose the commit which I requested cause this problem, though I do not know if I re-import all morphs it may work correctly or not,,)

  3. engetudouiti reporter

    I can not check your functions around morphs, (it is complex enough to arrange correctly)

    about commits 3bbffa5

    you change daz.py >> def ShowBool as method of DAZ_PT_Morphs class (to keep clean?)

    if you change it so, do not you need to use self.ShowBool ,when you call it in def displayProp?

    def displayProp(self, name, key, category, rig, layout, scn):
        if key not in rig.keys():
            return
        row = splitLayout(layout, 0.8)
        row.prop(rig, '["%s"]' % key, text=name)
        showBool(row, rig, key)
        op = row.operator("daz.pin_prop", icon='UNPINNED')
        op.key = key
        op.morphset = self.morphset
        op.category = category
    

    it may need to change

    def displayProp(self, name, key, category, rig, layout, scn):
        if key not in rig.keys():
            return
        row = splitLayout(layout, 0.8)
        row.prop(rig, '["%s"]' % key, text=name)
        self.showBool(row, rig, key)
        op = row.operator("daz.pin_prop", icon='UNPINNED')
        op.key = key
        op.morphset = self.morphset
        op.category = category
    

    I suppose..

  4. engetudouiti reporter

    I may try, re-update with change.daz.py , then test how it work, if it solve issue, I report again.

  5. engetudouiti reporter

    When I change it as self.showBool(row, rig, key) it still not work.

    But when I return the showBool(row, rig, key) out of DAZ_PT_Morphs

    (omit change about daz.py only), now it worked.

    I may test again, why it not work, (maybe arguments problem when called)

  6. engetudouiti reporter

    Yes it should be ,,(scope problem)

    it is apparently caused my request (mainly for my purpose only) then untill Thomas solve issue, I attached corrected daz.py , then manually overwrite current installed one, (if someone use recent version which include this commits)

    When we change showBool as DAZ_PT_Morphs class instaqnce method, we need to set self argument . your commit not set self. and not use it when call the instance method ..in the class.

    def showBool(self, layout, ob, key, text=""):
        from .morphing import getExistingActivateGroup
        pg = getExistingActivateGroup(ob, key)
        if pg is not None:
            layout.prop(pg, "active", text=text)
    
    def displayProp(self, name, key, category, rig, layout, scn):
        if key not in rig.keys():
            return
        row = splitLayout(layout, 0.8)
        row.prop(rig, '["%s"]' % key, text=name)
        self.showBool(row, rig, key)
        op = row.operator("daz.pin_prop", icon='UNPINNED')
        op.key = key
        op.morphset = self.morphset
        op.category = category
    

    it worked now,

    (But I actually not have good knowledge about @classmethod or instance method, so I do not know if it is not your fabor.

  7. engetudouiti reporter

    temp fixed version daz.py, overwrite it with currently installed one of this add on. (keep default one, I can not offer any support if it cause issue)

  8. engetudouiti reporter

    btw I hope to say many thanks Thomas. Actually your new getMorhps option really work well . I could not find good way to manage those individually long time, so when I save morph preset, it usually need to keep all morphs or category base only. Even though you already offer check (activate ) system which can manage each morph separately.

    The new function arg work really easy to save and apply morph individually… (can use it same manner when we apply pose only for selected bone etc)

  9. Thomas Larsson repo owner

    Should work now. I intended to make showBool into a function with local scope, but had misunderstood how to do that.

  10. Log in to comment