Skip to content

Commit

Permalink
Merge pull request #3255 from Autodesk/azharia/EMSUSD-291/Move-MayaUS…
Browse files Browse the repository at this point in the history
…D-HelpTable-ContentIds-Into-MayaUSD

EMSUSD-291 Refactored MayaUSD help content ids
  • Loading branch information
seando-adsk authored Aug 10, 2023
2 parents c52fa27 + 44801a5 commit 55d44c9
Show file tree
Hide file tree
Showing 11 changed files with 71 additions and 34 deletions.
1 change: 1 addition & 0 deletions lib/mayaUsd/resources/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
add_subdirectory(ae)
add_subdirectory(helpTable)
add_subdirectory(icons)
add_subdirectory(scripts)
8 changes: 8 additions & 0 deletions lib/mayaUsd/resources/helpTable/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# ---------------------------------------------------------------------------------------------
# install
# ---------------------------------------------------------------------------------------------

install(FILES "helpTableMayaUSD"
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/helpTable"
)

10 changes: 10 additions & 0 deletions lib/mayaUsd/resources/helpTable/helpTableMayaUSD
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
UsdEditDuplicateAsMaya
?contextId=UsdEditDuplicateAsMaya
UsdHierarchyView
?contextId=UsdHierarchyView
UsdImportOptionsConfig
?contextId=UsdImportOptionsConfig
UsdLayerEditor
?contextId=UsdLayerEditor
UsdMergeMayaEditsToUsd
?contextId=UsdMergeMayaEditsToUsd
20 changes: 4 additions & 16 deletions lib/mayaUsd/resources/scripts/mayaUsdDuplicateAsUsdDataOptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

from mayaUsdLibRegisterStrings import getMayaUsdLibString
from mayaUsdMergeToUSDOptions import getDefaultMergeToUSDOptionsDict
from mayaUsdUtils import showHelpMayaUSD
import mayaUsdOptions

from functools import partial


Expand Down Expand Up @@ -72,9 +72,8 @@ def _createDuplicateAsUsdDataOptionsDialog(window):
cmds.menuItem(label=getMayaUsdLibString("kResetSettingsMenuItem"), command=partial(_resetDuplicateAsUsdDataOptions, subLayout))

cmds.setParent(menuBarLayout)
if _hasDuplicateAsUsdDataOptionsHelp():
menu = cmds.menu(label=getMayaUsdLibString("kHelpMenu"), parent=menuBarLayout)
cmds.menuItem(label=getMayaUsdLibString("kHelpDuplicateAsUsdDataOptionsMenuItem"), command=_helpDuplicateAsUsdDataOptions)
menu = cmds.menu(label=getMayaUsdLibString("kHelpMenu"), parent=menuBarLayout)
cmds.menuItem(label=getMayaUsdLibString("kHelpDuplicateAsUsdDataOptionsMenuItem"), command=_helpDuplicateAsUsdDataOptions)

buttonsLayout = cmds.formLayout(parent=windowFormLayout)

Expand Down Expand Up @@ -150,22 +149,11 @@ def _fillDuplicateAsUsdDataOptionsDialog(subLayout, optionsText, action):
mayaUsdTranslatorExport("{subLayout}", "{action}=all;!output", "{optionsText}", "")
'''.format(optionsText=optionsText, subLayout=subLayout, action=action))


def _hasDuplicateAsUsdDataOptionsHelp():
"""
Returns True if the help topic for the options is available in Maya.
"""
# Note: catchQuiet returns 0 or 1, not the value, so we use a dummy assignment
# to produce the value to be returned by eval().
url = mel.eval('''catchQuiet($url = `showHelp -q "''' + _kDuplicateAsUsdDataOptionsHelpContentId + '''"`); $a = $url;''')
return bool(url)

def _helpDuplicateAsUsdDataOptions(data=None):
"""
Shows help on the duplicate-as-Usd-data options dialog.
"""
cmds.showHelp(_kDuplicateAsUsdDataOptionsHelpContentId)

showHelpMayaUSD(_kDuplicateAsUsdDataOptionsHelpContentId);

def _getDuplicateAsUsdDataOptionsVarName():
"""
Expand Down
19 changes: 4 additions & 15 deletions lib/mayaUsd/resources/scripts/mayaUsdMergeToUSDOptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import maya.mel as mel

from mayaUsdLibRegisterStrings import getMayaUsdLibString
from mayaUsdUtils import showHelpMayaUSD
import mayaUsdOptions

from functools import partial
Expand Down Expand Up @@ -90,9 +91,8 @@ def _createMergeToUSDOptionsDialog(window, target):
cmds.menuItem(label=getMayaUsdLibString("kResetSettingsMenuItem"), command=partial(_resetMergeToUSDOptions, target, subLayout))

cmds.setParent(menuBarLayout)
if _hasMergeToUSDOptionsHelp():
menu = cmds.menu(label=getMayaUsdLibString("kHelpMenu"), parent=menuBarLayout)
cmds.menuItem(label=getMayaUsdLibString("kHelpMergeToUSDOptionsMenuItem"), command=_helpMergeToUSDOptions)
menu = cmds.menu(label=getMayaUsdLibString("kHelpMenu"), parent=menuBarLayout)
cmds.menuItem(label=getMayaUsdLibString("kHelpMergeToUSDOptionsMenuItem"), command=_helpMergeToUSDOptions)

buttonsLayout = cmds.formLayout(parent=windowFormLayout)

Expand Down Expand Up @@ -218,22 +218,11 @@ def _fillMergeToUSDOptionsDialog(target, subLayout, optionsText, action):
mayaUsdTranslatorExport("{subLayout}", "{action}=all;!output", "{optionsText}", "")
'''.format(optionsText=optionsText, subLayout=subLayout, action=action))


