
Zc           @   s   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z m Z d d l m	 Z	 d d l
 m Z e j e  Z e j Z d a d a d   Z d   Z d e f d	     YZ d
 e f d     YZ d e f d     YZ d S(   iN(   t   parset
   SubElementi   (   t   QObjectCreator(   t
   Propertiesc         C   sj   d } x] |  j d  D]L } | j d  \ } } t t j |  } | d k rX | } q | | O} q W| S(   s5    Convert a C++ alignment to the corresponding flags. t   |s   ::N(   t   Nonet   splitt   getattrt   QtCoret   Qt(   t	   alignmentt   align_flagst   qt_alignt   _t   align(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   _parse_alignment:   s    	c         C   s   |  j  j d  } |  j  j d  } |  j  j d  } | d k sN | d k rn | d k r^ d	 Sd t |  f St |  } t |  } t |  j  j d d   } t |  j  j d d   } | d k r | | | | f S| | | | t |  f S(
   s    Return either (), (0, alignment), (row, column, rowspan, colspan) or
    (row, column, rowspan, colspan, alignment) depending on the type of layout
    and its configuration.  The result will be suitable to use as arguments to
    the layout.
    t   rowt   columnR
   i    t   rowspani   t   colspanN(    (   t   attribt   getR   R   t   int(   t   elemR   R   R
   R   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   _layout_positionJ   s    t   WidgetStackc           B   sD   e  Z d Z d    Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   sU   t  d | j   j   | j   f  |  j |  t | t j  rQ | |  _ n  d  S(   Ns
   push %s %s(	   t   DEBUGt
   metaObjectt	   classNamet
   objectNamet   appendt
   isinstancet	   QtWidgetst   QWidgett	   topwidget(   t   selft   item(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   pushk   s
    c         C   s9   t  j |   } t d | j   j   | j   f  | S(   Ns   pop layout %s %s(   t   listt   popR   R   R   R   (   R#   t   layout(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt	   popLayoutr   s    c         C   s   t  j |   } t d | j   j   | j   f  x< t |   D]% } t | t j	  rB | |  _
 PqB qB Wd  |  _
 t d |  j
 f  | S(   Ns   pop widget %s %ss   new topwidget %s(   R&   R'   R   R   R   R   t   reversedR   R    R!   R"   R   (   R#   t   widgetR$   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt	   popWidgetx   s    		c         C   s   |  d S(   Ni(    (   R#   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   peek   s    c         C   s   t  |  d t j  S(   Ni(   R   R    t   QLayout(   R#   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   topIsLayout   s    c      	   C   s   t  |  d  t j k	 r t St |   d k  r3 t S|  d } t | t j  o t  |  t j t j t j t j	 t j
 t j t j t j f k S(   Nii   i(   t   typeR    R!   t   Falset   lenR   t   QMainWindowt   QStackedWidgett   QToolBoxt
   QTabWidgett   QScrollAreat   QMdiAreat   QWizardt   QDockWidget(   R#   t   parent(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   topIsLayoutWidget   s    
N(
   t   __name__t
   __module__R   R"   R%   R)   R,   R-   R/   R<   (    (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR   i   s   					t   ButtonGroupc           B   s   e  Z d  Z d   Z RS(   sM    Encapsulate the configuration of a button group and its implementation.
    c         C   s   t  |  _ d |  _ d S(   s    Initialise the button group. N(   t   Truet	   exclusiveR   t   object(   R#   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   __init__   s    	(   R=   R>   t   __doc__RC   (    (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR?      s   t   UIParserc           B   s  e  Z d    Z d   Z d   Z e d  Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z e d    Z d   Z d   Z d   Z d   Z d   Z i
 e d 6e d 6e d 6e
 d 6e d 6e d 6e d 6e d 6e d 6e d 6Z d   Z d   Z d    Z d!   Z d"   Z d#   Z d$   Z d%   Z  d&   Z! d'   Z" d(   Z# d)   Z$ d*   Z% d+   Z& d,   Z' d- d.  Z( e d/    Z) RS(0   c         C   sD   t  |  |  _ t |  j | | |  |  _ | a | a |  j   d  S(   N(   R   t   factoryR   t   wpropsR   R    t   reset(   R#   t   qtcore_modulet   qtgui_modulet   qtwidgets_modulet   creatorPolicy(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRC      s    c         C   sX   y |  j  | } Wn t k
 r2 d |  j  | <| SX| d 7} | |  j  | <d | | f S(   s   UIParser.uniqueName(string) -> string

        Create a unique name from a string.
        >>> p = UIParser(QtCore, QtGui, QtWidgets)
        >>> p.uniqueName("foo")
        'foo'
        >>> p.uniqueName("foo")
        'foo1'
        i    i   s   %s%i(   t   name_suffixest   KeyError(   R#   t   namet   suffix(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt
   uniqueName   s    

c         C   s   y |  j  j   Wn t k
 r$ n Xd  |  _ t   |  _ i  |  _ i d d 6d d 6|  _ g  |  _	 d  |  _
 g  |  _ i  |  _ d  S(   Nit   spacingt   margin(   RG   RH   t   AttributeErrorR   t   toplevelWidgetR   t   stackRM   t   defaultst   actionst   currentActionGroupt	   resourcest   button_groups(   R#   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRH      s      					c         C   s   |  j  | j j d  p% | d j    } | d  k r@ d } n	 | f } |  j j | | | |  } |  j j | |  | j	 |  | r t
 |  j | |  n  | S(   NRO   i   (    (   RQ   R   R   t   lowerR   RF   t   createQObjectRG   t   setPropertiest   setObjectNamet   setattrRU   (   R#   t   clsnameR;   t   brancht   is_attributeRO   t   argst   obj(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   setupObject   s    +		c         C   s5   x. | j  d  D] } | j d | k r | Sq Wd  S(   Nt   propertyRO   (   t   findallR   R   (   R#   R   RO   t   prop(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   getProperty   s    c      	   C   s  d |  _  d |  _ d |  _ g  |  _ d  |  _ | j d j d d  } | d k r[ d } n  |  j j	 } t
 | t j t j t j t j t j t j t j f  r d  } n  |  j j |  j | | |   t
 |  j j	 t j  r]|  j | d  d  k r|  j j	 j t | j d    n  |  j | d	  d  k r]|  j j	 j t | j d
    q]n  |  j |  |  j j   } t
 | t j  r|  j | d | j    ntt
 | t j   r|  j | d | j!    |  j | d | j"    n-t
 | t j#  r|  j$ j% | d  } | d  k	 ry | j& } Wn t' k
 rG| } n X| sWd } n  y |  j( | } Wn% t) k
 rt*   } |  j( | <n X| j+ d  k r|  j, j- d | |  j. f  | _+ t/ |  j. | | j+  | j+ j0 |  | j1 s| j+ j2 t3  qn  | j+ j4 |  qn  |  j d  k	 rF| j5 |  j  d  |  _ n  |  j j6   r|  j j7   } | j d }	 t
 | t j8  r| j9 |	 d |  j: |	  |  q| j; | |	  n  |  j j	 }
 t
 |
 t j  r||  j$ j% | d  } | d  k	 r|
 j< | | |  j$ j% | d   n |
 j< | |  j$ j% | d   |  j$ j% | d  } | d  k	 r|
 j= |
 j> |  |  qnkt
 |
 t j  r3|  j$ j% | d  } | d  k	 r|
 j? | | |  j$ j% | d   n |
 j? | |  j$ j% | d   |  j$ j% | d  } | d  k	 r|
 j@ |
 j> |  |  qnt
 |
 t j  rU|
 jA |  nt
 |
 t j  rw|
 j; |  npt
 |
 t j t j f  r|
 j9 |  nEt
 |
 t jB  rtC |  t jD k r|
 jE |  qt
 | t jF  rZ|  j$ j% | d  } | d  k r|
 jG |  n |
 jG | |  |  j$ j% | d  } | r|
 jH |  qqt
 | t jI  r||
 jJ |  qt
 | t jK  r|
 jL |  qt
 | t j  r|  j$ j% | d  } |
 jM tN jO jP |  |  qn  d  S(   Ni    t   classs   ::t   .t   Linet   QFramet   columnCountR   t   rowCountR   t   headert   horizontalHeadert   verticalHeadert   buttonGroupt   QButtonGroups   layout-positiont   icont   labelt   toolTipt   titlet   toolBarAreat   toolBarBreakt   dockWidgetArea(Q   t   column_countert   row_countert   item_nrt	   itemstackR   t   sorting_enabledR   t   replaceRV   R"   R   R    R:   R8   R7   R4   R5   R6   R9   R%   Rf   t   QTableWidgetRj   t   setColumnCountR2   Rh   t   setRowCountt   traverseWidgetTreeR,   t	   QTreeViewt   handleHeaderViewRq   t
   QTableViewRr   Rs   t   QAbstractButtonRG   t   getAttributet   stringRT   R[   RN   R?   RB   RF   R]   RU   R`   R_   RA   t   setExclusiveR1   t	   addButtont   setSortingEnabledR/   R-   t   QFormLayoutt	   setWidgett   _form_layout_rolet	   addWidgett   addItemt   setItemToolTipt   indexOft   addTabt   setTabToolTipt   addPageR3   R0   R!   t   setCentralWidgett   QToolBart
   addToolBart   insertToolBarBreakt   QMenuBart
   setMenuBart
   QStatusBart   setStatusBart   addDockWidgetR   R	   t   DockWidgetArea(   R#   R   t   widget_classR;   R+   t   bg_i18nt   bg_namet   bgt   layt   lpR"   Rv   t   tooltipt   tbAreat   tbBreakt   dwArea(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createWidget   s    							%(
		#%%c         C   sw  |  j  j | | d  } | d  k	 r5 | j |  n  |  j  j | | d  } | d  k	 rj | j |  n  |  j  j | | d  } | d  k	 r | j |  n  |  j  j | | d  } | d  k	 r | j |  n  |  j  j | | d  } | d  k	 r	| j |  n  |  j  j | | d  } | d  k	 r>| j |  n  |  j  j | | d  } | d  k	 rs| j	 |  n  d  S(   Nt   Visiblet   CascadingSectionResizest   DefaultSectionSizet   HighlightSectionst   MinimumSectionSizet   ShowSortIndicatort   StretchLastSection(
   RG   R   R   t
   setVisiblet   setCascadingSectionResizest   setDefaultSectionSizet   setHighlightSectionst   setMinimumSectionSizet   setSortIndicatorShownt   setStretchLastSection(   R#   R   RO   Rq   t   value(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR     s*    c   
      C   sa  | j  d  } | j  d  } | d  k s6 | d  k r? d } n t |  t |  f } |  j j | d t j j  } t j j | f } |  j j | d  t	 j
 j k r | d | d f } n  |  j j d |  j d  | | d	 t } |  j j   r]|  j j   } | j d
 }	 t | t j  rJ| j |	 d |  j |	  |  q]| j | |	  n  d  S(   Ns   property/size/widths   property/size/heightt   sizeTypet   orientationi   i    t   QSpacerItemt
   spacerItemRc   s   layout-position(    (   t   findtextR   R   RG   Rj   R    t   QSizePolicyt	   Expandingt   MinimumR   R	   t
   HorizontalRF   R]   RQ   R1   RV   R/   R-   R   R   R   t   setItemR   R   (
   R#   R   t   widtht   heightt	   size_argsR   t   policyt   spacerR   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createSpacer  s&    	!	#c         C   ss  |  j  j   r d n
 |  j d } |  j j | d |  } |  j j | d |  } |  j j | d |  } |  j j | d |  } |  j j | d |  } |  j  j   r | d k  r d } n  | d k  r d } n  | d k  r d } n  | d k  r d } q n  | d k s0| d k s0| d k s0| d k rt | d d	 d
 } t |  t | d  _ t |  t | d  _ t |  t | d  _ t |  t | d  _ n  |  j j | d |  j d  } |  j j | d |  }	 |  j j | d |  }
 |	 d k s|
 d k rWt | d d	 d } t |	  t | d  _ t |
  t | d  _ n  | j	 d } |  j  j   r|d  } n |  j  j } d	 | j	 k r| d j   | j	 d	 <n  |  j  j |  j | | |   |  j |  |  j  j   } |  j | |  |  j  j   ro|  j  j   } | j	 d } t | t j  r\| j | d |  j |  |  qo| j | |  n  d  S(   NiRS   t
   leftMargint	   topMargint   rightMargint   bottomMargini    Rg   RO   t   pyuicMarginst   numberRR   t   horizontalSpacingt   verticalSpacingt   pyuicSpacingRk   i   s   layout-position(   RV   R/   RW   RG   Rj   R<   R   t   strt   textR   R   R"   R\   R%   Rf   R   R)   t   configureLayoutR-   R   R    R   t	   setLayoutR   t	   addLayout(   R#   R   RS   t   leftt   topt   rightt   bottomt   cmeRR   t   horizt   vertt	   classnameR;   R(   t
   top_layoutR   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createLayout  sZ    " 	 	 	 0	#c         C   s   t  | t j  rm |  j | d | j  |  j | d | j  |  j | d | j  |  j | d | j  n+ t  | t j  r |  j | d | j	  n  d  S(   Nt   columnminimumwidtht   rowminimumheightt   columnstretcht
   rowstretcht   stretch(
   R   R    t   QGridLayoutt   setArrayt   setColumnMinimumWidtht   setRowMinimumHeightt   setColumnStretcht   setRowStretcht
   QBoxLayoutt
   setStretch(   R#   R   R(   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR     s    

c         C   sm   | j  j |  } | ri xN t | j d   D]4 \ } } t |  } | d k r. | | |  q. q. Wn  d  S(   Nt   ,i    (   R   R   t	   enumerateR   R   (   R#   R   RO   t   settert   arrayt   idxR   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR     s    "c         C   s>   |  j  d k r: |  j j d | j  |  _ | j t  n  d  S(   Ni    t   __sortingEnabled(   R   RF   t   invoket   isSortingEnabledR   R   R1   (   R#   t   w(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   disableSorting  s    c         C   s`  |  j  j   r6 t |  | d j d <|  j |  n&|  j  j } t | t j  r |  j	 j
 | d  } |  j	 j
 | d  } | r | j | d  n | j d  | j |  j |  nt | t j  r|  j |  |  j d | | j |  j  } | j |  nFt | t j  r|  j rK|  j d \ } } |  j d \ } } n | } |  j } |  j j d d	 t |  j  | f t  } |  j d k r|  j r|  j j d
 | j  |  _ | j t  n  |  j j | |  j f  d |  _ | j |  }	 x* |  j d D] \ }
 } |	 j |  }	 qWd } x|| j d  D]k} |  j	 j  |  } | j d } | d k r| d 7} | r|	 j! | |  qq=| d k r| j" | |  q=| d k r| j# | |  q=| d k r| j$ | |  q=| d k r| j% | |  q=| d k r/| j& | |  q=| d k rN| j' | |  q=| d k rm| j( | |  q=| d k r| j) |  q=| d k r=| j* | |  q=q=W|  j |  |  j j+   \ } |  _ ny t | t j,  rMt- | j d  } t- | j d  } |  j |  |  j d | | j | |  } | j. | | |  n  |  j d 7_ d  S(   Ni    s   layout-positionR   Rv   t    t   QListWidgetItemit   QTreeWidgetItems   item_%dR   i   Rg   RO   t	   statusTipRx   t	   whatsThist   fontt
   backgroundt
   foregroundt   flagst
   checkStateR   R   t   QTableWidgetItem(/   RV   R/   R   R   R   R"   R   R    t	   QComboBoxRG   Rj   R   t   setItemTextR   t   QListWidgetR   t   createWidgetItemR$   t   QTreeWidgetR   RF   R]   R2   R1   R   R   R   R   R   t   topLevelItemt   childRh   t   convertt   setTextt   setStatusTipt
   setToolTipt   setWhatsThist   setFontt   setIcont   setBackgroundt   setForegroundt   setFlagst   setCheckStateR'   R   R   R   (   R#   R   R   R   Rv   R$   R;   R   t
   nr_in_roott   titmR  t   nr_in_parentR   Ri   t   c_propt   c_prop_nameR   t   col(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt
   handleItem  s    			
c         C   s'   |  j  j |  j j | j d f  d  S(   NRO   (   RX   R   RV   R"   R   (   R#   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt	   addActiony  s    c          G   s5   x. |  D]& } | d k	 r t | t  r t Sq Wt S(   s;    Return True if any argument appears to be an i18n string. N(   R   R   R   R@   R1   (   Rd   t   a(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   any_i18n|  s    c         G   s  |  j  j | d d t  } |  j } | j | d  } | j | d  } | j | d  }	 | j | d  }
 |  j | | |	 |
  r |  j  j d | |  n  | r | j |  n  | r | j |  n  |	 r | j	 |	  n  |
 r | j
 |
  n  | j | d  } | r| j |  n  | j | d  } | rE| j |  n  | j | d  } | rm| j |  n  | j | d	  } | r| j |  n  | j | d
  } | r| j |  n  | j | d  } | r| j |  n  | j | d  } | r| j |  n  | S(   s(    Create a specific type of widget item. R$   R   R   Rx   R  t   textAlignmentR  Rv   R  R  R  R  (    (   RF   R]   R1   RG   Rj   R#  R   R  R  R  R  t   setTextAlignmentR  R  R  R  R  R  (   R#   t	   item_typeR   t   gettert   getter_argsR$   t   propsR   t
   status_tipt   tool_tipt
   whats_thist   text_alignmentR  Rv   R  R  R  t   check_state(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR    sL    	c         C   s  |  j  j } t | t j  r|  j } |  j } | j | d  } | ra | j   j	 | |  n  | j | d  } | r | j   j
 | |  n  | j | d  } | r | j   j | |  n  | j | d  } | r | j   j | |  n  | j | d  }	 |	 r%| j   j | |	  n  | j | d  }
 |
 rV| j   j | |
  n  | j | d  } | r| j   j | |  n  | j | d  } | r| j   j | |  n  | j | d	  } | r| j   j | |  n  |  j d
 7_ n t | t j  rt |  d k r| j d k rq|  j d | | j |  j  } | j |  j |  |  j d
 7_ q| j d k r|  j d | | j |  j  } | j |  j |  |  j d
 7_ qqn  d  S(   NR   R   Rx   R  R$  R  Rv   R  R  i   i    R   R  R   (   RV   R"   R   R    R  RG   R}   Rj   t
   headerItemR  R  R  R  R%  R  R  R  R  R   R2   t   tagR  t   horizontalHeaderItemt   setHorizontalHeaderItemt   verticalHeaderItemR~   t   setVerticalHeaderItem(   R#   R   R   R)  R  R   R*  R+  R,  R-  R  Rv   R  R  R$   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt	   addHeader  sX    		c         C   sH   | j  d  k r d  Sy t |  j | j   j   Wn t k
 rC n Xd  S(   N(   R   R   R   RU   t   raise_RT   (   R#   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt	   setZOrder  s    c         C   s#   |  j  d |  j p |  j |  d  S(   Nt   QAction(   Rf   RY   RU   (   R#   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createAction  s    c         C   s;   |  j  d |  j |  } | |  _ |  j |  d  |  _ d  S(   Nt   QActionGroup(   Rf   RU   RY   R   R   (   R#   R   t   action_group(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createActionGroup  s    	R+   t	   addactionR(   R   R$   t   actiont   actiongroupR   R   t   zorderc         C   sS   xL t  |  D]> } y |  j | j } Wn t k
 r= q n X| |  |  q Wd  S(   N(   t   itert   widgetTreeItemHandlersR0  RN   (   R#   R   R  t   handler(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR     s    c         C   s  | j  d } | j  d } | s] | } | j d  rB | d } n  | d j   | d } n  |  j | |  |  _ |  j j |  t d |  j j   j    |  j	 j
 |  j |  |  j j |  j  |  j |  |  j j   |  j   |  j   |  j   d  S(   NRk   RO   t   Qi   i    s   toplevel widget is %s(   R   t
   startswithR\   t   createToplevelWidgetRU   R_   R   R   R   RG   R^   RV   R%   R   R,   t
   addActionst
   setBuddiest   setDelayedProps(   R#   R   t   cnamet   wname(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createUserInterface(  s$    

c         C   s   x |  j  D] \ } } | d k r/ | j   q
 t d | | j    t |  j |  } t | t j  r | j	 | j
    q
 t | t j  s
 | j	 |  q
 q
 Wd  S(   Nt	   separators   add action %s to %s(   RX   t   addSeparatorR   R   R   RU   R   R    t   QMenuR!  t
   menuActionR:  (   R#   R+   t   action_namet
   action_obj(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRG  B  s    c         C   sU   xN |  j  j D]@ \ } } } } | r4 | j   } n  t | |  } | |  q Wd  S(   N(   RG   t   delayed_propsR(   R   (   R#   R+   R(   R   Rd   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRI  N  s
    c         C   s~   xw |  j  j D]i \ } } t d | | j    y | j t |  j |   Wq t k
 ru t d | | j    q Xq Wd  S(   Ns   %s is buddy of %ss1   ERROR in ui spec: %s (buddy of %s) does not exist(   RG   t   buddiesR   R   t   setBuddyR   RU   RT   (   R#   R+   t   buddy(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRH  V  s    c         C   sT   t  d | j  | j } | d  k r. d } n  | |  _ | |  j _ |  j |  d  S(   Ns   uiname is %sR   (   R   R   R   t   uinameRG   t
   setContext(   R#   R   RO   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR   _  s    			c         C   s   d S(   sc   
        Reimplemented by a sub-class if it needs to know the translation
        context.
        N(    (   R#   t   context(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRX  j  s    c         C   s8   t  | j d  |  j d <t  | j d  |  j d <d  S(   NRS   RR   (   R   R   RW   (   R#   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   readDefaultsq  s    c         C   sX   d  } xK | D]C } t |  j | j  } | d  k	 rJ |  j j | |  n  | } q Wd  S(   N(   R   R   RU   R   t   setTabOrder(   R#   R   t
   lastwidgett   widget_elemR+   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   setTaborderu  s    c         C   s   y t  | d  } Wn  t k
 r5 t  | d  } n Xx} | d  D]o } | j j d  } | rC | j d  rC t j j | d  |  j  } | |  j	 k r |  j	 j
 |  q qC qC Wd S(   sk   
        Read a "resources" tag and add the module to import to the parser's
        list of them.
        RA  t   getiteratort   includet   locations   .qrciN(   R   RT   R   R   t   endswitht   ost   patht   basenamet   _resource_suffixRZ   R   (   R#   R   t   iteratorR`  t   loct   mname(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   readResources  s    c   
         sA    f d   } xt  |  D]
} | j d  } | j d  \ } } | d  j d d  } | | j d   } t | |  }   j j | | j d   | j d	  j d  d
  }	 | d k r | j |	  q | j d  } t |  d k r| | d
 j |	  q | t	 |  j |	  q Wt
 j j   j  d  S(   Nc            s*   |    j  k r   j St   j |   Sd  S(   N(   RW  RU   R   (   Re   (   R#   (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   name2object  s    t   signalt   (it    R   t   sendert   receivert   sloti    R   i   (   RA  R   R   R   R   RF   t   getSlott   connectR2   t   tupleR   t   QMetaObjectt   connectSlotsByNameRU   (
   R#   R   Rk  t   connRl  t   signal_namet   signal_argsRo  t   bound_signalRq  (    (   R#   s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   createConnections  s     c         C   sg   d   } xW t  |  D]I } | j d  } |  j j | | j d  pI d | | j d    q Wd  S(   Nc         S   s   |  j  d  r |  d  }  n  g  } xN |  j d  D]= } | d k r2 | d k r_ t d   n  | j |  q2 q2 Wd j |  S(	   s   header2module(header) -> string

            Convert paths to C++ header files to according Python modules
            >>> header2module("foo/bar/baz.h")
            'foo.bar.baz'
            s   .hit   /R   Rl   s   ..s4   custom widget header file name may not contain '..'.(   R   Rl   (   Rb  R   t   SyntaxErrorR   t   join(   Rq   t   mpatht   part(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   header2module  s    Rk   t   extendsR!   Rq   (   RA  R   RF   t   addCustomWidget(   R#   R   R  t   custom_widgetR   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   customWidgets  s    	c         C   s
   t   d  S(   N(   t   NotImplementedError(   R#   R   t
   widgetname(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRF    s    c         C   s   x t  |  D]} } | j d k r | j d } t   } | |  j | <|  j | d  } | d  k	 r | j d  d k r t | _	 q q q q Wd  S(   Nt   buttongroupRO   RA   t   boolt   false(
   RA  R0  R   R?   R[   Rj   R   R   R1   RA   (   R#   R   t   button_groupR   R   Ri   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   buttonGroups  s    	c         C   s   d  S(   N(    (   R#   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   finalize  s    R   c      	   C   s!  |  j  j |  | |  _ d |  j f d |  j f d |  j f d |  j f d |  j f d |  j f d |  j	 f d |  j
 f f } t |  } | j   j d	 } t d
 | f  | d k s t  x< | D]4 \ } } | j |  }	 |	 d  k	 r | |	  q q W|  j   |  j }
 |  j   |
 S(   Nt   layoutdefaultRk   t   buttongroupst   customwidgetsR+   t   connectionst   tabstopsRZ   t   versions   UI version is %ss   4.0(   s   4.0(   RG   t   set_base_dirRf  RZ  R   R  R  RL  R{  R^  Rj  R    t   getrootR   R   t   AssertionErrort   findR   R  RU   RH   (   R#   t   filenamet   resource_suffixt   base_dirt   branchHandlerst   documentR  t   tagnamet   actorR   R   (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR      s,    	
	
c         C   sN   |  d d k r t  j j } n+ |  d d k r> t  j j } n t  j j } | S(   Ni   i   (   R    R   t   SpanningRolet	   FieldRolet	   LabelRole(   t   layout_positiont   role(    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyR     s    (*   R=   R>   RC   RQ   RH   R@   Rf   Rj   R   R   R   R   R   R   R   R   R!  t   staticmethodR#  R  R5  R7  R9  R<  RB  R   RL  RG  RI  RH  R   RX  RZ  R^  Rj  R{  R  RF  R  R  R    R   (    (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyRE      s`   								B				Z	
	;	:			
											
						!(   t   syst   loggingt   os.pathRc  t   ret   xml.etree.ElementTreeR    R   t
   objcreatorR   t
   propertiesR   t	   getLoggerR=   t   loggert   debugR   R   R   R    R   R   R&   R   RB   R?   RE   (    (    (    s1   lib/python2.7/site-packages/PyQt5/uic/uiparser.pyt   <module>)   s   			;