Shotgun Engine for the Shell
Shotgun Support in a Shell
This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide if you do not have a more advanced configuration. The Shotgun engine for the shell works in conjunction with the Tank command. Once the engine has been installed, you can run Shotgun Pipeline Toolkit apps straight from the command line. The Tank command will take care of listing and presenting the user with the different installed apps that are available. The engine forms the bridge between the terminal and the installed apps. If you have PySide or PyQt installed, you can run apps that have a UI straight from a shell.
The Shotgun engine for the shell handles command line interaction and is tightly integrated with the
tank command which is distributed as part of the Core API. When you execute the
tank command in a terminal, Toolkit launches the engine to handle app execution.
For more information about the
tank command, please see our main documentation:
Installation and Updates
Adding this Engine to the Shotgun Pipeline Toolkit
If you want to add this engine to Project XYZ, and an environment named asset, execute the following command:
> tank Project XYZ install_engine asset tk-shell
Updating to the latest version
If you already have this item installed in a project and you want to get the latest
version, you can run the
update command. You can either navigate to the
tank command that comes with that specific project, and run it there:
> cd /my_tank_configs/project_xyz > ./tank updates
Alternatively, you can run your studio
tank command and specify the project
name to tell it which project to run the update check for:
> tank Project XYZ updates
Collaboration and Evolution
If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at https://github.com/shotgunsoftware/tk-shell.
- You need Shotgun Pipeline Toolkit Core API version v0.14.56 or higher to use this.
No Configuration Needed!
This item does not have any options to configure!
Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!
Updated for use with new core metrics
Adds back in Qt library path clearing, but only for KDE Linux.
Removes the clearing of Qt library paths introduced in v0.5.2.
This has been removed in favor of a safer and more-targeted implementation of the same in tk-multi-launchapp.
Fixes crashes on multiple Linux distributions when QT_PLUGINS_PATH is set.
Check for existing QApplication in engine.execute_command()
Check for an existing QApplication before attempting to create one. If a QApplication is already running, execute the input command immediately. If a QApplication needs to be created, do so, then queue the input command to execute using QTimer.singleShot() and start the exec_() loop. Resolves #38354.
Allows on-the-fly context changes.
As with the tk-nuke engine, context changes in the shell engine can now be performed via the sgtk.platform.change_context() function.
Fixed a PyQt issue with dialogs and made the engine more flexible about when PyQt/PySide can be used to show UIs.
- Fixes an issue with PyQt where the
exec_method on dialogs always returned
None. (thanks Jonathan Stone!)
- The engine used to allow UIs to be displayed using the engine's
showmethods only if they were executed through commands. Now the engine allows the methods to be invoked as soon as a
QApplicationis made available. Therefore this allows UIs to be shown while using the
Improved logic for indication of a UI present
This changes the meaning of the has_ui property so that it is consistent with other engines. Previously has_ui would return True as soon as a valid pyside/pyqt4 was detected. This is inconsistent with other engines, where has_ui indicates that an active UI is present and running. This pull request adjusts the shotgun engine so that has_ui only returns true when a QApplication is actually active in the system.
Updated visual style to better match Maya.
Details: This change affects the visual appearance of all apps running in the engine, making their visual appearance much more consistent with the look and feel that you would get inside Maya. Please note that after this upgrade, app UIs will look slightly different.
Updated PySide version handling to support very old versions!
Added a default application icon for UI apps.
Added support for optional App command arguments
Updated PyQt compatibility
Now uses the built in QT stylesheet introduced in Core v0.14.28.
Updated QT Style Sheet to include a border around text input elements.
Added better unicode support
Renames and support for the new name Sgtk.
Added PyQt Support.
Engine now supports PyQt4 for UIs. This is detected at runtime, and if tank can load PyQt4 from the python system path, it will attempt to use it. This is a fallback in case PySide is not found.
Better error messages when PySide/PyQt4 is not installed - the engine now presents some more polished feedback in the case a UI based app is launched but neither PySide nor PyQt exists to handle the UI creation.
Better handling of keyboard interrupts.
Fixed a bug which could cause apps raising Exceptions to be stuck in a loop.
Adjustments to PyQt Support
Fixed issue when running some apps with PyQt.
Minor adjustments to PyQt initialization.
Added support for app arguments
Engine is now compliant with Tank Core v0.13
Details: - Added QT support - Added support for Core v0.13 specifics; logging, execution etc.
Adjustments to work nicely with core v0.12.5