-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open usdview without specifying a file #3321
base: dev
Are you sure you want to change the base?
Open usdview without specifying a file #3321
Conversation
Signed-off-by: Divyansh Mishra <[email protected]>
Requested a signed CLA from my employer. Will send the CLA to Pixar and update this PR as soon as I receive the CLA. |
Filed as internal issue #USD-10199 ❗ Please make sure that a signed CLA has been submitted! |
/AzurePipelines run |
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one suggestion, though others may have feedback also - thanks!
def _getRecommendedFilenamePrefix(self): | ||
return (self._parserData.usdFile.rsplit('.', 1)[0] | ||
if self._parserData.usdFile | ||
else 'new_file') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be something unique, like when we are creating temp files? It's probably unlikely, but if a bunch of "file-less" usdview's are launched and you do live-editing and want to save out the overrides from more than one, if you go with the recommendation you'll stomp your results. OTOH, you will see that the suggestion is the same for both, and have the ability to change it. Just a thought to consider.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
... if you do go that route, given that there's multiple uses of this recommended name, and only one "empty/new stage" per usdview, Seems like we would want just one unique name per-process, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point! The unique names usually look a bit ugly to people, so I wasn't sure about it :). I can replace this function with the following if people think this would be better.
def _getRecommendedFilenamePrefix(self):
return (self._parserData.usdFile.rsplit('.', 1)[0]
if self._parserData.usdFile
else f'new_file_{os.getpid()}_{datetime.now().strftime("%Y%m%d_%H%M%S_%f")[:18]}')
The above function would make a unique name suggestion based on process ID and current datetime (millisecond precision), so almost unique everytime. But could be a bit jarring to look at. Open to suggestions :)
Here's an example of a potential suggestion from the above function:
new_file_12345_20240927_154510_12
We can potentially remove the datetime
portion if we just need a unique name per process ID.
Thanks for the feedback, lmk if anything else stands out.
Hi @MishDivyAmzn, thanks for the PR! Any updates on the CLA? |
Running
usdview
withoutusdFile
positional argument will now open an empty stage. IfusdFile
is passed, then there will be no behavior change.Description of Change(s)
usdFile
positional argement OptionalGetResolverContext
method to return a default context whenusdFile
is not passed.appController
_openStage
method to create an empty stage whenusdFilePath
is a falsy value._saveFlattendedAs
,_saveOverridesAs
and_saveViewerImage
methods to use "new_scene" prefix for recommended file name whenusdFile
is a falsy value.Note: Prior to this change, running
usdview
withoutusdFile
argument would printerror: the following arguments are required: usdFile
.Fixes Issue(s)
#3093