def _hasMergeToUSDOptionsHelp():
"""
Returns True if the help topic for the options is available in Maya.
"""
# Note: catchQuiet returns 0 or 1, not the value, so we use a dummy assignment
# to produce the value to be returned by eval().
url = mel.eval('''catchQuiet($url = `showHelp -q "''' + _kMergeToUSDOptionsHelpContentId + '''"`); $a = $url;''')
return bool(url)

def _helpMergeToUSDOptions(data=None):
"""
Shows help on the merge-to-USD options dialog.
"""
# TODO: add help about the options UI instead of the merge command
cmds.showHelp(_kMergeToUSDOptionsHelpContentId)
showHelpMayaUSD(_kMergeToUSDOptionsHelpContentId)


def _getMergeToUSDOptionsVarName():
Expand Down
34 changes: 34 additions & 0 deletions lib/mayaUsd/resources/scripts/mayaUsdUtils.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,4 +211,38 @@ def saveWantPayloadLoaded(want):
opVarName = "mayaUsd_WantPayloadLoaded"
cmds.optionVar(iv=(opVarName, want))

def showHelpMayaUSD(contentId):
"""
Helper method to display help content.
Note that this is a wrapper around Maya's showHelp() method and showHelpMayaUSD()
should be used for all help contents in Maya USD.
Example usage of this method:
- In Python scripts:
from mayaUsdUtils import showHelpMayaUSD
showHelpMayaUSD("someContentId");
- In MEL scripts:
python(\"from mayaUsdUtils import showHelpMayaUSD; showHelpMayaUSD('someContentId');\")
- In C++:
MGlobal::executePythonCommand(
"from mayaUsdUtils import showHelpMayaUSD; showHelpMayaUSD(\"someContentId\");");
Input contentId refers to the contentId that is registered in helpTableMayaUSD
file which is used to open help pages.
"""
import os

try:
# Finding the path to helpTableMayaUSD file.
helpTablePath = os.path.join(os.environ['MAYAUSD_LIB_LOCATION'], 'helpTable/helpTableMayaUSD');
# Setting the default helpTable to helpTableMayaUSD
cmds.showHelp(helpTablePath, helpTable=True)
# Showing the help content
cmds.showHelp(contentId)
finally:
# Restoring Maya's default helpTable
cmds.showHelp('helpTable', helpTable=True)
3 changes: 2 additions & 1 deletion lib/usd/ui/importDialog/USDImportDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,8 @@ void USDImportDialog::onResetFileTriggered()

void USDImportDialog::onHierarchyViewHelpTriggered()
{
MGlobal::executeCommand("showHelp \"UsdHierarchyView\"");
MGlobal::executePythonCommand(
"from mayaUsdUtils import showHelpMayaUSD; showHelpMayaUSD(\"UsdHierarchyView\");");
}

void USDImportDialog::onCheckedStateChanged(int nbChecked)
Expand Down
6 changes: 5 additions & 1 deletion lib/usd/ui/layerEditor/mayaCommandHook.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,11 @@ void MayaCommandHook::muteSubLayer(UsdLayer usdLayer, bool muteIt)
}

// Help menu callback
void MayaCommandHook::showLayerEditorHelp() { executeMel("showHelp UsdLayerEditor"); }
void MayaCommandHook::showLayerEditorHelp()
{
MGlobal::executePythonCommand(
"from mayaUsdUtils import showHelpMayaUSD; showHelpMayaUSD(\"UsdLayerEditor\");");
}

// this method is used to select the prims with spec in a layer
void MayaCommandHook::selectPrimsWithSpec(UsdLayer usdLayer)
Expand Down
1 change: 1 addition & 0 deletions modules/mayaUSD.mod.template
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ${PXR_OVERRIDE_PLUGINPATH_NAME}+:=lib/usd
MAYAUSD_VERSION=${MAYAUSD_VERSION}
PXR_MTLX_STDLIB_SEARCH_PATHS+:=libraries
${MAYAUSD_GTEST_PATH}
MAYAUSD_LIB_LOCATION:=lib

+ MayaUSD ${MAYAUSD_VERSION} ${CMAKE_INSTALL_PREFIX}/plugin/adsk
plug-ins: plugin
1 change: 1 addition & 0 deletions modules/mayaUSD_Win.mod.template
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ ${PXR_OVERRIDE_PLUGINPATH_NAME}+:=lib/usd
MAYAUSD_VERSION=${MAYAUSD_VERSION}
PXR_MTLX_STDLIB_SEARCH_PATHS+:=libraries
${MAYAUSD_GTEST_PATH}
MAYAUSD_LIB_LOCATION:=lib

+ MayaUSD ${MAYAUSD_VERSION} ${CMAKE_INSTALL_PREFIX}/plugin/adsk
plug-ins: plugin
2 changes: 1 addition & 1 deletion plugin/adsk/scripts/USDMenuProc.mel
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ global proc mayaUsdMenu_EditAsMayaDataOptions(string $obj)
if ($helpItem != "") {
menuItem -edit
-label `getMayaUsdString("kHelpOnEditAsMayaDataOptions")`
-command ( "showHelp UsdImportOptionsConfig" )
-command ("python(\"from mayaUsdUtils import showHelpMayaUSD; showHelpMayaUSD('UsdImportOptionsConfig');\")")
$helpItem;
}

Expand Down

0 comments on commit 55d44c9

Please sign in to comment.