ó
Bª\c           @   sÇ   d  d l  Td  d l j j j Z d  d l m Z d  d l m Z d  d l	 Z	 d  d l
 Z
 d  d l Z d e e j f d „  ƒ  YZ d „  Z d „  Z d	 e j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   *N(   t   pix(   t   MayaQWidgetDockableMixint   FontDesignerc           B   sA   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s‘	  t  t |  ƒ j d | ƒ |  j d ƒ |  j t d ƒ t d ƒ ƒ t j d ƒ } t j	 j
 | d ƒ |  _ d  |  _ t j |  ƒ |  _ t j ƒ  |  _ |  j j t j t d ƒ t d ƒ t d	 ƒ t d
 ƒ ƒ ƒ |  j j d ƒ t j |  j ƒ |  _ |  j j t d ƒ t d ƒ t d ƒ t d ƒ ƒ |  j j d ƒ t j |  j ƒ |  _ |  j j d ƒ |  j j t ƒ |  j j t j |  j  ƒ |  j j! |  j ƒ t j" |  j ƒ |  _# |  j# j d ƒ |  j# j$ j |  j% ƒ |  j j! |  j# ƒ t j& t d ƒ t d ƒ t j' j( t j' j) ƒ } |  j j* | ƒ t j+ ƒ  |  _, |  j, j t j t d ƒ t d ƒ t d	 ƒ t d ƒ ƒ ƒ |  j, j- t j. j/ ƒ |  j, j d ƒ t j |  j, ƒ |  _0 |  j0 j d ƒ t j |  j0 ƒ |  _1 t2 ƒ  |  _3 |  j1 j! |  j3 ƒ |  j3 j4 j |  j5 ƒ |  j3 j d ƒ t j+ |  j, ƒ |  _6 |  j6 j t j t d ƒ t d ƒ t d ƒ t d ƒ ƒ ƒ |  j6 j- t j. j7 ƒ |  j6 j d ƒ t j |  j6 ƒ |  _8 |  j8 j d ƒ t j9 |  j8 ƒ |  _: |  j: j t d ƒ t d ƒ t d ƒ t d ƒ ƒ |  j: j d ƒ t j; |  j8 ƒ |  _< |  j< j d ƒ t j ƒ  |  _= |  j= j d ƒ t j |  j= ƒ |  _> t j? ƒ  |  _@ |  j> j! |  j@ d ƒ |  j@ jA ƒ  } | jB t jC jD ƒ | jE ƒ  t jF |  j6 ƒ |  _G |  jG j d ƒ |  jG jH t ƒ |  j@ j d ƒ |  j@ jI d ƒ |  j@ jJ d  ƒ t jK ƒ  } |  j@ jL d | ƒ t jK ƒ  } |  j@ jL d | ƒ t jK ƒ  } |  j@ jL d! | ƒ t jK ƒ  } |  j@ jL d" | ƒ t jK ƒ  } |  j@ jL d# | ƒ t jK ƒ  } |  j@ jL d$ | ƒ t jK ƒ  } |  j@ jM d | ƒ |  j< jN |  j= d% ƒ t j ƒ  |  _O |  jO j d& ƒ |  j< jN |  jO d% ƒ t j |  jO ƒ |  _P t j? ƒ  |  _Q |  jP j! |  jQ d ƒ |  jQ jA ƒ  } | jB t jC jD ƒ | jE ƒ  |  jQ jI d ƒ |  jQ jJ d" ƒ t jK ƒ  } |  jQ jL d | ƒ t jK ƒ  } |  jQ jL d | ƒ t jK ƒ  } |  jQ jL d! | ƒ t jK ƒ  } |  jQ jM d | ƒ |  j: j! |  j< ƒ |  j jR d' ƒ |  _S |  j@ jT d ƒ jU d( ƒ |  j@ jT d ƒ jU d) ƒ |  j@ jT d! ƒ jU d* ƒ |  j@ jT d" ƒ jU d+ ƒ |  j@ jT d# ƒ jU d, ƒ |  j@ jT d$ ƒ jU d- ƒ |  j< jV |  j< jW |  j= ƒ d. ƒ |  j< jV |  j< jW |  jO ƒ d/ ƒ |  j# jU t jX jY d0 d1 d  d2 ƒ ƒ |  jQ jT d ƒ jU d/ ƒ |  jQ jT d ƒ jU d3 ƒ |  jQ jT d! ƒ jU d4 ƒ |  j, jZ d d ƒ |  j, j[ t d5 ƒ t d6 ƒ g ƒ t j9 ƒ  } | j t d! ƒ t d! ƒ t d! ƒ t d! ƒ ƒ | j\ t d! ƒ ƒ | j! |  j d ƒ | j! |  j d ƒ | j! |  j, d ƒ |  j] | ƒ |  j^ t d7 ƒ ƒ |  j_ ƒ  d  S(8   Nt   parents   Font Designeri„  iX  s   getenv("MASH_LOCATION")s   3d Fontsi    i
   i!  i)   t   horizontalLayoutWidgett   horizontalLayoutt   comboBoxt
   pushButtoni(   i   i2   i1  t   splittert   gridLayoutWidgett
   gridLayouti   i€  t   rightSplittert   verticalLayoutWidgett   verticalLayoutt	   tabWidgett   tabi   t   attributeListWidgett   tableWidgeti   i   i   i   i   t    t   tab_2t   Files	   Font Names   Font Creators   Model Prefixs   Space Widtht   Leadingt   Aboutt   Fontt   Glypht   Widgets   Use Fontiÿÿÿÿt   Kerningt   Idiv  i  i,  (`   t   superR   t   __init__t   setWindowTitlet   resizeR   t   melt   evalt   ost   patht   joint	   fontsPatht   Nonet   jsonDatat   qtt   QMenuBart   menuBart   QWidgetR   t   setGeometryt   QRectt   setObjectNamet   QHBoxLayoutR   t   setContentsMarginst	   QComboBoxt   fontNamesComboBoxt   setEditablet   Truet   currentIndexChangedt   strt   connectt   previewThisFontt	   addWidgett   QPushButtonR   t   clickedt
   importFontt   QSpacerItemt   QSizePolicyt	   Expandingt   Minimumt   addItemt	   QSplitterR	   t   setOrientationt   Qtt
   HorizontalR
   t   thumbnailHorizontalLayoutt
   QdIconViewR   t   itemSelectionChangedt   updateGlyphInfoR   t   VerticalR   t   QVBoxLayoutR   t
   QTabWidgetR   R   t   fontTabHorizontalLayoutt   QTableWidgetR   t   horizontalHeadert   setSectionResizeModet   QHeaderViewt   Stretcht   hidet	   QTextEditt
   infoWidgett   setReadOnlyt   setColumnCountt   setRowCountt   QTableWidgetItemt   setVerticalHeaderItemt   setHorizontalHeaderItemt   addTabR   t   glyphTabHorizontalLayoutt   glyphTableWidgett   addMenut
   createMenut   verticalHeaderItemt   setTextt
   setTabTextt   indexOft   QApplicationt	   translatet   setStretchFactort   setSizest
   setSpacingt	   setLayoutt   setMinimumWidtht	   loadFonts(   t   selfR   t   mashPatht
   spacerItemt   tableHeadert   itemt   main_layout(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR      sî    	:10::1

""%".c         C   s_   g  } t  j |  j ƒ } x6 | D]. } | j ƒ  j d ƒ r |  j j | ƒ q q W|  j ƒ  d  S(   Ns   .3df(   R#   t   listdirR&   t   lowert   endswithR3   RB   R9   (   Rn   t
   foundFontst   filest   possibleFont(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyRm   ž   s    c         C   s€   |  j  j ƒ  |  j j ƒ  } |  j | d } t j j | ƒ rs t | ƒ # } t	 j
 | ƒ |  _ |  j ƒ  Wd  QXn	 d | GHd  S(   Ns   /Resources/data.jsons   JSON not found: (   R   t   clearR3   t   currentTextR&   R#   R$   t   isfilet   opent   jsont   loadR(   t   setUpFontInUI(   Rn   t   thisFontt   jsonPatht   fontData(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR9   §   s    c         C   s•  |  j  j ƒ  } |  j d } d | k rU |  j j d d t j |  j d d ƒ ƒ n  d | k rŽ |  j j d d t j |  j d d ƒ ƒ n  d | k rÇ |  j j d d t j |  j d d ƒ ƒ n |  j j d d t j d ƒ ƒ d	 | k r%|  j j d
 d t j t |  j d d	 ƒ ƒ ƒ n |  j j d
 d t j d ƒ ƒ d | k rƒ|  j j d d t j t |  j d d ƒ ƒ ƒ n |  j j d d t j d ƒ ƒ |  j j	 ƒ  d | k rÙ|  j j
 |  j d d ƒ n  xµ |  j d D]¦ } d | k rç|  j | d | d } t t t | d ƒ ƒ ƒ } | j t j | ƒ ƒ d | k r`| d | _ n  | d | _ | d | _ |  j j | ƒ qçqçWd  S(   Nt   metadatat   fontNamei    t   designeri   t   modelPrefixi   R   t
   spaceWidthi   t   leadingHeighti   t   notest   glyphst   previews   /Resources/Images/t   unicodet   idt   kerning(   R3   R{   R(   R   t   setItemR)   RZ   R7   RV   Rz   Rc   R&   t   ListItemt   HexToUnit   setIcont   QPixmapRŽ   R   R   R   RB   (   Rn   R   t   fontMetaDatat   glypht	   imagePatht   itm(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR€   ³   s8    ---33c         C   s\  |  j  j ƒ  } |  j | d } t j | ƒ } g  } x3 | D]+ } | j ƒ  j d ƒ r< | j | ƒ q< q< Wt j	 d d | ƒ } g  } xL | D]D } | | } t
 j | d t d d d | d	 t ƒ}	 | j |	 ƒ q Wt
 j d
 ƒ }
 t
 j d ƒ } t
 j |
 d d d d ƒt
 j | d d d d ƒt |  j d ƒ r«d } xj |  j d D]X } | d | d } t
 j |
 d t d t d | ƒt
 j | ƒ | | d <| d 7} qLWn  t
 j | d |
 d d t ƒt
 j | d t j |  j ƒ d d ƒt
 j | d |
 d d t ƒt |  j d ƒ rXt |  j d d d ƒ } t
 j | d  | d d ƒn  d  S(!   Ns   /Resources/3d/s   .fbxs
   [^A-Za-z]+R   t   rt   typet   FBXt	   namespacet   returnNewNodest	   instancert	   MASH_Fontt   longNamet   instancerMessaget   att   messageR‹   i    t   :t   modelt   et   at   objectRŽ   i   s   .outputPointss   .inputPointst   forces	   .fontJSONt   strings   .instancerMessageR   s
   .inputText(   R3   R{   R&   R#   Rt   Ru   Rv   t   appendt   ret   subt   cmdst   fileR5   t   extendt
   createNodet   addAttrt   lenR(   Rž   RT   t   connectAttrt   setAttrR~   t   dumpsR7   (   Rn   R   t
   modelsPathRx   t   modelsToLoadR¥   Rœ   t
   addedNodest	   modelPatht   nodesRž   t   fontNodet   objIdR–   t	   modelNamet   firstGlyphUnicode(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR=   ×   s>    
'
&c         C   s  |  j  j ƒ  } t | ƒ d k r· |  j  j ƒ  } |  j j d d t j t | d j ƒ ƒ ƒ |  j j d d t j t | d j	 ƒ ƒ ƒ |  j j d d t j t | d j
 ƒ ƒ ƒ n] |  j j d d t j d ƒ ƒ |  j j d d t j d ƒ ƒ |  j j d d t j d ƒ ƒ d  S(   Ni   i    i   R   (   R   t   selectedItemsR³   R_   R   R)   RZ   R7   R   R   RŽ   (   Rn   Rr   (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyRJ     s    ,,/N(	   t   __name__t
   __module__R'   R   Rm   R9   R€   R=   RJ   (    (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR   
   s   ‘				$	+c         C   sU   g  } |  j  d ƒ }  x0 |  D]( } t | d ƒ } | j t | ƒ ƒ q Wd j | ƒ S(   Nt    i   R   (   t   splitt   intR«   t   unichrR%   (   t   hexStrt   bytest   hexChart   ordNum(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR’     s    c          C   sL   t  d t j ƒ  ƒ }  |  j t j j ƒ |  j d t ƒ |  j	 d t ƒ d  S(   NR   t   saveWindowPreft   dockable(
   R   t   fxt
   mayaWindowt   setWindowFlagsR)   RE   t   Windowt   setPropertyR5   t   show(   t   ui(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyt   showFontDesigner  s    RH   c           B   s   e  Z d d  „ Z RS(   c         C   sµ   t  j j |  | ƒ |  j t  j t d ƒ t d ƒ ƒ ƒ |  j t  j j ƒ |  j	 t  j j
 ƒ |  j t  j j ƒ |  j t  j j ƒ |  j t ƒ |  j t ƒ |  j t d ƒ ƒ d  S(   Ni    iZ   i   (   R)   t   QListWidgetR   t   setIconSizet   QSizeR   t   setViewModet	   QListViewt   IconModet   setMovementt   Statict   setResizeModet   Adjustt   setLayoutModet   Batchedt   setWrappingR5   t   setDragEnabledRj   (   Rn   R   (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR   $  s    %N(   RÁ   RÂ   R'   R   (    (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyRH   #  s   R‘   c           B   s   e  Z d  „  Z RS(   c         C   s;   t  j j |  | ƒ | |  _ d |  _ d |  _ d |  _ d  S(   Ni    (   R)   t   QListWidgetItemR   Rª   R   R   RŽ   (   Rn   t   text(    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR   1  s
    			(   RÁ   RÂ   R   (    (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyR‘   0  s   (   t   maya.app.flux.importst   maya.app.flux.coret   appt   fluxt   coreRÍ   R   t   maya.app.general.mayaMixinR   R#   R~   R¬   R)   R,   R   R’   RÔ   RÕ   RH   Rã   R‘   (    (    (    sK   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/FontDesigner.pyt   <module>   s   
ÿ 		