about.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #
  2. # Copyright (c) Contributors to the Open 3D Engine Project.
  3. # For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. #
  5. # SPDX-License-Identifier: Apache-2.0 OR MIT
  6. #
  7. #
  8. # -------------------------------------------------------------------------
  9. """! brief: An about dialog for the DccScriptingInterface
  10. :file: DccScriptingInterface\\editor\\scripts\\about.py
  11. """
  12. # standard imports
  13. import os
  14. from pathlib import Path
  15. import logging as _logging
  16. from PySide2.QtCore import Qt
  17. from PySide2.QtGui import QDoubleValidator
  18. from PySide2.QtWidgets import QCheckBox, QComboBox, QDialog, QFormLayout, QGridLayout, QGroupBox, QLabel, QLineEdit, QPushButton, QVBoxLayout, QWidget, QSizePolicy
  19. # -------------------------------------------------------------------------
  20. # -------------------------------------------------------------------------
  21. # global scope
  22. from DccScriptingInterface.Editor.Scripts import _PACKAGENAME
  23. _MODULENAME = f'{_PACKAGENAME}.about'
  24. _LOGGER = _logging.getLogger(_MODULENAME)
  25. _LOGGER.debug('Initializing: {0}.'.format({_MODULENAME}))
  26. # -------------------------------------------------------------------------
  27. # -------------------------------------------------------------------------
  28. class DccsiAbout(QDialog):
  29. """! Creates the DcScriptingInterface About Dialog"""
  30. def __init__(self, parent=None):
  31. super(DccsiAbout, self).__init__(parent)
  32. # set main layout
  33. self.main_layout = QVBoxLayout(self)
  34. self.main_layout.setSpacing(20)
  35. dccsi_readme_url = 'https://github.com/o3de/o3de/tree/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/readme.md'
  36. dccsi_maya_readme_url = 'https://github.com/o3de/o3de/tree/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/Tools/DCC/Maya/readme.md'
  37. dccsi_maya_scene_exporter_url = 'https://github.com/o3de/o3de/tree/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/Tools/DCC/Maya/Scripts/Python/scene_exporter/readme.md'
  38. dccsi_blender_readme_url = 'https://github.com/o3de/o3de/blob/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/Tools/DCC/Blender/readme.md'
  39. dccsi_blender_scene_exporter_url = 'https://github.com/o3de/o3de/blob/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/Tools/DCC/Blender/Scripts/addons/SceneExporter/README.md'
  40. dccsi_wing_readme_url = 'https://github.com/o3de/o3de/blob/development/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/Tools/IDE/Wing/readme.md'
  41. self.intro_label = QLabel()
  42. self.intro_label.setOpenExternalLinks(True)
  43. self.intro_label.setText(f"About the O3DE, DccScriptingInterface Gem (DCCsi)<br/><br/>"
  44. f"The DCCsi is an external tools integration framework. It includes popular technical artists tools such as Digital Content Creation tools (DCC). As well as python IDEs for tool development.<br/><br/>"
  45. f"Stand up your studio tools to be configured for your project and o3de workflows.<br/><br/>"
  46. f"This early iteration of the DCCsi includes these features:<br/>"
  47. f"<a href=\'{dccsi_readme_url}/\'>DccScriptingInterface (DCCsi): Readme.md</a><br/>"
  48. f"<a href=\'{dccsi_maya_readme_url}/\'>DCCsi Maya: Readme.md</a><br/>"
  49. f"<a href=\'{dccsi_maya_scene_exporter_url}/\'>DCCsi Maya, Scene Exporter: Readme.md</a><br/>"
  50. f"<a href=\'{dccsi_blender_readme_url}/\'>DCCsi Blender: Readme.md</a><br/>"
  51. f"<a href=\'{dccsi_blender_scene_exporter_url}/\'>DCCsi Blender, Scene Exporter: Readme.md</a><br/>"
  52. f"<a href=\'{dccsi_wing_readme_url}/\'>DCCsi Wing IDE: Readme.md</a><br/><br/>"
  53. f"For help getting started, visit the <a href=\"{dccsi_readme_url}/\">DccScriptingInterface</a> documentation<br/>"
  54. f'or come ask a question in the <a href=\"https://discord.com/channels/805939474655346758/842110573625081876\">O3DE #TechnicalArtists Channel</a> on Discord.</a><br/><br/>'
  55. f'The DccScriptingInterface Gem was created by <a href=\"https://github.com/HogJonny-AMZN/\">HogJonny-AMZN</a> Along with other AWS Design Technologists. Please let me know if you have ideas, enhancement requests, find any bugs, or would like to contribute.<br/><br/>'
  56. f'Enjoy building your studio toolchain!</a><br/><br/>')
  57. size_policy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
  58. size_policy.setHorizontalStretch(0)
  59. size_policy.setVerticalStretch(0)
  60. self.intro_label.setSizePolicy(size_policy)
  61. self.intro_label.setWordWrap(True)
  62. self.main_layout.addWidget(self.intro_label, 0, Qt.AlignCenter)
  63. self.setLayout(self.main_layout)
  64. # -------------------------------------------------------------------------