Example #1
0
def replaceRefUI():

    createdRefs, savedSources = replaceRefs()

    if (createdRefs is None) and (savedSources is None):
        log.logShow()
        return

    pathsToReload = set()
    rhToReload = []

    for rh in getActiveRefHandles():

        path = rh.getRefFilename()

        if path in pathsToReload:
            rhToReload.append(rh)
            continue

        if expandPath(path) in savedSources:
            pathsToReload.add(path)
            rhToReload.append(rh)

    for refHandle in rhToReload:
        refHandle.deactivate()

    maintenanceProcedure()

    rhToReload.extend(createdRefs)
    for refHandle in rhToReload:
        refHandle.activate()

    m.select([rh.refLocator.transform for rh in createdRefs], r=True)

    log.logShow()
Example #2
0
def replaceRefUI():

    createdRefs, savedSources = replaceRefs()

    if (createdRefs is None) and (savedSources is None):
        log.logShow()
        return

    pathsToReload = set()
    rhToReload = []

    for rh in getActiveRefHandles():

        path = rh.getRefFilename()

        if path in pathsToReload:
            rhToReload.append(rh)
            continue

        if expandPath(path) in savedSources:
            pathsToReload.add(path)
            rhToReload.append(rh)

    for refHandle in rhToReload:
        refHandle.deactivate()

    maintenanceProcedure()

    rhToReload.extend(createdRefs)
    for refHandle in rhToReload:
        refHandle.activate()

    m.select([rh.refLocator.transform for rh in createdRefs], r=True)

    log.logShow()
Example #3
0
def retargetRefs(refHandles, targetDir):
    refFilenamesToRetarget = set([os.path.basename(rh.getRefFilename()).lower() for rh in refHandles])
    duplicatesInTargetDir = set()
    targetsDb = {}
    for root, directories, files in os.walk(targetDir):
        for f in files:
            lowCaseFilename = f.lower()
            if lowCaseFilename not in refFilenamesToRetarget:
                continue

            fullPath = cleanupPath(os.path.join(root, f))
            if lowCaseFilename in targetsDb:
                duplicatesInTargetDir.add(f)
            else:
                targetsDb[lowCaseFilename] = fullPath

    notFoundInTargetDir = set()
    rhToRetarget = []
    for rh in refHandles:
        basename = os.path.basename(rh.getRefFilename())
        basenameLower = basename.lower()

        if basenameLower in notFoundInTargetDir:
            continue

        if basenameLower not in targetsDb:
            notFoundInTargetDir.add(basename)
            continue

        rhToRetarget.append((rh, getRelativePath(targetsDb[basenameLower])))

    saveSelection()

    activeRefHandles = [rh for rh, target in rhToRetarget if rh.active]

    # see activateRefs() for explanation why deactivate is not in activate() method
    for refHandle, target in rhToRetarget:
        refHandle.deactivate()

    for refHandle, target in rhToRetarget:
        refHandle.setRefFilename(target)

    for refHandle in activeRefHandles:
        refHandle.activate()

    maintenanceProcedure()
    restoreSelection()

    if duplicatesInTargetDir:
        log.logAppend('Duplicates found in target directory tree for following reference(s) (retargeted to first occurence):')
        log.logAppend(sorted(duplicatesInTargetDir))
    if notFoundInTargetDir:
        log.logAppend('')
        log.logAppend('Following reference(s) was not found in target directory tree (leaved intact):')
        log.logAppend(sorted(notFoundInTargetDir))
    log.logShow()
Example #4
0
def retargetRefs(refHandles, targetDir):
    refFilenamesToRetarget = set(
        [os.path.basename(rh.getRefFilename()).lower() for rh in refHandles])
    duplicatesInTargetDir = set()
    targetsDb = {}
    for root, directories, files in os.walk(targetDir):
        for f in files:
            lowCaseFilename = f.lower()
            if lowCaseFilename not in refFilenamesToRetarget:
                continue

            fullPath = cleanupPath(os.path.join(root, f))
            if lowCaseFilename in targetsDb:
                duplicatesInTargetDir.add(f)
            else:
                targetsDb[lowCaseFilename] = fullPath

    notFoundInTargetDir = set()
    rhToRetarget = []
    for rh in refHandles:
        basename = os.path.basename(rh.getRefFilename())
        basenameLower = basename.lower()

        if basenameLower in notFoundInTargetDir:
            continue

        if basenameLower not in targetsDb:
            notFoundInTargetDir.add(basename)
            continue

        rhToRetarget.append((rh, getRelativePath(targetsDb[basenameLower])))

    saveSelection()

    activeRefHandles = [rh for rh, target in rhToRetarget if rh.active]

    # see activateRefs() for explanation why deactivate is not in activate() method
    for refHandle, target in rhToRetarget:
        refHandle.deactivate()

    for refHandle, target in rhToRetarget:
        refHandle.setRefFilename(target)

    for refHandle in activeRefHandles:
        refHandle.activate()

    maintenanceProcedure()
    restoreSelection()

    if duplicatesInTargetDir:
        log.logAppend(
            'Duplicates found in target directory tree for following reference(s) (retargeted to first occurence):'
        )
        log.logAppend(sorted(duplicatesInTargetDir))
    if notFoundInTargetDir:
        log.logAppend('')
        log.logAppend(
            'Following reference(s) was not found in target directory tree (leaved intact):'
        )
        log.logAppend(sorted(notFoundInTargetDir))
    log.logShow()