aboutsummaryrefslogtreecommitdiff
path: root/Documentation/build/_modules/Interfaces/ART_AnimationUI.html
diff options
context:
space:
mode:
authorMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
committerMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
commit24725fa8681f906ab44d80687c09fecc171a2896 (patch)
tree312a601df29aca7f8db9f44082d96ebc7a679138 /Documentation/build/_modules/Interfaces/ART_AnimationUI.html
parentInitial commit (diff)
downloadartv2-24725fa8681f906ab44d80687c09fecc171a2896.tar.xz
artv2-24725fa8681f906ab44d80687c09fecc171a2896.zip
Initial Submission
First submission of current state of ARTv2. Currently considered to be in Alpha. There are a couple of animation tools not implemented yet, and one module not implemented yet, as well as incomplete documentation.
Diffstat (limited to 'Documentation/build/_modules/Interfaces/ART_AnimationUI.html')
-rw-r--r--Documentation/build/_modules/Interfaces/ART_AnimationUI.html2251
1 files changed, 2251 insertions, 0 deletions
diff --git a/Documentation/build/_modules/Interfaces/ART_AnimationUI.html b/Documentation/build/_modules/Interfaces/ART_AnimationUI.html
new file mode 100644
index 0000000..c2dea37
--- /dev/null
+++ b/Documentation/build/_modules/Interfaces/ART_AnimationUI.html
@@ -0,0 +1,2251 @@
+
+
+<!doctype html>
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Interfaces.ART_AnimationUI &#8212; ARTv2 1.0 documentation</title>
+
+ <link rel="stylesheet" href="../../_static/bizstyle.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '1.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true,
+ SOURCELINK_SUFFIX: '.txt'
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <script type="text/javascript" src="../../_static/bizstyle.js"></script>
+ <link rel="index" title="Index" href="../../genindex.html" />
+ <link rel="search" title="Search" href="../../search.html" />
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
+ <!--[if lt IE 9]>
+ <script type="text/javascript" src="_static/css3-mediaqueries.js"></script>
+ <![endif]-->
+ </head>
+ <body role="document">
+ <div class="related" role="navigation" aria-label="related navigation">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="nav-item nav-item-0"><a href="../../index.html">ARTv2 1.0 documentation</a> &#187;</li>
+ <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</li>
+ </ul>
+ </div>
+ <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+ <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none" role="search">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <div><input type="text" name="q" /></div>
+ <div><input type="submit" value="Go" /></div>
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body" role="main">
+
+ <h1>Source code for Interfaces.ART_AnimationUI</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Author: Jeremy Ernst</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<span class="c1"># import statements</span>
+<span class="kn">import</span> <span class="nn">json</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">from</span> <span class="nn">functools</span> <span class="k">import</span> <span class="n">partial</span>
+
+<span class="kn">import</span> <span class="nn">maya.cmds</span> <span class="k">as</span> <span class="nn">cmds</span>
+
+<span class="kn">import</span> <span class="nn">System.interfaceUtils</span> <span class="k">as</span> <span class="nn">interfaceUtils</span>
+<span class="kn">import</span> <span class="nn">System.utils</span> <span class="k">as</span> <span class="nn">utils</span>
+<span class="kn">from</span> <span class="nn">ThirdParty.Qt</span> <span class="k">import</span> <span class="n">QtGui</span><span class="p">,</span> <span class="n">QtCore</span><span class="p">,</span> <span class="n">QtWidgets</span>
+
+<span class="c1"># maya 2016&lt; maya2017&gt; compatability</span>
+<span class="k">try</span><span class="p">:</span>
+ <span class="kn">import</span> <span class="nn">shiboken</span> <span class="k">as</span> <span class="nn">shiboken</span>
+<span class="k">except</span><span class="p">:</span>
+ <span class="kn">import</span> <span class="nn">shiboken2</span> <span class="k">as</span> <span class="nn">shiboken</span>
+
+<span class="n">_instances</span> <span class="o">=</span> <span class="p">[]</span>
+
+
+<div class="viewcode-block" id="getMainWindow"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.getMainWindow">[docs]</a><span class="k">def</span> <span class="nf">getMainWindow</span><span class="p">():</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Get Maya&#39;s window as a QWidget and return the item in memory.</span>
+
+<span class="sd"> :return: a QWidget of Maya&#39;s window</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get maya&#39;s window as QWidget</span>
+ <span class="kn">import</span> <span class="nn">maya.OpenMayaUI</span> <span class="k">as</span> <span class="nn">mui</span>
+ <span class="n">pointer</span> <span class="o">=</span> <span class="n">mui</span><span class="o">.</span><span class="n">MQtUtil</span><span class="o">.</span><span class="n">mainWindow</span><span class="p">()</span>
+ <span class="c1"># pyside QMainWindow takes in a QWidget rather than QObject</span>
+ <span class="k">return</span> <span class="n">shiboken</span><span class="o">.</span><span class="n">wrapInstance</span><span class="p">(</span><span class="n">long</span><span class="p">(</span><span class="n">pointer</span><span class="p">),</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="ART_AnimationUI"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI">[docs]</a><span class="k">class</span> <span class="nc">ART_AnimationUI</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMainWindow</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> This class creates the main animation interface that houses the control picker and the buttons for the animation</span>
+<span class="sd"> tools. This is the main interface that animators will interact with.</span>
+
+<span class="sd"> .. image:: /images/animationUI.png</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+<div class="viewcode-block" id="ART_AnimationUI.__init__"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.__init__">[docs]</a> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates the class, getting the QSettings, writing the stylesheets, and calling on the method to build</span>
+<span class="sd"> the interface.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">_instances</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+
+ <span class="nb">super</span><span class="p">(</span><span class="n">ART_AnimationUI</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
+
+ <span class="c1"># get the directory path of the tools</span>
+ <span class="n">settings</span> <span class="o">=</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QSettings</span><span class="p">(</span><span class="s2">&quot;Epic Games&quot;</span><span class="p">,</span> <span class="s2">&quot;ARTv2&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">&quot;toolsPath&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">&quot;iconPath&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">scriptPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">&quot;scriptPath&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">projectPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">&quot;projectPath&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">center</span> <span class="o">=</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QPointF</span><span class="p">(</span><span class="mf">210.000000</span><span class="p">,</span> <span class="mf">287.500000</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mf">1.0</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectionScriptJobs</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># assign close event</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">closeEvent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">closeEvent</span>
+
+ <span class="c1"># write out qss based on user settings</span>
+ <span class="n">stylesheetDir</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scriptPath</span><span class="p">,</span> <span class="s2">&quot;Interfaces/StyleSheets/&quot;</span><span class="p">)</span>
+ <span class="n">stylesheets</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">stylesheetDir</span><span class="p">)</span>
+
+ <span class="k">for</span> <span class="n">sheet</span> <span class="ow">in</span> <span class="n">stylesheets</span><span class="p">:</span>
+ <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">writeQSS</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">stylesheetDir</span><span class="p">,</span> <span class="n">sheet</span><span class="p">))</span>
+
+ <span class="c1"># build the UI</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">buildUI</span><span class="p">()</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.buildUI"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.buildUI">[docs]</a> <span class="k">def</span> <span class="nf">buildUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Builds the animation UI that houses the area for control pickers and a sidebar for animation tools.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># create the main widget</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">setCentralWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span><span class="p">)</span>
+
+ <span class="c1"># create the mainLayout</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">layout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span><span class="p">)</span>
+
+ <span class="c1"># load stylesheet</span>
+ <span class="n">styleSheetFile</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Scripts/Interfaces/StyleSheets/animPicker.qss&quot;</span><span class="p">)</span>
+ <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">styleSheetFile</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+ <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">550</span><span class="p">,</span> <span class="mi">400</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">550</span><span class="p">,</span> <span class="mi">750</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">550</span><span class="p">,</span> <span class="mi">750</span><span class="p">)</span>
+
+ <span class="c1"># set qt object name</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;pyART_AnimTools_Win&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s2">&quot;Animation Tools&quot;</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #create the menu bar</span>
+ <span class="c1"># =======================================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">menuBar</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMenuBar</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">menuBar</span><span class="o">.</span><span class="n">setMaximumHeight</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">menuBar</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #create the picker toolbar layout</span>
+ <span class="c1"># =======================================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;dark&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span><span class="o">.</span><span class="n">setMinimumHeight</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span><span class="o">.</span><span class="n">setMaximumHeight</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolFrame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">setDirection</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QBoxLayout</span><span class="o">.</span><span class="n">RightToLeft</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addStretch</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">setSpacing</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #picker toolbar buttons</span>
+ <span class="c1"># =======================================================================</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">&quot;Edit&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">90</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">90</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">editPicker</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Make module pickers editable (move, scale, rotate)&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">&quot;Create&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">90</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">90</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Create a new picker for the given character.&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">createPickerBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">createNewPicker</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/removeModule.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">removeModuleFromPickerUI</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Remove a module&#39;s picker from the canvas.&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/movePicker.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">movePickerToTab</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Move a picker from one tab to another.&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/moduleList.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">addModuleToPickerUI</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Add a module&#39;s picker to the current canvas.&quot;</span><span class="p">)</span>
+
+ <span class="c1"># background image button</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/background.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Change the background of the current picker tab.&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">changeBackground</span><span class="p">))</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addSpacerItem</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
+
+ <span class="n">buttonGrp</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QButtonGroup</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="p">)</span>
+ <span class="n">buttonGrp</span><span class="o">.</span><span class="n">setExclusive</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/normalSelect_On.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setCheckable</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setChecked</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Change picker selection mode to normal selection&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toggleDragState</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/dragSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setCheckable</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Change picker selection mode to drag selection&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toggleDragState</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/commentMode.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setCheckable</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Add Comment Box Mode&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toggleDragState</span><span class="p">)</span>
+
+ <span class="n">buttonGrp</span><span class="o">.</span><span class="n">addButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="p">)</span>
+ <span class="n">buttonGrp</span><span class="o">.</span><span class="n">addButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="p">)</span>
+ <span class="n">buttonGrp</span><span class="o">.</span><span class="n">addButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="p">)</span>
+
+ <span class="c1"># self.toolbarLayout.addSpacerItem(QtWidgets.QSpacerItem(10, 0))</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/save.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">savePicker</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">saveTemplateBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Save a picker file&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/load.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toolbarLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">loadPicker</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadTemplateBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Load a picker file&quot;</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #create the horizontal layout, with the left column giving us the picker canvas area,</span>
+ <span class="c1"># and the right a toolbar for animation tools</span>
+ <span class="c1"># =======================================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">layout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainLeftColumnLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainLeftColumnLayout</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainRightColumnLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainRightColumnLayout</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #left column - picker canvas</span>
+ <span class="c1"># =======================================================================</span>
+
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> the picker canvas will consist of a tab layout at the top, one per character in scene,</span>
+<span class="sd"> and in each of those tabs, another tab layout to hold the pages of the picker</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;epic&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainLeftColumnLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">470</span><span class="p">,</span> <span class="mi">700</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">470</span><span class="p">,</span> <span class="mi">700</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pickerMainWidget</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;tabVariant&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">450</span><span class="p">,</span> <span class="mi">670</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">450</span><span class="p">,</span> <span class="mi">670</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">75</span><span class="p">,</span> <span class="mi">75</span><span class="p">))</span>
+
+ <span class="c1"># look for characters in scene to create character tabs</span>
+ <span class="n">charactersFound</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">findCharacters</span><span class="p">()</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">charactersFound</span><span class="p">:</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;No characters found in scene.&quot;</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================================</span>
+ <span class="c1"># #right column - toolbar</span>
+ <span class="c1"># =======================================================================</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;epic2&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainRightColumnLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span> <span class="mi">750</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span> <span class="mi">750</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">animToolsFrame</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addSpacerItem</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">75</span><span class="p">,</span> <span class="mi">75</span><span class="p">))</span>
+
+ <span class="c1"># Select Controls</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/animSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectAllCtrls</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectCtrlBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Select All Controls&quot;</span><span class="p">)</span>
+
+ <span class="c1"># Export Motion</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/export.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exportMotion</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">exportMotionBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Export Motion&quot;</span><span class="p">)</span>
+
+ <span class="c1"># Import Motion</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/import.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">importMotion</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">importMotionBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Import Motion&quot;</span><span class="p">)</span>
+
+ <span class="c1"># Match Over Frame Range</span>
+
+ <span class="n">movie</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QMovie</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/matchRange.gif&quot;</span><span class="p">))</span>
+ <span class="n">movie</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">matchOverRange</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Match Over Frame Range&quot;</span><span class="p">)</span>
+
+ <span class="n">movie</span><span class="o">.</span><span class="n">frameChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">setButtonIcon</span><span class="p">,</span> <span class="n">movie</span><span class="p">))</span>
+ <span class="n">movie</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
+
+ <span class="k">if</span> <span class="n">movie</span><span class="o">.</span><span class="n">loopCount</span><span class="p">()</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+ <span class="n">movie</span><span class="o">.</span><span class="n">finished</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">movie</span><span class="o">.</span><span class="n">start</span><span class="p">())</span>
+
+ <span class="c1"># Reset Module</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/animReset.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">65</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;toolbar&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resetRigCtrls</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">resetModuleBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Reset modules tool&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">animToolsLayout</span><span class="o">.</span><span class="n">addSpacerItem</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">75</span><span class="p">,</span> <span class="mi">600</span><span class="p">))</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.setButtonIcon"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.setButtonIcon">[docs]</a> <span class="k">def</span> <span class="nf">setButtonIcon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">movie</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Sets the icon of the matchRangeBtn to the next frame in the passed in movie. Note: This was a test function</span>
+<span class="sd"> to see if animated gifs could be used as buttons.</span>
+
+<span class="sd"> :param movie: The movie whose frame to change.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">matchRangeBtn</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">movie</span><span class="o">.</span><span class="n">currentPixmap</span><span class="p">()))</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.findCharacters"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.findCharacters">[docs]</a> <span class="k">def</span> <span class="nf">findCharacters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Finds all assets in the scene built with ARTv2, and creates a picker tab for each one in the animation UI.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">allNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="s2">&quot;network&quot;</span><span class="p">)</span>
+ <span class="n">characterNodes</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">allNodes</span><span class="p">:</span>
+ <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+ <span class="k">if</span> <span class="s2">&quot;rigModules&quot;</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
+ <span class="n">characterNodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">characterNodes</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+ <span class="k">return</span> <span class="kc">False</span>
+
+ <span class="k">else</span><span class="p">:</span>
+ <span class="c1"># go through each node, find the character name, the namespace on the node, and the picker attribute</span>
+ <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">characterNodes</span><span class="p">:</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">&quot;.namespace&quot;</span><span class="p">)</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">&quot;.name&quot;</span><span class="p">)</span>
+
+ <span class="n">picker</span> <span class="o">=</span> <span class="kc">False</span>
+
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">&quot;.pickerFile&quot;</span><span class="p">):</span>
+ <span class="n">pickerFile</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">&quot;.pickerFile&quot;</span><span class="p">)</span>
+ <span class="n">pickerPath</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Pickers/&quot;</span><span class="p">)</span>
+
+ <span class="n">picker</span> <span class="o">=</span> <span class="kc">True</span>
+
+ <span class="c1"># create the tab for the given namespace</span>
+ <span class="n">characterWidget</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">()</span>
+ <span class="n">characterWidget</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;charNode&quot;</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
+ <span class="n">characterWidget</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">720</span><span class="p">)</span>
+ <span class="n">characterWidget</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">720</span><span class="p">)</span>
+ <span class="n">characterWidget</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;namespace&quot;</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
+
+ <span class="c1"># add the icon found on the node&#39;s icon path attribute to the tab</span>
+ <span class="n">iconPath</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">&quot;.iconPath&quot;</span><span class="p">)</span>
+ <span class="n">iconPath</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">projectPath</span><span class="p">,</span> <span class="n">iconPath</span><span class="p">)</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">iconPath</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">addTab</span><span class="p">(</span><span class="n">characterWidget</span><span class="p">,</span> <span class="n">icon</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">indexOf</span><span class="p">(</span><span class="n">characterWidget</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setTabToolTip</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
+
+ <span class="c1"># if a picker file existed, load it. Otherwise, display an image telling the user to either</span>
+ <span class="c1"># load a file or create a picker</span>
+ <span class="n">frame</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">(</span><span class="n">characterWidget</span><span class="p">)</span>
+ <span class="n">frame</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">720</span><span class="p">)</span>
+ <span class="n">frame</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">720</span><span class="p">)</span>
+ <span class="n">frame</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span>
+ <span class="s2">&quot;background-image: url(&quot;</span> <span class="o">+</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/noPicker.png&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;);&quot;</span><span class="p">)</span>
+
+ <span class="n">layout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">setContentsMargins</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">150</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">241</span><span class="p">)</span>
+
+ <span class="c1"># add help gif</span>
+ <span class="n">movie_screen</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
+ <span class="n">movie_screen</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s2">&quot;background: transparent;&quot;</span><span class="p">)</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">movie_screen</span><span class="p">)</span>
+ <span class="n">moviePath</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;Help/createPicker.gif&quot;</span><span class="p">)</span>
+ <span class="n">movie</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QMovie</span><span class="p">(</span><span class="n">moviePath</span><span class="p">,</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QByteArray</span><span class="p">())</span>
+ <span class="n">movie</span><span class="o">.</span><span class="n">setCacheMode</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QMovie</span><span class="o">.</span><span class="n">CacheAll</span><span class="p">)</span>
+ <span class="n">movie</span><span class="o">.</span><span class="n">setSpeed</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
+ <span class="n">movie_screen</span><span class="o">.</span><span class="n">setMovie</span><span class="p">(</span><span class="n">movie</span><span class="p">)</span>
+
+ <span class="n">movie</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
+
+ <span class="k">if</span> <span class="n">picker</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loadPicker</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="n">pickerPath</span><span class="p">,</span> <span class="n">pickerFile</span><span class="p">))</span>
+
+ <span class="k">return</span> <span class="kc">True</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.createNewPicker"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.createNewPicker">[docs]</a> <span class="k">def</span> <span class="nf">createNewPicker</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bypass</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Create a new control picker for the given character tab. This will remove the help gif and replace it with a</span>
+<span class="sd"> blank canvas that module pickers can be added to (using ART_AddModuleToCanvas).</span>
+
+<span class="sd"> :param bypass: Whether or not to bypass the QMessageBox confirming the creation of a new picker.</span>
+<span class="sd"> This is used when loading a picker from file. bypass will be set to True.</span>
+
+<span class="sd"> :return: returns the QTabWidget for this character&#39;s picker.</span>
+
+<span class="sd"> .. seealso:: ART_AddModuleToCanvas</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">closeWidget</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="c1"># get the tab text</span>
+ <span class="n">character</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">tabToolTip</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">bypass</span><span class="p">:</span>
+ <span class="c1"># display a message confirming new picker creation for given character</span>
+ <span class="n">msgBox</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMessageBox</span><span class="p">()</span>
+ <span class="n">msgBox</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">&quot;Create a New Picker for &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">character</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; ?&quot;</span><span class="p">)</span>
+ <span class="n">msgBox</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMessageBox</span><span class="o">.</span><span class="n">Question</span><span class="p">)</span>
+ <span class="n">msgBox</span><span class="o">.</span><span class="n">addButton</span><span class="p">(</span><span class="s2">&quot;Yes&quot;</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMessageBox</span><span class="o">.</span><span class="n">YesRole</span><span class="p">)</span>
+ <span class="n">msgBox</span><span class="o">.</span><span class="n">addButton</span><span class="p">(</span><span class="s2">&quot;Cancel&quot;</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMessageBox</span><span class="o">.</span><span class="n">NoRole</span><span class="p">)</span>
+ <span class="n">ret</span> <span class="o">=</span> <span class="n">msgBox</span><span class="o">.</span><span class="n">exec_</span><span class="p">()</span>
+
+ <span class="c1"># if the user selected &quot;Yes&quot;, delete the old widget</span>
+ <span class="k">if</span> <span class="n">ret</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">closeWidget</span><span class="p">:</span>
+ <span class="n">each</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+ <span class="n">each</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
+
+ <span class="k">if</span> <span class="n">ret</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+ <span class="k">return</span>
+
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">closeWidget</span><span class="p">:</span>
+ <span class="n">each</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+ <span class="n">each</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
+
+ <span class="c1"># now add a new tab widget to our character tabs, with a new tab named &quot;Main&quot;</span>
+ <span class="n">pickerTabs</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">(</span><span class="n">widget</span><span class="p">)</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">currentChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pickerTabChange</span><span class="p">)</span>
+
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">444</span><span class="p">,</span> <span class="mi">632</span><span class="p">)</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">444</span><span class="p">,</span> <span class="mi">632</span><span class="p">)</span>
+
+ <span class="c1"># add &#39;add tab&#39; button</span>
+ <span class="n">addTabBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">&quot;Add Tab&quot;</span><span class="p">)</span>
+ <span class="n">addTabBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</span><span class="p">)</span>
+ <span class="n">addTabBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Add Picker Tab&quot;</span><span class="p">)</span>
+ <span class="n">addTabBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">addTab</span><span class="p">,</span> <span class="n">pickerTabs</span><span class="p">))</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">setCornerWidget</span><span class="p">(</span><span class="n">addTabBtn</span><span class="p">,</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">TopRightCorner</span><span class="p">)</span>
+
+ <span class="c1"># style sheet</span>
+ <span class="n">stylesheet</span> <span class="o">=</span> <span class="s2">&quot;&quot;&quot;</span>
+<span class="s2"> QTabBar::tab</span>
+<span class="s2"> {</span>
+<span class="s2"> background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgb(19,132,183), stop:1 rgb(30,30,30));</span>
+<span class="s2"> width: 100px;</span>
+<span class="s2"> padding-left: -10px;</span>
+<span class="s2"> }</span>
+<span class="s2"> QTabBar::tab:selected</span>
+<span class="s2"> {</span>
+<span class="s2"> background-color: rgb(14,100,143);</span>
+<span class="s2"> border: 2px solid black;</span>
+<span class="s2"> }</span>
+<span class="s2"> QTabBar::tab:hover</span>
+<span class="s2"> {</span>
+<span class="s2"> background: rgb(19,132,183);</span>
+<span class="s2"> }</span>
+<span class="s2"> QTabBar::tab:!selected</span>
+<span class="s2"> {</span>
+<span class="s2"> margin-top: 5px;</span>
+<span class="s2"> }</span>
+<span class="s2"> QTabWidget::pane</span>
+<span class="s2"> {</span>
+<span class="s2"> border-top: 2px solid rgb(19,132,183);</span>
+<span class="s2"> }</span>
+<span class="s2"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># create the qWidget for this tab of the picker</span>
+ <span class="n">pickerCanvas</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">()</span>
+ <span class="n">pickerCanvas</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">600</span><span class="p">)</span>
+ <span class="n">pickerCanvas</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">600</span><span class="p">)</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">addTab</span><span class="p">(</span><span class="n">pickerCanvas</span><span class="p">,</span> <span class="s2">&quot;Main&quot;</span><span class="p">)</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="n">stylesheet</span><span class="p">)</span>
+
+ <span class="c1"># create the layout for this page</span>
+ <span class="n">pageLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="n">pickerCanvas</span><span class="p">)</span>
+
+ <span class="c1"># create the graphicsView</span>
+ <span class="n">gfxView</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">()</span>
+ <span class="n">pageLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">gfxView</span><span class="p">)</span>
+
+ <span class="c1"># create the qgraphicsScene</span>
+ <span class="n">gfxScene</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsScene</span><span class="p">()</span>
+ <span class="n">gfxScene</span><span class="o">.</span><span class="n">setSceneRect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">420</span><span class="p">,</span> <span class="mi">575</span><span class="p">)</span>
+ <span class="n">gfxView</span><span class="o">.</span><span class="n">setScene</span><span class="p">(</span><span class="n">gfxScene</span><span class="p">)</span>
+ <span class="n">gfxView</span><span class="o">.</span><span class="n">setDragMode</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">NoDrag</span><span class="p">)</span>
+
+ <span class="c1"># set background image</span>
+ <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/canvas.png&quot;</span><span class="p">))</span>
+ <span class="n">gfxItem</span> <span class="o">=</span> <span class="n">gfxScene</span><span class="o">.</span><span class="n">addPixmap</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span>
+ <span class="n">gfxItem</span><span class="o">.</span><span class="n">setZValue</span><span class="p">(</span><span class="o">-</span><span class="mi">20</span><span class="p">)</span>
+
+ <span class="c1"># show the picker tabs</span>
+ <span class="n">pickerTabs</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+ <span class="c1"># enable module list button</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">bypass</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">addModuleToPickerUI</span><span class="p">()</span>
+
+ <span class="c1"># =======================================================</span>
+ <span class="c1"># #enable edit button</span>
+ <span class="c1"># =======================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">pickerTabs</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.toggleDragState"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.toggleDragState">[docs]</a> <span class="k">def</span> <span class="nf">toggleDragState</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Toggles selection interaction modes within the QGraphicsScene. The three different modes are normal select,</span>
+<span class="sd"> drag select, and comment box mode. This will set the dragMode of the QGraphicsView to the currently selected</span>
+<span class="sd"> state, along with switching icons to show selection status.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">views</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, search for the gfxScene</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">selectedTab</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+ <span class="n">views</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">view</span><span class="p">)</span>
+
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">selectedTab</span><span class="p">)</span>
+
+ <span class="k">for</span> <span class="n">view</span> <span class="ow">in</span> <span class="n">views</span><span class="p">:</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">mousePressEvent</span> <span class="o">=</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gfxViewMousePress</span><span class="p">,</span> <span class="n">view</span><span class="p">)</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">mouseMoveEvent</span> <span class="o">=</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gfxViewMouseMove</span><span class="p">,</span> <span class="n">view</span><span class="p">)</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">mouseReleaseEvent</span> <span class="o">=</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gfxViewMouseRelease</span><span class="p">,</span> <span class="n">view</span><span class="p">)</span>
+
+ <span class="c1"># normal singular select mode</span>
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="k">for</span> <span class="n">view</span> <span class="ow">in</span> <span class="n">views</span><span class="p">:</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">setDragMode</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">NoDrag</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/normalSelect_On.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/dragSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/commentMode.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="c1"># drag select mode</span>
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="k">for</span> <span class="n">view</span> <span class="ow">in</span> <span class="n">views</span><span class="p">:</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">setDragMode</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">RubberBandDrag</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/normalSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/dragSelect_On.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/commentMode.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="c1"># create UE4-style comment box mode</span>
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="k">for</span> <span class="n">view</span> <span class="ow">in</span> <span class="n">views</span><span class="p">:</span>
+ <span class="n">view</span><span class="o">.</span><span class="n">setDragMode</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">RubberBandDrag</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/normalSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/dragSelect.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/commentMode_on.png&quot;</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.gfxViewMousePress"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.gfxViewMousePress">[docs]</a> <span class="k">def</span> <span class="nf">gfxViewMousePress</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Override event that captures a mouse press when in the passed in QGraphicsView and displays the QRubberBand</span>
+<span class="sd"> if in drag select or comment box mode.</span>
+
+<span class="sd"> :param view: the QGraphicsView to detect mouse press events in.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QRubberBand</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QRubberBand</span><span class="o">.</span><span class="n">Rectangle</span><span class="p">,</span> <span class="n">view</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">()))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">origin</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QRubberBand</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QRubberBand</span><span class="o">.</span><span class="n">Rectangle</span><span class="p">,</span> <span class="n">view</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">()))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+ <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">mousePressEvent</span><span class="p">(</span><span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.gfxViewMouseMove"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.gfxViewMouseMove">[docs]</a> <span class="k">def</span> <span class="nf">gfxViewMouseMove</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Override event that captures a mouse move when in the passed in QGraphicsView and changes the</span>
+<span class="sd"> displayed size of the QRubberBand based on the origin position and the current position, drawing a QRect (if</span>
+<span class="sd"> in drag select or comment box mode.). It also finds any items inside of that QRect (picker buttons, etc).</span>
+
+<span class="sd"> :param view: the QGraphicsView to detect mouse move events in and check for items in.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">())</span><span class="o">.</span><span class="n">normalized</span><span class="p">())</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">itemsInRect</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">items</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">())</span><span class="o">.</span><span class="n">normalized</span><span class="p">())</span>
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="k">pass</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">())</span><span class="o">.</span><span class="n">normalized</span><span class="p">())</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">itemsInRect</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">items</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">origin</span><span class="p">,</span> <span class="n">event</span><span class="o">.</span><span class="n">pos</span><span class="p">())</span><span class="o">.</span><span class="n">normalized</span><span class="p">())</span>
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="k">pass</span>
+ <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">mouseMoveEvent</span><span class="p">(</span><span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.gfxViewMouseRelease"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.gfxViewMouseRelease">[docs]</a> <span class="k">def</span> <span class="nf">gfxViewMouseRelease</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Override event that captures a mouse release when in the passed in QGraphicsView and hides the QRubberBand</span>
+<span class="sd"> if it was visible. If in comment box mode, this release event will also create the comment box with the</span>
+<span class="sd"> dimensions and position of the start point of the mouse press, and the QRect from the mouse move.</span>
+
+<span class="sd"> :param view: the QGraphicsView to detect mouse release events and to add comment boxes to.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">hide</span><span class="p">()</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">itemsInRect</span><span class="p">:</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">classType</span> <span class="o">==</span> <span class="s2">&quot;pickerButton&quot;</span><span class="p">:</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">mousePressEventCustom</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QGraphicsSceneMouseEvent</span><span class="p">())</span>
+
+ <span class="k">except</span><span class="p">:</span>
+ <span class="k">pass</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="k">pass</span>
+
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">commentButton</span><span class="o">.</span><span class="n">isChecked</span><span class="p">():</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">hide</span><span class="p">()</span>
+
+ <span class="n">geo</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rubberband</span><span class="o">.</span><span class="n">geometry</span><span class="p">()</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+ <span class="n">box</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">commentBoxItem</span><span class="p">(</span><span class="n">geo</span><span class="o">.</span><span class="n">x</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">y</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">width</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">height</span><span class="p">(),</span> <span class="n">scene</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">box</span><span class="p">)</span>
+ <span class="n">box</span><span class="o">.</span><span class="n">setZValue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setChecked</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">toggleDragState</span><span class="p">()</span>
+
+ <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="o">.</span><span class="n">mouseReleaseEvent</span><span class="p">(</span><span class="n">view</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.addTab"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.addTab">[docs]</a> <span class="k">def</span> <span class="nf">addTab</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tabWidget</span><span class="p">,</span> <span class="n">bypass</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tabName</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Adds a tab to the QTabWidget for a given character to add more module control pickers to. These are sometimes</span>
+<span class="sd"> referred to as &quot;canvases&quot;.</span>
+
+<span class="sd"> :param tabWidget: The QTabWidget to add a tab to.</span>
+<span class="sd"> :param bypass: If not creating the &quot;Main&quot; tab or loading a picker from file, a tab name must be entered.</span>
+<span class="sd"> :param tabName: If creating the &quot;Main&quot; tab or loading a picker from file, the name given to the tab that</span>
+<span class="sd"> will be created.</span>
+
+<span class="sd"> :return: Index of the created tab in the QTabWidget.</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">bypass</span><span class="p">:</span>
+ <span class="n">tabName</span><span class="p">,</span> <span class="n">ok</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QInputDialog</span><span class="o">.</span><span class="n">getText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">&quot;Tab Name&quot;</span><span class="p">,</span> <span class="s2">&quot;Enter Tab Name:&quot;</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">ok</span> <span class="o">=</span> <span class="kc">True</span>
+ <span class="n">tabName</span> <span class="o">=</span> <span class="n">tabName</span>
+ <span class="k">if</span> <span class="n">ok</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">tabName</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+ <span class="c1"># create the qWidget for this tab of the picker</span>
+ <span class="n">pickerCanvas</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">()</span>
+ <span class="n">pickerCanvas</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">600</span><span class="p">)</span>
+ <span class="n">pickerCanvas</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">442</span><span class="p">,</span> <span class="mi">600</span><span class="p">)</span>
+ <span class="n">tabWidget</span><span class="o">.</span><span class="n">addTab</span><span class="p">(</span><span class="n">pickerCanvas</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">tabName</span><span class="p">))</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">indexOf</span><span class="p">(</span><span class="n">pickerCanvas</span><span class="p">)</span>
+
+ <span class="c1"># create the layout for this page</span>
+ <span class="n">pageLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="n">pickerCanvas</span><span class="p">)</span>
+
+ <span class="c1"># create the graphicsView</span>
+ <span class="n">gfxView</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">()</span>
+ <span class="n">pageLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">gfxView</span><span class="p">)</span>
+
+ <span class="c1"># create the qgraphicsScene</span>
+ <span class="n">gfxScene</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsScene</span><span class="p">()</span>
+ <span class="n">gfxScene</span><span class="o">.</span><span class="n">setSceneRect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">420</span><span class="p">,</span> <span class="mi">575</span><span class="p">)</span>
+ <span class="n">gfxView</span><span class="o">.</span><span class="n">setScene</span><span class="p">(</span><span class="n">gfxScene</span><span class="p">)</span>
+
+ <span class="c1"># set background image</span>
+ <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/canvas.png&quot;</span><span class="p">))</span>
+ <span class="n">gfxScene</span><span class="o">.</span><span class="n">addPixmap</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">index</span></div>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+
+<div class="viewcode-block" id="ART_AnimationUI.closeEvent"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.closeEvent">[docs]</a> <span class="k">def</span> <span class="nf">closeEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Closes the interface.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="n">_instances</span><span class="p">:</span>
+
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">dockControl</span><span class="p">(</span><span class="s2">&quot;pyART_animToolsDock&quot;</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">inst</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">&quot;pyART_AnimTools_Win&quot;</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">inst</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+
+<div class="viewcode-block" id="ART_AnimationUI.addModuleToPickerUI"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.addModuleToPickerUI">[docs]</a> <span class="k">def</span> <span class="nf">addModuleToPickerUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Creates an instance of ART_AddModuleToCanvas to bring up that tool, passing in modules valid to add.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">modulesToAdd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comparePickerToRig</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="kn">import</span> <span class="nn">ART_AddModuleToCanvas</span> <span class="k">as</span> <span class="nn">am2c</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">am2c</span><span class="p">)</span>
+ <span class="n">am2c</span><span class="o">.</span><span class="n">ART_AddModuleToCanvas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modulesToAdd</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.removeModuleFromPickerUI"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.removeModuleFromPickerUI">[docs]</a> <span class="k">def</span> <span class="nf">removeModuleFromPickerUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Creates an instance of the ART_RemoveModuleFromCanvas tool, passing in modules valid to remove.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">modulesToAdd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comparePickerToRig</span><span class="p">(</span><span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+ <span class="kn">import</span> <span class="nn">ART_RemoveModuleFromCanvas</span> <span class="k">as</span> <span class="nn">arfc</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">arfc</span><span class="p">)</span>
+ <span class="n">arfc</span><span class="o">.</span><span class="n">ART_RemoveModuleFromCanvas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modulesToAdd</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.movePickerToTab"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.movePickerToTab">[docs]</a> <span class="k">def</span> <span class="nf">movePickerToTab</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Creates an instance of the ART_MovePickerToTabUI tool, passing in all valid module pickers that could be moved.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">modulesToAdd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">findAllPickerItems</span><span class="p">()</span>
+ <span class="kn">import</span> <span class="nn">ART_MovePickerToTabUI</span> <span class="k">as</span> <span class="nn">mp2t</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">mp2t</span><span class="p">)</span>
+ <span class="n">mp2t</span><span class="o">.</span><span class="n">ART_MovePickerToTab</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modulesToAdd</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.pickerTabChange"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.pickerTabChange">[docs]</a> <span class="k">def</span> <span class="nf">pickerTabChange</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Called on when a tab is changed on a given character&#39;s picker, if the remove modules from canvas UI is open,</span>
+<span class="sd"> it will be closed.</span>
+
+<span class="sd"> .. todo:: This function could eventually be changed to simply refresh that UI with the new information.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">&quot;pyART_AddToCanvasWIN&quot;</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">title</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">&quot;pyART_AddToCanvasWIN&quot;</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">title</span> <span class="o">==</span> <span class="s2">&quot;Remove Module From Canvas&quot;</span><span class="p">:</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">&quot;pyART_AddToCanvasWIN&quot;</span><span class="p">,</span> <span class="n">wnd</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.editPicker"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.editPicker">[docs]</a> <span class="k">def</span> <span class="nf">editPicker</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Makes all picker items editable again, making them selectable, movable, scalable, and rotatable.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getPickerTabs</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getComments</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
+ <span class="n">item</span> <span class="o">=</span> <span class="n">each</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;item&quot;</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsMovable</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsSelectable</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsFocusable</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemSendsGeometryChanges</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+
+ <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
+ <span class="n">item</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;item&quot;</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsMovable</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsSelectable</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.savePicker"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.savePicker">[docs]</a> <span class="k">def</span> <span class="nf">savePicker</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Save the picker data to a .picker file. The main picker data is actually gathered by self.getPickerTabs,</span>
+<span class="sd"> self.getComments, and self.getButtonColors.</span>
+
+<span class="sd"> .. seealso:: ART_AnimationUI.getPickerTabs, ART_AnimationUI.getComments, ART_AnimationUI.getButtonColors</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get info from current character tab</span>
+ <span class="n">pickerData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getPickerTabs</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="n">commentData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getComments</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="n">buttonData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getButtonColors</span><span class="p">()</span>
+
+ <span class="n">jsonData</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">jsonData</span><span class="p">[</span><span class="s2">&quot;pickerData&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">pickerData</span>
+ <span class="n">jsonData</span><span class="p">[</span><span class="s2">&quot;commentData&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">commentData</span>
+ <span class="n">jsonData</span><span class="p">[</span><span class="s2">&quot;buttonData&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">buttonData</span>
+
+ <span class="c1"># character name</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">characterNode</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;charNode&quot;</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.pickerFile&quot;</span><span class="p">):</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">characterNode</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">&quot;pickerFile&quot;</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
+
+ <span class="c1"># ask for the file name to give the picker</span>
+ <span class="n">startingDir</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Pickers&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">startingDir</span><span class="p">):</span>
+ <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">startingDir</span><span class="p">)</span>
+
+ <span class="n">filename</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">fileDialog2</span><span class="p">(</span><span class="n">fm</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">okc</span><span class="o">=</span><span class="s2">&quot;Save Picker&quot;</span><span class="p">,</span> <span class="nb">dir</span><span class="o">=</span><span class="n">startingDir</span><span class="p">,</span> <span class="n">ff</span><span class="o">=</span><span class="s2">&quot;*.picker&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="c1"># create the picker file</span>
+ <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+
+ <span class="c1"># dump the data with json</span>
+ <span class="n">json</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">jsonData</span><span class="p">,</span> <span class="n">f</span><span class="p">)</span>
+ <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="c1"># write picker file location to character node</span>
+ <span class="n">niceFileName</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">filename</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+ <span class="n">pickerFile</span> <span class="o">=</span> <span class="n">niceFileName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Pickers/&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;:.pickerFile&quot;</span><span class="p">,</span> <span class="n">pickerFile</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
+
+ <span class="c1"># disable module list button</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.comparePickerToRig"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.comparePickerToRig">[docs]</a> <span class="k">def</span> <span class="nf">comparePickerToRig</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unused</span><span class="p">,</span> <span class="n">used</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Compares the modules that are on the picker to all modules that make up the character.</span>
+
+<span class="sd"> :param unused: Whether or not we want a list returned of modules that are not on the picker yet.</span>
+<span class="sd"> :param used: Whether or not we want a list returned of modules that are on the picker.</span>
+<span class="sd"> :return: Returns a list of the modules based on either used or unused args.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get info from current character tab</span>
+ <span class="n">jsonData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getPickerTabs</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">characterNode</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;charNode&quot;</span><span class="p">)</span>
+
+ <span class="n">rigModules</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listConnections</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.rigModules&quot;</span><span class="p">)</span>
+ <span class="n">returnModules</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">pickerModules</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">jsonData</span><span class="p">:</span>
+ <span class="n">pickerModules</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;module&quot;</span><span class="p">))</span>
+
+ <span class="k">if</span> <span class="n">unused</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">rigModules</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">module</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">pickerModules</span><span class="p">:</span>
+ <span class="n">returnModules</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">used</span><span class="p">:</span>
+ <span class="n">returnModules</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">pickerModules</span><span class="p">))</span>
+
+ <span class="k">return</span> <span class="n">returnModules</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.findAllPickerItems"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.findAllPickerItems">[docs]</a> <span class="k">def</span> <span class="nf">findAllPickerItems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Finds all modules on the picker. Used mostly be the load picker function.</span>
+<span class="sd"> :return: Returns a list of picker data that includes for each item, the module the picker is for, the item in</span>
+<span class="sd"> memory, and the nice name.</span>
+
+<span class="sd"> .. seealso:: ART_AnimationUI.loadPicker</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">returnData</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, search for the gfxScene</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+
+ <span class="c1"># get all items in the gfxScene</span>
+ <span class="n">itemsInScene</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">itemsInScene</span><span class="p">:</span>
+ <span class="c1"># if we find our top level picker item (the borderItem), get it&#39;s data</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">pickerBorderItem</span> <span class="ow">or</span> <span class="n">item</span><span class="o">.</span><span class="n">type</span><span class="p">()</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+ <span class="n">module</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">UserRole</span><span class="p">)</span>
+ <span class="n">niceName</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+ <span class="n">returnData</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">module</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">niceName</span><span class="p">])</span>
+
+ <span class="k">return</span> <span class="n">returnData</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.loadPicker"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.loadPicker">[docs]</a> <span class="k">def</span> <span class="nf">loadPicker</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Loads a .picker file and builds the picker according to the file data.</span>
+<span class="sd"> :param filename: The path of the picker file to gather data from.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">startingDir</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Pickers&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">startingDir</span><span class="p">):</span>
+
+ <span class="n">filename</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">fileDialog2</span><span class="p">(</span><span class="n">fm</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">okc</span><span class="o">=</span><span class="s2">&quot;Load Picker&quot;</span><span class="p">,</span> <span class="nb">dir</span><span class="o">=</span><span class="n">startingDir</span><span class="p">,</span> <span class="n">ff</span><span class="o">=</span><span class="s2">&quot;*.picker&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">filename</span> <span class="o">=</span> <span class="n">filename</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+
+ <span class="n">borderItems</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #load the data</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="n">json_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+ <span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">json_file</span><span class="p">)</span>
+ <span class="n">json_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #get character node</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="n">tabIndex</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">characterWidget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">tabIndex</span><span class="p">)</span>
+ <span class="n">characterNode</span> <span class="o">=</span> <span class="n">characterWidget</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;charNode&quot;</span><span class="p">)</span>
+ <span class="n">characterNodeModules</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listConnections</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.rigModules&quot;</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.namespace&quot;</span><span class="p">):</span>
+ <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.namespace&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;:&quot;</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.name&quot;</span><span class="p">)</span>
+
+ <span class="c1"># create new picker</span>
+ <span class="n">tabWidget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">createNewPicker</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #create all tabs</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="n">existingTabs</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">subPickers</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tabWidget</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tabName</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">existingTabs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tabName</span><span class="p">)</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #go through data</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="n">subPickers</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">pickerData</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s2">&quot;pickerData&quot;</span><span class="p">]</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">pickerData</span><span class="p">:</span>
+ <span class="n">module</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;module&quot;</span><span class="p">)</span>
+ <span class="n">moduleNiceName</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;module&quot;</span><span class="p">)</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;tab&quot;</span><span class="p">)</span>
+ <span class="n">transforms</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;transforms&quot;</span><span class="p">)</span>
+ <span class="n">subPicker</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;subPicker&quot;</span><span class="p">)</span>
+ <span class="n">mirrored</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;mirrored&quot;</span><span class="p">)</span>
+ <span class="n">path</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;path&quot;</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">module</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="c1"># if there is a namespace (if the add character for animation tool was used):</span>
+ <span class="k">if</span> <span class="n">namespace</span> <span class="o">+</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">characterNodeModules</span><span class="p">:</span>
+ <span class="n">module</span> <span class="o">=</span> <span class="n">namespace</span> <span class="o">+</span> <span class="n">module</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">namespace</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">subPicker</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
+ <span class="n">subPickers</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">module</span><span class="p">,</span> <span class="n">tab</span><span class="p">,</span> <span class="n">transforms</span><span class="p">,</span> <span class="n">mirrored</span><span class="p">,</span> <span class="n">moduleNiceName</span><span class="p">])</span>
+
+ <span class="k">if</span> <span class="n">tab</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">existingTabs</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">addTab</span><span class="p">(</span><span class="n">tabWidget</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="n">tab</span><span class="p">)</span>
+ <span class="n">existingTabs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tab</span><span class="p">)</span>
+
+ <span class="c1"># ===========================================================</span>
+ <span class="c1"># #add the picker to the correct tab</span>
+ <span class="c1"># ===========================================================</span>
+ <span class="n">buildPicker</span> <span class="o">=</span> <span class="kc">False</span>
+ <span class="n">tabChildren</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="c1"># get a list of the tabs with their names and index</span>
+ <span class="n">tabInfo</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tabChildren</span><span class="p">)):</span>
+ <span class="n">tabName</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">tabInfo</span><span class="p">[</span><span class="n">tabName</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
+
+ <span class="c1"># now find a matching entry in that list to our tab variable</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="n">tabInfo</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">tab</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">index</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span>
+ <span class="c1"># set out tab widget to that index</span>
+ <span class="n">tabWidget</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">subPicker</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
+ <span class="n">buildPicker</span> <span class="o">=</span> <span class="kc">True</span>
+
+ <span class="c1"># ===========================================================</span>
+ <span class="c1"># #now that the tab is correct, build the picker for the module</span>
+ <span class="c1"># ===========================================================</span>
+ <span class="k">if</span> <span class="n">buildPicker</span><span class="p">:</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCurrentScene</span><span class="p">()</span>
+
+ <span class="k">try</span><span class="p">:</span>
+ <span class="c1"># create picker for the given module</span>
+ <span class="n">inst</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getModuleInst</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+ <span class="n">pickerData</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">pickerUI</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">,</span> <span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
+ <span class="n">picker</span> <span class="o">=</span> <span class="n">pickerData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">picker</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectionScriptJobs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pickerData</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+ <span class="n">borderItems</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">picker</span><span class="p">,</span> <span class="n">moduleNiceName</span><span class="p">,</span> <span class="n">module</span><span class="p">])</span>
+
+ <span class="c1"># mirror the module&#39;s pickerBorderItem if needed</span>
+ <span class="k">if</span> <span class="n">pickerData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="kc">True</span><span class="p">:</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">picker</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setTransform</span><span class="p">(</span>
+ <span class="n">QtGui</span><span class="o">.</span><span class="n">QTransform</span><span class="p">(</span><span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="n">picker</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">width</span><span class="p">()</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">))</span>
+
+ <span class="n">children</span> <span class="o">=</span> <span class="n">picker</span><span class="o">.</span><span class="n">childItems</span><span class="p">()</span>
+ <span class="k">if</span> <span class="n">children</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mirrorChildTextItems</span><span class="p">(</span><span class="n">children</span><span class="p">)</span>
+
+ <span class="c1"># set transformations on the picker</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">picker</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setScale</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+
+ <span class="c1"># when loading a picker, set data(1) to be the scale factor that was possibly saved out.</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+
+ <span class="n">picker</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">picker</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setRotation</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+
+ <span class="n">picker</span><span class="o">.</span><span class="n">setPos</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QPointF</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]))</span>
+
+ <span class="n">picker</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsMovable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsSelectable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsFocusable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemSendsGeometryChanges</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================</span>
+ <span class="c1"># #enable edit button</span>
+ <span class="c1"># =======================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">editPickerBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="c1"># =======================================================</span>
+ <span class="c1"># #disable canvas, move, and remove buttons</span>
+ <span class="c1"># =======================================================</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">backgroundImgBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moduleListBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">removeModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">moveModBtn</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">normalSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">dragSelectButton</span><span class="o">.</span><span class="n">setEnabled</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+
+ <span class="n">widget</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">widgetChildren</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">widgetChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">gfxView</span> <span class="o">=</span> <span class="n">child</span>
+
+ <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">path</span><span class="p">)):</span>
+
+ <span class="c1"># set background image</span>
+ <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">()</span>
+ <span class="n">pixmap</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">gfxView</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+ <span class="n">gfxItem</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">addPixmap</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span>
+ <span class="n">gfxItem</span><span class="o">.</span><span class="n">setZValue</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;customImg&quot;</span><span class="p">,</span> <span class="n">gfxItem</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;filePath&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Tried to load custom background image: &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span>
+ <span class="n">path</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;, but file not found on disk.&quot;</span><span class="p">)</span>
+
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="nb">print</span> <span class="n">e</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #Handle Sub-Pickers</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">subPickers</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">info</span> <span class="ow">in</span> <span class="n">subPickers</span><span class="p">:</span>
+
+ <span class="n">module</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+ <span class="n">transforms</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+ <span class="n">mirrored</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+ <span class="n">pickerItems</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">findAllPickerItems</span><span class="p">()</span>
+
+ <span class="c1"># each item in pickerItems has module, item, niceName. use niceName to see if we have a winner</span>
+
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">pickerItems</span><span class="p">:</span>
+ <span class="n">pickerModule</span> <span class="o">=</span> <span class="n">each</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="n">pickerItem</span> <span class="o">=</span> <span class="n">each</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+ <span class="n">pickerNiceName</span> <span class="o">=</span> <span class="n">each</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+
+ <span class="k">if</span> <span class="n">pickerModule</span> <span class="o">==</span> <span class="n">module</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">pickerNiceName</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="c1"># now find a matching entry in that list to our tab variable</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="n">tabInfo</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">tab</span><span class="p">)</span>
+
+ <span class="c1"># set our tab widget to that index</span>
+ <span class="n">tabWidget</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+
+ <span class="c1"># find current scene</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCurrentScene</span><span class="p">()</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">pickerItem</span><span class="p">)</span>
+
+ <span class="c1"># set transformations on the picker</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">pickerItem</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setScale</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+
+ <span class="c1"># when loading a picker, set data(1) to be the scale factor that was possibly saved out.</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">pickerItem</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setRotation</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setPos</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QPointF</span><span class="p">(</span><span class="n">transforms</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]))</span>
+
+ <span class="k">if</span> <span class="n">mirrored</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">pickerItem</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setTransform</span><span class="p">(</span>
+ <span class="n">QtGui</span><span class="o">.</span><span class="n">QTransform</span><span class="p">(</span><span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="n">scene</span><span class="o">.</span><span class="n">sceneRect</span><span class="p">()</span><span class="o">.</span><span class="n">width</span><span class="p">(),</span> <span class="mf">0.0</span><span class="p">))</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">pickerItem</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+
+ <span class="c1"># lock down pickers</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsMovable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsSelectable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsFocusable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">pickerItem</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemSendsGeometryChanges</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #Add Comment data</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="n">commentData</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s2">&quot;commentData&quot;</span><span class="p">]</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">commentData</span><span class="p">:</span>
+ <span class="n">rect</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rect&quot;</span><span class="p">)</span>
+ <span class="n">color</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;color&quot;</span><span class="p">)</span>
+ <span class="n">label</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;label&quot;</span><span class="p">)</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;tab&quot;</span><span class="p">)</span>
+
+ <span class="n">tabChildren</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="c1"># get a list of the tabs with their names and index</span>
+ <span class="n">tabInfo</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tabChildren</span><span class="p">)):</span>
+ <span class="n">tabName</span> <span class="o">=</span> <span class="n">tabWidget</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">tabInfo</span><span class="p">[</span><span class="n">tabName</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
+
+ <span class="c1"># now find a matching entry in that list to our tab variable</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="n">tabInfo</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">tab</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">index</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span>
+ <span class="c1"># set out tab widget to that index</span>
+ <span class="n">tabWidget</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+
+ <span class="n">view</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCurrentView</span><span class="p">()</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCurrentScene</span><span class="p">()</span>
+
+ <span class="n">box</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">commentBoxItem</span><span class="p">(</span><span class="n">rect</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">rect</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">rect</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">rect</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">scene</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
+ <span class="n">box</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">setColor</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="o">.</span><span class="n">fromRgb</span><span class="p">(</span><span class="n">color</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">3</span><span class="p">]))</span>
+ <span class="n">box</span><span class="o">.</span><span class="n">textLabel</span><span class="o">.</span><span class="n">setPlainText</span><span class="p">(</span><span class="n">label</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">box</span><span class="p">)</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #Find button color data</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">buttonData</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s2">&quot;buttonData&quot;</span><span class="p">]</span>
+
+ <span class="k">for</span> <span class="n">border</span> <span class="ow">in</span> <span class="n">borderItems</span><span class="p">:</span>
+ <span class="n">pickerModule</span> <span class="o">=</span> <span class="n">border</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+ <span class="n">picker</span> <span class="o">=</span> <span class="n">border</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="n">networkNode</span> <span class="o">=</span> <span class="n">border</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+
+ <span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="n">buttonData</span><span class="p">:</span>
+ <span class="n">module</span> <span class="o">=</span> <span class="n">button</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;module&quot;</span><span class="p">)</span>
+ <span class="n">color</span> <span class="o">=</span> <span class="n">button</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;color&quot;</span><span class="p">)</span>
+ <span class="n">control</span> <span class="o">=</span> <span class="n">button</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;control&quot;</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">pickerModule</span> <span class="o">==</span> <span class="n">module</span><span class="p">:</span>
+
+ <span class="c1"># then we have the correct border item parent and now need to get its button</span>
+ <span class="n">childItems</span> <span class="o">=</span> <span class="n">picker</span><span class="o">.</span><span class="n">childItems</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">childItems</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">pickerButton</span><span class="p">:</span>
+
+ <span class="c1"># delete the existing scriptJob</span>
+ <span class="n">scriptJob</span> <span class="o">=</span> <span class="n">picker</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">(</span><span class="n">kill</span><span class="o">=</span><span class="n">scriptJob</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectionScriptJobs</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">scriptJob</span><span class="p">)</span>
+
+ <span class="c1"># set the button color</span>
+ <span class="n">child</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">setColor</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="o">.</span><span class="n">fromRgb</span><span class="p">(</span><span class="n">color</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">3</span><span class="p">]))</span>
+
+ <span class="n">inst</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getModuleInst</span><span class="p">(</span><span class="n">networkNode</span><span class="p">)</span>
+
+ <span class="c1"># create the new scriptJob</span>
+ <span class="n">newColor</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="o">.</span><span class="n">fromRgb</span><span class="p">(</span><span class="n">color</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">color</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
+ <span class="n">scriptJob</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;SelectionChanged&quot;</span><span class="p">,</span>
+ <span class="n">partial</span><span class="p">(</span><span class="n">inst</span><span class="o">.</span><span class="n">selectionScriptJob_animUI</span><span class="p">,</span>
+ <span class="p">[[</span><span class="n">child</span><span class="p">,</span> <span class="n">control</span><span class="p">,</span> <span class="n">newColor</span><span class="p">]])],</span>
+ <span class="n">kws</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+ <span class="n">picker</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">scriptJob</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">selectionScriptJobs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scriptJob</span><span class="p">)</span>
+
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="nb">print</span> <span class="n">e</span>
+
+ <span class="c1"># ===============================================================</span>
+ <span class="c1"># #write picker file location to character node</span>
+ <span class="c1"># ===============================================================</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.pickerFile&quot;</span><span class="p">):</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">characterNode</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">&quot;pickerFile&quot;</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
+
+ <span class="n">niceFileName</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+ <span class="n">pickerFile</span> <span class="o">=</span> <span class="n">niceFileName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Pickers/&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">&quot;.pickerFile&quot;</span><span class="p">,</span> <span class="n">pickerFile</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">&quot;string&quot;</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.mirrorChildTextItems"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.mirrorChildTextItems">[docs]</a> <span class="k">def</span> <span class="nf">mirrorChildTextItems</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">children</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Mirrors any QGraphicsSimpleTextItems text if the parent picker was mirrored, so that the text is correct.</span>
+<span class="sd"> :param children: List of child items (QGraphicsSimpleTextItems) of a pickerBorderItem or a pickerButton.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># for mirroring text on any child items of a pickerBorderItem or a pickerButton</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsSimpleTextItem</span><span class="p">:</span>
+ <span class="n">child</span><span class="o">.</span><span class="n">setTransformOriginPoint</span><span class="p">(</span><span class="n">child</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+ <span class="n">child</span><span class="o">.</span><span class="n">setTransform</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QTransform</span><span class="p">(</span><span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="n">child</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">width</span><span class="p">(),</span> <span class="mf">0.0</span><span class="p">))</span>
+
+ <span class="n">children</span> <span class="o">=</span> <span class="n">child</span><span class="o">.</span><span class="n">childItems</span><span class="p">()</span>
+ <span class="k">if</span> <span class="n">children</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mirrorChildTextItems</span><span class="p">(</span><span class="n">children</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.getCurrentScene"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getCurrentScene">[docs]</a> <span class="k">def</span> <span class="nf">getCurrentScene</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Gets the QGraphicsScene of the current QGraphicsView, which is gotten by calling on self.getCurrentView.</span>
+
+<span class="sd"> :return: Returns the QGraphicsScene under the current QGraphicsView.</span>
+
+<span class="sd"> .. seealso:: ART_AnimationUI.getCurrentView</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">view</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCurrentView</span><span class="p">()</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+ <span class="k">return</span> <span class="n">scene</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+
+<div class="viewcode-block" id="ART_AnimationUI.getCurrentView"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getCurrentView">[docs]</a> <span class="k">def</span> <span class="nf">getCurrentView</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Gets the current QGraphicsView based on the currently selected character tab, and the currently selected</span>
+<span class="sd"> picker tab of said character.</span>
+
+<span class="sd"> :return: Returns the QGraphicsView that is currently active.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+
+ <span class="c1"># search through the children of the widget until we find the gfxScene</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+
+ <span class="k">return</span> <span class="n">view</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.getPickerTabs"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getPickerTabs">[docs]</a> <span class="k">def</span> <span class="nf">getPickerTabs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">saving</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Finds and returns all picker item data, like transforms, scale, x/y coordinates, mirrored status, parent tab,</span>
+<span class="sd"> and controlled module.</span>
+
+<span class="sd"> :param saving: Whether or not this function is being called by savePicker, in which case if it is, it will then</span>
+<span class="sd"> make sure that the picker items are no longer editable.</span>
+
+<span class="sd"> :rtype: A list of lists, where each inner list has the following data for a picker item:</span>
+<span class="sd"> :return [0]: Name of tab the picker item belongs to</span>
+<span class="sd"> :return [1]: Picker item transforms</span>
+<span class="sd"> :return [2]: Name of module picker belongs to (which module controls it interfaces with)</span>
+<span class="sd"> :return [3]: Whether or not the picker item is mirrored.</span>
+<span class="sd"> :return [4]: Whether or not the picker is a sub-picker, like fingers or toes.</span>
+<span class="sd"> :return [5]: And if not saving, the memory address of the picker item.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">returnData</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, search for the gfxScene</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">selectedTab</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+
+ <span class="c1"># get all items in the gfxScene</span>
+ <span class="n">itemsInScene</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">itemsInScene</span><span class="p">:</span>
+ <span class="c1"># if we find our top level picker item (the borderItem), get it&#39;s data</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">pickerBorderItem</span> <span class="ow">or</span> <span class="n">item</span><span class="o">.</span><span class="n">type</span><span class="p">()</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+
+ <span class="c1"># item.data(1)could have data that is the scale factor, however, if this is</span>
+ <span class="c1"># a fresh picker, it will not.</span>
+ <span class="n">scaleFactor</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">scaleFactor</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">scaleFactor</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">scale</span>
+
+ <span class="c1"># get position, rotation, and find out if the pickerBorderItem has been mirrored</span>
+ <span class="n">position</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">pos</span><span class="p">()</span>
+ <span class="n">position</span> <span class="o">=</span> <span class="p">[</span><span class="n">position</span><span class="o">.</span><span class="n">x</span><span class="p">(),</span> <span class="n">position</span><span class="o">.</span><span class="n">y</span><span class="p">()]</span>
+ <span class="n">rotation</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">rotation</span><span class="p">()</span>
+ <span class="n">mirrored</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">transform</span><span class="p">()</span><span class="o">.</span><span class="n">m11</span><span class="p">()</span>
+ <span class="n">itemData</span> <span class="o">=</span> <span class="p">{}</span>
+
+ <span class="c1"># add data to dictionary</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;tab&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;transforms&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">position</span><span class="p">,</span> <span class="n">rotation</span><span class="p">,</span> <span class="n">scaleFactor</span><span class="p">]</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;module&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">UserRole</span><span class="p">)</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;mirrored&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">mirrored</span>
+
+ <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;subPicker&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;subPicker&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">saving</span><span class="p">:</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;item&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">item</span>
+
+ <span class="k">if</span> <span class="n">saving</span><span class="p">:</span>
+ <span class="c1"># set flags to False so borderItem is no longer moveable, selectable, etc.</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsMovable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsSelectable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemIsFocusable</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+ <span class="n">item</span><span class="o">.</span><span class="n">setFlag</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsItem</span><span class="o">.</span><span class="n">ItemSendsGeometryChanges</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+
+ <span class="n">returnData</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">itemData</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsPixmapItem</span><span class="p">:</span>
+ <span class="n">customImg</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;customImg&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">item</span> <span class="o">==</span> <span class="n">customImg</span><span class="p">:</span>
+ <span class="n">filePath</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;filePath&quot;</span><span class="p">)</span>
+ <span class="n">itemData</span> <span class="o">=</span> <span class="p">{}</span>
+
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;tab&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;path&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">filePath</span>
+
+ <span class="n">returnData</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">itemData</span><span class="p">)</span>
+
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">selectedTab</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">returnData</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.getComments"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getComments">[docs]</a> <span class="k">def</span> <span class="nf">getComments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">saving</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Gets any comment boxes that were created on any picker tabs and returns a list of those items.</span>
+<span class="sd"> :param saving: Whether or not this function is being called from savePicker, in which case, it will disable</span>
+<span class="sd"> edits.</span>
+
+<span class="sd"> :rtype: A list of lists where the inner list contains the following data for each comment box found:</span>
+<span class="sd"> :return [0]: The QRect of the comment box, which contains the box dimensions and the x/y coordinates.</span>
+<span class="sd"> :return [1]: The color of the comment box</span>
+<span class="sd"> :return [2]: The name of the tab the comment box is under.</span>
+<span class="sd"> :return [3]: The text label of the comment box.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">returnData</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, search for the gfxScene</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">selectedTab</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+
+ <span class="c1"># get all items in the gfxScene</span>
+ <span class="n">itemsInScene</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">itemsInScene</span><span class="p">:</span>
+
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">commentBoxItem</span><span class="p">:</span>
+
+ <span class="n">itemData</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">saving</span><span class="p">:</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;item&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">item</span>
+
+ <span class="c1"># get comment box position and color</span>
+ <span class="n">geo</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span>
+ <span class="n">color</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">color</span><span class="p">()</span><span class="o">.</span><span class="n">getRgb</span><span class="p">()</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;rect&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">geo</span><span class="o">.</span><span class="n">x</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">y</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">width</span><span class="p">(),</span> <span class="n">geo</span><span class="o">.</span><span class="n">height</span><span class="p">()]</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;color&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">color</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;tab&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+
+ <span class="c1"># get comment box text</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">childItems</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">each</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsTextItem</span><span class="p">:</span>
+ <span class="n">label</span> <span class="o">=</span> <span class="n">each</span><span class="o">.</span><span class="n">toPlainText</span><span class="p">()</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;label&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">label</span>
+
+ <span class="n">returnData</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">itemData</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">returnData</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.getButtonColors"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getButtonColors">[docs]</a> <span class="k">def</span> <span class="nf">getButtonColors</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Gets joint module picker button colors, which can be edited by the user.</span>
+
+<span class="sd"> .. note:: Currently, only the joint module supports users being able to change the button color.</span>
+
+<span class="sd"> :rtype: A list of lists where the inner list contains the following data for each joint module found:</span>
+<span class="sd"> :return [0]: The name of the module this picker interfaces with.</span>
+<span class="sd"> :return [1]: The color of the picker button.</span>
+<span class="sd"> :return [2]: The name of the control this button selects.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># get the current tab index and the widget</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+ <span class="n">returnData</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, search for the gfxScene</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">selectedTab</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasIndex</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">canvasWidget</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">canvasIndex</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvasWidget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">canvasChild</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">canvasChild</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">view</span> <span class="o">=</span> <span class="n">canvasChild</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+
+ <span class="c1"># get all items in the gfxScene</span>
+ <span class="n">itemsInScene</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">itemsInScene</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">pickerBorderItem</span> <span class="ow">or</span> <span class="n">item</span><span class="o">.</span><span class="n">type</span><span class="p">()</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+ <span class="n">childButtons</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">childItems</span><span class="p">()</span>
+
+ <span class="c1"># if the picker button is from a leaf module, get color data (only leaf for now)</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">childButtons</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">pickerButton</span><span class="p">:</span>
+ <span class="n">moduleType</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">UserRole</span><span class="p">)</span>
+ <span class="k">if</span> <span class="s2">&quot;ART_Leaf_Module&quot;</span> <span class="ow">in</span> <span class="n">moduleType</span><span class="p">:</span>
+
+ <span class="c1"># get button color</span>
+ <span class="n">color</span> <span class="o">=</span> <span class="n">child</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">color</span><span class="p">()</span><span class="o">.</span><span class="n">getRgb</span><span class="p">()</span>
+
+ <span class="c1"># store module name, button color</span>
+ <span class="n">itemData</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;module&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">moduleType</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;color&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">color</span>
+ <span class="n">itemData</span><span class="p">[</span><span class="s2">&quot;control&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">child</span><span class="o">.</span><span class="n">object</span>
+
+ <span class="n">returnData</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">itemData</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">returnData</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.getModuleInst"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.getModuleInst">[docs]</a> <span class="k">def</span> <span class="nf">getModuleInst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Takes the given module and instantiates it, returning the memory address for the created instance.</span>
+
+<span class="sd"> :param module: The name of the module to instantiate.</span>
+
+<span class="sd"> :return: The instance of the instantiated module in memory.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">modType</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">&quot;.moduleType&quot;</span><span class="p">)</span>
+ <span class="n">modName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">&quot;.moduleName&quot;</span><span class="p">)</span>
+ <span class="n">mod</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="s2">&quot;RigModules.&quot;</span> <span class="o">+</span> <span class="n">modType</span><span class="p">,</span> <span class="p">{},</span> <span class="p">{},</span> <span class="p">[</span><span class="n">modType</span><span class="p">])</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">mod</span><span class="p">)</span>
+
+ <span class="c1"># get the class name from that module file (returns Modules.ART_Root.ART_Root for example)</span>
+ <span class="n">moduleClass</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="n">mod</span><span class="o">.</span><span class="n">className</span><span class="p">)</span>
+
+ <span class="c1"># find the instance of that module</span>
+ <span class="n">moduleInst</span> <span class="o">=</span> <span class="n">moduleClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modName</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">moduleInst</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.changeBackground"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.changeBackground">[docs]</a> <span class="k">def</span> <span class="nf">changeBackground</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Creates an interface allowing a user to change the background image of a picker with these dimensions: (442 x</span>
+<span class="sd"> 600)</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">&quot;pyART_changeBackgroundImg_Win&quot;</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">&quot;pyART_changeBackgroundImg_Win&quot;</span><span class="p">,</span> <span class="n">wnd</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="n">mainWin</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMainWindow</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span><span class="p">)</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+
+ <span class="c1"># set qt object name</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;pyART_changeBackgroundImg_Win&quot;</span><span class="p">)</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s2">&quot;Change Background&quot;</span><span class="p">)</span>
+
+ <span class="c1"># create the main layout</span>
+ <span class="n">mainWidget</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">setCentralWidget</span><span class="p">(</span><span class="n">mainWidget</span><span class="p">)</span>
+ <span class="n">mainLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="n">mainWidget</span><span class="p">)</span>
+
+ <span class="c1"># scroll area contents</span>
+ <span class="n">scrollContents</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span>
+ <span class="n">scrollContents</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s2">&quot;background: transparent;&quot;</span><span class="p">)</span>
+ <span class="n">scrollLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">()</span>
+ <span class="n">scrollLayout</span><span class="o">.</span><span class="n">setSpacing</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
+
+ <span class="c1"># find tabs. for each tab, create widget for changing background</span>
+ <span class="n">tabs</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">currentIndex</span><span class="p">()</span>
+ <span class="n">widget</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">characterTabs</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
+
+ <span class="c1"># get the children of the current tab widget</span>
+ <span class="n">children</span> <span class="o">=</span> <span class="n">widget</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+
+ <span class="c1"># if we find a tab widget, get tab name and item</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QTabWidget</span><span class="p">:</span>
+ <span class="n">tab</span> <span class="o">=</span> <span class="n">child</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tab</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
+ <span class="n">tab</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+
+ <span class="c1"># find tab&#39;s graphics view</span>
+ <span class="n">canvas</span> <span class="o">=</span> <span class="n">tab</span><span class="o">.</span><span class="n">widget</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+ <span class="n">canvasChildren</span> <span class="o">=</span> <span class="n">canvas</span><span class="o">.</span><span class="n">children</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">canvasChildren</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGraphicsView</span><span class="p">:</span>
+ <span class="n">gfxView</span> <span class="o">=</span> <span class="n">child</span>
+ <span class="n">tabs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">tab</span><span class="p">,</span> <span class="n">tab</span><span class="o">.</span><span class="n">tabText</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">gfxView</span><span class="p">])</span>
+
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tabs</span><span class="p">)):</span>
+ <span class="c1"># create the widget for each tab background</span>
+ <span class="n">layout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">()</span>
+ <span class="n">scrollLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="n">layout</span><span class="p">)</span>
+
+ <span class="c1"># which tab combo box</span>
+ <span class="n">tabComboBox</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QComboBox</span><span class="p">()</span>
+ <span class="n">tabComboBox</span><span class="o">.</span><span class="n">setMinimumWidth</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
+ <span class="n">tabComboBox</span><span class="o">.</span><span class="n">setFixedHeight</span><span class="p">(</span><span class="mi">35</span><span class="p">)</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">tabComboBox</span><span class="p">)</span>
+ <span class="n">tabComboBox</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+
+ <span class="n">tabComboBox</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">tabs</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
+
+ <span class="c1"># path location</span>
+ <span class="n">pathField</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLineEdit</span><span class="p">()</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">pathField</span><span class="p">)</span>
+ <span class="n">pathField</span><span class="o">.</span><span class="n">setReadOnly</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
+ <span class="n">pathField</span><span class="o">.</span><span class="n">setFixedHeight</span><span class="p">(</span><span class="mi">35</span><span class="p">)</span>
+ <span class="n">pathField</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+ <span class="n">pathField</span><span class="o">.</span><span class="n">setMinimumWidth</span><span class="p">(</span><span class="mi">160</span><span class="p">)</span>
+ <span class="n">pathField</span><span class="o">.</span><span class="n">setPlaceholderText</span><span class="p">(</span><span class="s2">&quot;442 x 600 PNG image file..&quot;</span><span class="p">)</span>
+
+ <span class="c1"># browse button</span>
+ <span class="n">button</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">button</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/fileBrowse.png&quot;</span><span class="p">))</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">backgroundBrowse</span><span class="p">,</span> <span class="n">pathField</span><span class="p">,</span> <span class="n">tabs</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]))</span>
+
+ <span class="c1"># clear button</span>
+ <span class="n">button</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span>
+ <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">button</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span>
+ <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">&quot;System/exit.png&quot;</span><span class="p">))</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setIconSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Clear custom background image, resetting back to default.&quot;</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span>
+ <span class="n">button</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clearBackground</span><span class="p">,</span> <span class="n">tabs</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]))</span>
+
+ <span class="c1"># add everything to the scroll Layout</span>
+ <span class="n">scrollContents</span><span class="o">.</span><span class="n">setLayout</span><span class="p">(</span><span class="n">scrollLayout</span><span class="p">)</span>
+ <span class="n">scrollArea</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QScrollArea</span><span class="p">()</span>
+ <span class="n">mainLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">scrollArea</span><span class="p">)</span>
+ <span class="n">scrollArea</span><span class="o">.</span><span class="n">setHorizontalScrollBarPolicy</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">ScrollBarAlwaysOff</span><span class="p">)</span>
+ <span class="n">scrollArea</span><span class="o">.</span><span class="n">setVerticalScrollBarPolicy</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">ScrollBarAlwaysOn</span><span class="p">)</span>
+ <span class="n">scrollArea</span><span class="o">.</span><span class="n">setWidgetResizable</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
+ <span class="n">scrollArea</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="n">scrollContents</span><span class="p">)</span>
+
+ <span class="c1"># show</span>
+ <span class="n">mainWin</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.backgroundBrowse"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.backgroundBrowse">[docs]</a> <span class="k">def</span> <span class="nf">backgroundBrowse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">field</span><span class="p">,</span> <span class="n">gfxView</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Opens a file browser to select a valid .png background image and then apply it to the specified QGraphicsScene.</span>
+
+<span class="sd"> :param field: QLineEdit for the path name to be displayed.</span>
+<span class="sd"> :param gfxView: QGraphicsView to add the background image to.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">startingDir</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">&quot;Core/Icons&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">startingDir</span><span class="p">):</span>
+
+ <span class="n">filename</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">fileDialog2</span><span class="p">(</span><span class="n">fm</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">okc</span><span class="o">=</span><span class="s2">&quot;Load Picker&quot;</span><span class="p">,</span> <span class="nb">dir</span><span class="o">=</span><span class="n">startingDir</span><span class="p">,</span> <span class="n">ff</span><span class="o">=</span><span class="s2">&quot;*.png&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">filename</span> <span class="o">=</span> <span class="n">filename</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="n">field</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span>
+
+ <span class="c1"># set background image</span>
+ <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">()</span>
+ <span class="n">pixmap</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span>
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">gfxView</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+ <span class="n">gfxItem</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">addPixmap</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span>
+ <span class="n">gfxItem</span><span class="o">.</span><span class="n">setZValue</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;customImg&quot;</span><span class="p">,</span> <span class="n">gfxItem</span><span class="p">)</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;filePath&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.clearBackground"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.clearBackground">[docs]</a> <span class="k">def</span> <span class="nf">clearBackground</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">gfxView</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Removes the background image from the given QGraphicsView.</span>
+
+<span class="sd"> :param gfxView: The QGraphicsView whose background image to remove.</span>
+
+<span class="sd"> .. seealso:: ART_AnimationUI.changeBackground</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">scene</span> <span class="o">=</span> <span class="n">gfxView</span><span class="o">.</span><span class="n">scene</span><span class="p">()</span>
+ <span class="n">items</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+ <span class="n">customImg</span> <span class="o">=</span> <span class="n">scene</span><span class="o">.</span><span class="n">property</span><span class="p">(</span><span class="s2">&quot;customImg&quot;</span><span class="p">)</span>
+
+ <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">item</span> <span class="o">==</span> <span class="n">customImg</span><span class="p">:</span>
+ <span class="n">scene</span><span class="o">.</span><span class="n">removeItem</span><span class="p">(</span><span class="n">item</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+
+<div class="viewcode-block" id="ART_AnimationUI.exportMotion"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.exportMotion">[docs]</a> <span class="k">def</span> <span class="nf">exportMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates ART_ExportMotionUI to bring up the tool for exporting animation out to various file formats.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="kn">import</span> <span class="nn">ART_ExportMotionUI</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">ART_ExportMotionUI</span><span class="p">)</span>
+ <span class="n">ART_ExportMotionUI</span><span class="o">.</span><span class="n">ART_ExportMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.importMotion"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.importMotion">[docs]</a> <span class="k">def</span> <span class="nf">importMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates ART_ImportMotionUI to bring up the tool for importing FBX animation onto the rig.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="kn">import</span> <span class="nn">ART_ImportMotionUI</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">ART_ImportMotionUI</span><span class="p">)</span>
+ <span class="n">ART_ImportMotionUI</span><span class="o">.</span><span class="n">ART_ImportMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.resetRigCtrls"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.resetRigCtrls">[docs]</a> <span class="k">def</span> <span class="nf">resetRigCtrls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates ART_ResetModulesUI to bring up the tool for resetting transformations on a selected modules.</span>
+<span class="sd"> Also known as &quot;zeroing out&quot;.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="kn">import</span> <span class="nn">ART_ResetModulesUI</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">ART_ResetModulesUI</span><span class="p">)</span>
+ <span class="n">ART_ResetModulesUI</span><span class="o">.</span><span class="n">ART_ResetModules</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.selectAllCtrls"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.selectAllCtrls">[docs]</a> <span class="k">def</span> <span class="nf">selectAllCtrls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates ART_SelectControlsUI to bring up the tool for selecting specified rig controls for selected</span>
+<span class="sd"> modules.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">show</span> <span class="o">=</span> <span class="kc">True</span>
+ <span class="n">mods</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getModifiers</span><span class="p">()</span>
+ <span class="k">if</span> <span class="p">(</span><span class="n">mods</span> <span class="o">&amp;</span> <span class="mi">4</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+ <span class="n">show</span> <span class="o">=</span> <span class="kc">False</span>
+
+ <span class="kn">import</span> <span class="nn">ART_SelectControlsUI</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">ART_SelectControlsUI</span><span class="p">)</span>
+ <span class="n">ART_SelectControlsUI</span><span class="o">.</span><span class="n">ART_SelectControls</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">show</span><span class="p">)</span></div>
+
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+ <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="ART_AnimationUI.matchOverRange"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.ART_AnimationUI.matchOverRange">[docs]</a> <span class="k">def</span> <span class="nf">matchOverRange</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates ART_MatchOverRangeUI to bring up the tool for matching different rig type over a frame range for</span>
+<span class="sd"> selected modules.</span>
+
+<span class="sd"> :Example:</span>
+
+<span class="sd"> Matching the IK leg rig controls to the Fk leg rig controls over a frame range of 0-30.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="kn">import</span> <span class="nn">ART_MatchOverRangeUI</span>
+ <span class="n">reload</span><span class="p">(</span><span class="n">ART_MatchOverRangeUI</span><span class="p">)</span>
+ <span class="n">ART_MatchOverRangeUI</span><span class="o">.</span><span class="n">ART_MatchOverRange</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div></div>
+
+
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span>
+<div class="viewcode-block" id="run"><a class="viewcode-back" href="../../animationUI.html#Interfaces.ART_AnimationUI.run">[docs]</a><span class="k">def</span> <span class="nf">run</span><span class="p">():</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiate the ART_AnimationUI class to build the main interface the animators will interact with.</span>
+
+<span class="sd"> :return: instance of the ART_AnimationUI in memory.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="c1"># create new instance of ART_AnimationUI</span>
+ <span class="n">gui</span> <span class="o">=</span> <span class="n">ART_AnimationUI</span><span class="p">(</span><span class="n">getMainWindow</span><span class="p">())</span>
+
+ <span class="c1"># Dock Control</span>
+ <span class="n">allowedAreas</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;left&quot;</span><span class="p">,</span> <span class="s2">&quot;right&quot;</span><span class="p">]</span>
+
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">dockControl</span><span class="p">(</span><span class="s2">&quot;pyArtv2AnimToolsDock&quot;</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">&quot;pyART_AnimTools_Win&quot;</span><span class="p">)</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">&quot;pyArtv2AnimToolsDock&quot;</span><span class="p">,</span> <span class="n">control</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="n">dock</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">dockControl</span><span class="p">(</span><span class="s2">&quot;pyArtv2AnimToolsDock&quot;</span><span class="p">,</span> <span class="n">area</span><span class="o">=</span><span class="s2">&quot;right&quot;</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s2">&quot;pyART_AnimTools_Win&quot;</span><span class="p">,</span>
+ <span class="n">allowedArea</span><span class="o">=</span><span class="n">allowedAreas</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Animation Tools&quot;</span><span class="p">,</span> <span class="n">w</span><span class="o">=</span><span class="mi">450</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="mi">500</span><span class="p">)</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">refresh</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">dockControl</span><span class="p">(</span><span class="n">dock</span><span class="p">,</span> <span class="n">edit</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">r</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+
+ <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;UI failed to launch.&quot;</span><span class="p">)</span>
+ <span class="nb">print</span> <span class="n">e</span>
+
+ <span class="k">return</span> <span class="n">gui</span></div>
+</pre></div>
+
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related" role="navigation" aria-label="related navigation">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li class="nav-item nav-item-0"><a href="../../index.html">ARTv2 1.0 documentation</a> &#187;</li>
+ <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
+ </ul>
+ </div>
+ <div class="footer" role="contentinfo">
+ &#169; Copyright 2017, Jeremy Ernst.
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2.
+ </div>
+ </body>
+</html> \ No newline at end of file