ó
ÉÝ{Tc        	   @   sñ  d  Z  d d l Z d d l Z d d l Z 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 d d l m Z m Z d d l m Z d d l j Z d d l j Z d d l Z d d l Z d d l m Z d d	 l m Z e j  d
 d ƒ d d l! Z! e! j" d d ƒ i d d „ d 6Z# i d „  e# d 6Z$ i d d „ e# d 6Z% d „  Z& e' e( d „ Z) d f  d „  ƒ  YZ* d e
 j+ f d „  ƒ  YZ, d e
 j- f d „  ƒ  YZ. d e
 j- f d „  ƒ  YZ/ d e f d „  ƒ  YZ0 d e0 f d „  ƒ  YZ1 d  „  Z2 d! „  Z3 d" „  Z4 d# „  Z5 e6 d$ k ríd% e j7 k rde j8 ƒ  n  e
 j9 e j7 ƒ Z: e; e d& e' ƒ r°e j< Z= e: j> e j? j@ e= d' ƒ ƒ n+ e: j> e j? j@ e j? jA eB ƒ d( d) ƒ ƒ d* „  ZC d+ „  ZD e' ZE eF ZG eF ZH eF ZI g  ZJ d d lK ZK y5 eK jK e j7 d, d- d. d/ d0 d1 d2 g ƒ \ ZL ZM Wn. eK jN k
 r|ZO eP eO ƒ GHe j8 d3 ƒ n Xxü eL D]ô \ ZQ ZR eQ d4 d5 f k r«e( ZG nÍ eQ d6 d7 f k rÆe( ZI n² eQ d6 d8 f k ráe( ZH n— eQ d9 d: f k rüeR ZE n| eQ d; d< f k rbeR jS d= ƒ jS d> ƒ jT d? ƒ ZU x- eU D]% ZV eJ jW eV jS d@ ƒ jS dA ƒ ƒ q6Wn eF sxtX dB eQ ƒ ‚ q„WeY eJ ƒ dC k r—e' ZJ n  eH r‡e. ƒ  ZZ eZ j[ ƒ  j\ dC dC dC dC ƒ eZ j] ƒ  eZ j^ ƒ  eZ j_ ƒ  eY e j7 ƒ d, k r„x‰ eM D]� Z` eZ ja e` d. eG dD eE ƒZb eY eb ƒ dC k r}eb dC Zc ec rzec jd ec e	 je dE ƒ eD ƒ ec jd ec e	 je dF ƒ eC ƒ n  n  qüWn  nPeI råe
 j- ƒ  Zf e
 jg ƒ  Z[ ef jh e[ ƒ e. ƒ  ZZ e[ ji eZ ƒ ef j^ ƒ  ef j_ ƒ  eY e j7 ƒ d, k r€x‰ eM D]� Z` eZ ja e` d. eG dD eE ƒZb eY eb ƒ dC k ryeb dC Zc ec rvec jd ec e	 je dE ƒ eD ƒ ec jd ec e	 je dF ƒ eC ƒ n  n  qøWn  e
 j- ƒ  Zj e
 jg ƒ  Zk ej jh ek ƒ e[ ji ej ƒ dG „  Zl eZ jm jd el ƒ eZ jn jd el ƒ el ƒ  nò e, ƒ  ZZ eZ j[ ƒ  j\ dC dC dC dC ƒ eZ j^ ƒ  eZ j_ ƒ  eY e j7 ƒ d, k r×xž eM D]– Z` eZ jo ja e` d. eG dD eE dH eJ ƒZb eb e' k	 oeY eb ƒ dC k rÐeb dC Zc ec rÍec jd ec e	 je dE ƒ eD ƒ ec jd ec e	 je dF ƒ eC ƒ n  n  q:Wn  e j8 e: jp ƒ  ƒ n  d S(I   sE   
Qt/matplotlib widget: made using matplotlib.backends.backend_qt4agg
iÿÿÿÿN(   t   QtCoret   QtGui(   t   FigureCanvasQTAgg(   t   Figure(   t   FuncFormattert   ScalarFormatter(   t   FontProperties(   t   etree(   t   PdfPagest   invalidt   ignores    'Legend' needs 'contains' methods   %.1fc         C   s$   |  d k r  | t  j |  d ƒ Sd S(   Ng:Œ0âŽyE>g      à¿t    (   t   matht   pow(   t   xt   post   format(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   <lambda>2   s    t   oneoversqrtc         C   s,   |  |  t  j j k r" d |  |  St  j j S(   Ni   (   t   syst
   float_infot   mint   max(   R   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   3   s    c         C   s4   |  t  j j k r& | t j |  d ƒ Sd t  j j S(   Ng      à¿s   %e(   R   R   R   R   R   R   (   R   R   R   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   4   s    c          C   sZ  t  j ƒ  }  t j d d ƒ g  } xM |  j ƒ  D]? } y/ t j j t | j	 ƒ  ƒ ƒ } | j
 | ƒ Wq/ q/ Xq/ Wt j j t j j t j j t j ƒ d d d ƒ ƒ } xv t j | ƒ D]e \ } } } xS | D]K } |  j t j j | | ƒ ƒ }	 x$ |  j |	 ƒ D] }
 | j
 |
 ƒ qWqÎ Wq¸ Wt t | ƒ ƒ } | j d d „  ƒ t j d d ƒ | S(	   Nt   errors   findfont: Font familys   mpl-datat   fontst   ttft   keyc         S   s   t  |  j ƒ  ƒ j ƒ  S(   N(   t   strt   toUtf8t   lower(   R   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   N   s    t   always(   R   t   QFontDatabaset   warningst   filterwarningst   familiest
   matplotlibt   font_managert   findfontR   R   t   appendt   ost   patht   normpatht   joint   dirnamet   __file__t   walkt   addApplicationFontt   applicationFontFamiliest   listt   sett   sort(   t   dbt   itemst   fnamet   fnt   fpt   roott   dirst   filest   ft   idt   family(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   getMatplotlibFontList6   s&    6c         C   sT   d d l  m } | j ƒ  } t |  ƒ } | j ƒ  } | j ƒ  | j | | ƒ } | S(   Niÿÿÿÿ(   R   (   t   lxmlR   t	   XMLParsert   opent   readt   closet
   fromstring(   t   fileNamet   printoutR   t   parserR;   t   st   tree(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   openFileToEtreeT   s    
t	   CCP4Tablec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s`   d } | |  j  d } | t |  j ƒ d } | t |  j ƒ d } | t |  j ƒ d } | S(   Nt    s   
(   t   titleR   t   graphs_listt   headerst
   data_lines(   t   selft   string(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   __str__`   s    c         C   s�  | j  d ƒ t d ƒ } | | j  d ƒ | d } | | j  d ƒ } | | j  d ƒ | k  rv | | j  d ƒ } n  | | | | !j ƒ  |  _ | | | } g  |  _ | j  d ƒ t d ƒ } | | j  d ƒ } | | | | !j ƒ  } d } d }	 xŽ| D]†}
 |
 d k r| d 7} n  | d	 k ry|	 j ƒ  j d ƒ \ } } } } d  } | j d
 ƒ rmd d f } n  | j d ƒ rK| j d
 ƒ rK| j d ƒ rK| j  d ƒ d k rK| j  d ƒ d k rKyw | j d ƒ \ } } | j d ƒ } | j d ƒ } t | d ƒ t | d ƒ f t | d ƒ t | d ƒ f f } WqKqKXn  |  j j	 | j ƒ  | | f ƒ d } d }	 qý |	 |
 7}	 qý W| | | } | j  d ƒ d } | | j  d ƒ } | | | d !j
 d d ƒ j ƒ  |  _ | | d } | | j  d ƒ d } | j  d ƒ d } | | j ƒ  } | j  d ƒ } d } | | | !j ƒ  j d ƒ } g  |  _ xo | D]g } g  } | j ƒ  } x< | D]4 } y | j	 t | ƒ ƒ Wq‰| j	 d ƒ q‰Xq‰W|  j j	 | ƒ qjWt |  _ t |  _ t |  _ t |  j ƒ d k r}|  j d d k sd|  j d d k sd|  j d d k sd|  j d d k sd|  j d d k r}d |  _ t d |  _ n  d  S(   Ns   $TABLEt   :i   s   
s   $GRAPHSs   $$i    RL   i   t   Nt   XDt   AR   t   |i   R   t   NAs
   M(4SSQ/LL)s   1/d^2s	   1/resol^2u   Resolution / Ã…R   (   NN(   i    N(   t   findt   lent   stripRM   RN   t   splitt   Nonet
   startswitht   floatR&   t   replaceRO   t   lstripRP   t   Falset	   x_scalingt	   y_scalingt   custom_x_labelt   scaling_functions(   RQ   t   tablet   tname_startt	   tname_endt   restt   graphs_startt
   graphs_endt   graphst   colCountt   currentHeadert   gRH   t   namet   nt   colst   theRanget   xRanget   yRanget   rest2t   headers_startt   headers_endt   rest3t
   data_startt   data_endt   data_lines_strt   line_strt   valst   vals_strt   val_str(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   __init__h   sx    	!ZD	&				t	c         C   s¤  t  j d ƒ } |  j | j d <t  j d ƒ } d } xF |  j D]; } | d j g  | D] } d | ^ qU ƒ j ƒ  d 7} q> W| | _ | j | ƒ t  j d d d	 ƒ} d j g  |  j	 D] } d | ^ q¹ ƒ j ƒ  d | _ | j | ƒ x± |  j
 D]¦ } t  j d
 ƒ } t  j d ƒ }	 | d |	 _ | j |	 ƒ | j | ƒ xX | d j d ƒ d D]? }
 t  j d d | d j d ƒ d d |
 ƒ} | j | ƒ qYWqö W| S(   NRK   RM   t   dataRL   s   %s s   
RO   t	   separatorR   t   ploti    i   t   ,t   plotlinet   xcolt   ycol(   R   t   ElementRM   t   attribRP   R*   R\   t   textR&   RO   RN   R]   (   RQ   t   tt   theDatat   theDataTextt   tdlRs   t
   theHeadersRq   t   pt   theTitleRH   Rˆ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   toEtree±   s*    9	7,(   t   __name__t
   __module__RS   Rƒ   R•   (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRK   _   s   		It   LogGraphMainWindowc           B   s   e  Z d d  „ Z RS(   c         C   sô  t  j j |  | ƒ t ƒ  |  _ |  j |  j ƒ t  j d |  ƒ } | j |  j j ƒ | j |  j j	 ƒ | j |  j j
 ƒ | j |  j j ƒ | j ƒ  | j d ƒ } | j t  j j ƒ |  j | t j d ƒ |  j ƒ |  j ƒ  j | ƒ t  j d |  ƒ } | j |  j j ƒ | j |  j j ƒ | j |  j j ƒ |  j ƒ  j | ƒ |  j d ƒ |  j d ƒ } | j |  j j ƒ | j |  j j	 ƒ | j |  j j
 ƒ | j ƒ  | j |  j j ƒ | j |  j j ƒ |  j j rð| j t j j ƒ n  d  S(   Nt   Filet   Quits   triggered(bool)t   Editt   PimpleRL   (   R   t   QMainWindowRƒ   t   LogGrapht   loggrapht   setCentralWidgett   QMenut	   addActiont   fileOpent   fileSavet   fileSaveStatust   fileSaveAllt   addSeparatort   setShortcutt   QKeySequenceRš   t   connectR    t   SIGNALRC   t   menuBart   addMenut   editLegendPost   editPlotStylet
   prefActiont   setWindowTitlet
   addToolBart   icons_missingt   setToolButtonStylet   Qtt   ToolButtonTextUnderIcon(   RQ   t   parentt   menut
   exitActiont   editMenut   toolBar(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRƒ   É   s8    

N(   R–   R—   R^   Rƒ   (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR˜   È   s   Rž   c           B   s   e  Z d  d d d d g Z d d d d d	 g Z d
 d d d d d d d d g	 Z e d d d d d g Z d d d d d d d d d  d! d" d# d$ d% g Z d& d' d( d) d* d+ d, g Z d- d. d/ d0 d1 d2 d3 g Z d4 d5 d6 g Z	 d7 d8 d9 g Z
 e j e ƒ Z e j e ƒ Z d: „  Z d; „  Z d< „  Z d= „  Z d> „  Z d? „  Z e e e e d@ „ Z dA „  Z dB „  Z dC e e e dD „ Z dE „  Z dF „  Z e e dG „ Z dH „  Z dI „  Z  dJ „  Z! dK „  Z" dL „  Z# e e dM „ Z$ e dN „ Z% e dO „ Z& e dP „ Z' e e dQ „ Z( e e dR „ Z) e dS „ Z* e e dT „ Z+ dU „  Z, dV „  Z- dW „  Z. e dX „ Z/ e dY „ Z0 dZ „  Z1 d[ „  Z2 e d\ „ Z3 d] „  Z4 d^ d_ „ Z5 RS(`   t   -s   --s   -.RT   t   .t   Solidt   Dasheds   Dash-dott   Dottedt   Blankt   oRH   t   dt   ^t   >t   <R“   t   ht   *s	   $\lambda$s	   $\bowtie$s   $\circlearrowleft$s   $\clubsuit$s   $\checkmark$t   Circlet   Squaret   Diamonds   Up arrows   Right arrows
   Left arrowt   Pentagont   Hexagont   Start   Lambdas   Bow ties   Circle arrow leftt   Clubst   Tickt   bRq   t   rt   ct   mt   yt   kt   Bluet   Greent   Redt   Cyant   Magentat   Yellowt   Blackt   Lineart   Logs   Symmetric Logt   lineart   logt   symlogc         C   s  t  | d d ƒ d k  rJ t  | d ƒ d k  rJ t  | d ƒ d k  rJ d St  | d d ƒ d k  r” t  | d ƒ d k  r” t  | d ƒ d k  r” d St  | d d ƒ d k  rÞ t  | d ƒ d k  rÞ t  | d ƒ d k  rÞ d St  | d d ƒ d k  r,t  | d d ƒ d k  r,t  | d ƒ d k  r,d	 St  | d d ƒ d k  rzt  | d d ƒ d k  rzt  | d ƒ d k  rzd
 St  | d d ƒ d k  rÈt  | d d ƒ d k  rÈt  | d ƒ d k  rÈd St  | d ƒ d k  rt  | d ƒ d k  rt  | d ƒ d k  rd Sd S(   Ni    i   gñhãˆµøä>i   RÓ   Rq   RÒ   g      è?RÕ   RÔ   RÖ   R×   (   t   abs(   RQ   t   col(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   fctocolnameü   s    FFFJJJBc   /         ss  | j  j ƒ  } t ˆ j ƒ  d ƒ rµˆ j ƒ  j j ƒ  } ˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  j j ƒ  ‰  x | D] } | j	 ˆ  ƒ qs Wt
 | ƒ d k rÂ | r² t | d _ qÂ t | d _ n  | ‰ ˆ j ƒ  j j ƒ  } | r_ˆ
 j ˆ j ƒ  d r_| d j ƒ  ‰ | d j }	 g  ˆ	 j j j ƒ  d _ ˆ
 j ˆ j ƒ  d }
 ˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  d	 } ˆ	 j j | t | ƒ d d d
 | d j ƒ  d ˆ ƒ\ } } } i t d 6| d	 6| d 6| d 6| d 6|
 d 6| d 6ˆ
 j ˆ j ƒ  <ˆ
 j ˆ j ƒ  d } |	 | d _ ˆ	 j j d j d d ƒ ˆ	 j j ƒ  n  | ráˆ
 j ˆ j ƒ  d rá| d j ƒ  ‰ | d j }	 g  ˆ	 j j j ƒ  d _ ˆ
 j ˆ j ƒ  d }
 ˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  d	 } ˆ	 j j | t | ƒ d d d
 | d j ƒ  d ˆ ƒ\ } } } i t d 6| d	 6| d 6| d 6| d 6|
 d 6| d 6ˆ
 j ˆ j ƒ  <ˆ
 j ˆ j ƒ  d } |	 | d _ ˆ	 j j d j d d t j | ƒ ƒ n  ˆ	 j j j ƒ  d j ƒ  } g  | D] } t | d ƒ s| ^ q} d } ˆ
 j ˆ j ƒ  } t r�ˆ rNˆ
 j ˆ j ƒ  d } ˆ
 j ˆ j ƒ  d }
 ˆ
 j ˆ j ƒ  d } d | d | d  } t j j  | |
 | ƒ } t } xO | D]G } | j ƒ  | d j d k rÊt } | j! | ƒ | j" | ƒ PqÊqÊW| s¯ˆ	 j j# | | d d d d | d j d ƒq¯q²t } x[ | D]P } | j ƒ  | d j d k r[t } d G| GH| j! g  ƒ | j" g  ƒ Pq[q[Wq�nØt ˆ j ƒ  d ƒ r�ˆ
 j$ ˆ j ƒ  j% j ƒ  ‰ ˆ j ƒ  j& j' ƒ  ‰ t( ˆ j ƒ  j) j* ƒ  ƒ d k r%d ‰ n ˆ
 j+ ˆ j ƒ  j) j ƒ  ‰ ˆ
 j ˆ j ƒ  j j ƒ  ‰  ˆ j ƒ  j, j' ƒ  ‰ ˆ j ƒ  j- j' ƒ  ‰ t( ˆ j ƒ  j. j/ ƒ  ƒ ‰ ˆ
 j0 j ƒ  j ƒ  ‰	 ˆ j ƒ  j1 j ƒ  ‰ ˆ j ƒ  j  j ƒ  ‰ ˆ j ƒ  j2 j ƒ  ‰ g  } ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡	 ‡
 ‡ ‡ f d †  } x[ ˆ	 j j j ƒ  D]D } | j ƒ  } g  | D] } t | d ƒ s[| ^ q[} | | ƒ qBWn  ˆ	 j j d j3 ˆ
 j4 | j5 j ƒ  ƒ ˆ	 j j d j6 ˆ
 j4 | j7 j ƒ  ƒ ˆ	 j j d j8 t9 | j: j/ ƒ  ƒ ƒ ˆ	 j j d j; t9 | j< j/ ƒ  ƒ ƒ ˆ	 j j d j= t9 | j> j/ ƒ  ƒ ƒ t9 | j: j/ ƒ  ƒ ˆ	 j _? t9 | j< j/ ƒ  ƒ ˆ	 j _@ t9 | j> j/ ƒ  ƒ ˆ	 j _A ˆ	 j j d jB ƒ  d } ˆ	 j j d jB ƒ  d } ˆ	 j j d jC ƒ  d } ˆ	 j j d jC ƒ  d } t( | jD j/ ƒ  ƒ jE d ƒ \ } }  tF | ƒ }! tF |  ƒ }" ˆ	 j jG r’	tH jI ˆ	 j jG ƒ r’	tH ˆ	 j jG |! ƒ }! tH ˆ	 j jG |" ƒ }" n  tJ |! | ƒ d k s¾	tJ |" | ƒ d k r/
ˆ	 j j d jK |! ˆ	 j j d jB ƒ  d ƒ ˆ	 j j d jK ˆ	 j j d jB ƒ  d |" ƒ |! |" f ˆ	 j _L n  t( | jM j/ ƒ  ƒ jE d ƒ \ }# }$ tF |# ƒ }% tF |$ ƒ }& ˆ	 j jN r»
tH jI ˆ	 j jN ƒ r»
tH ˆ	 j jG |% ƒ }% tH ˆ	 j jG |& ƒ }& n  tJ |% | ƒ d k sç
tJ |& | ƒ d k rXˆ	 j j d j ˆ	 j j d jC ƒ  d |& ƒ ˆ	 j j d j |% ˆ	 j j d jC ƒ  d ƒ |% |& f ˆ	 j _O n  y=t( | jP j/ ƒ  ƒ jE d ƒ }' t
 |' ƒ d k rŽg  }( xÐ |' D]È }) |) jQ ƒ  jR d ƒ jE d ƒ }* t
 |* ƒ d k r˜tF |* d jQ ƒ  ƒ }+ tF |* d jQ ƒ  ƒ }, ˆ	 j jG rJtH jI ˆ	 j jG ƒ rJtH ˆ	 j jG |+ ƒ }+ tH ˆ	 j jG |, ƒ }, n  |( jS |+ |, f ƒ q˜q˜WtT |( ƒ }( t
 |( ƒ d k r”d  }( q”n d  }( Wn- d  }( d GHd GHtV jW jX ˆ
 d  d! ƒ n Xy=t( | jY j/ ƒ  ƒ jE d ƒ }- t
 |- ƒ d k rûg  }. xÐ |- D]È }) |) jQ ƒ  jR d ƒ jE d ƒ }* t
 |* ƒ d k rtF |* d jQ ƒ  ƒ }+ tF |* d jQ ƒ  ƒ }, ˆ	 j jN r·tH jI ˆ	 j jN ƒ r·tH ˆ	 j jN |+ ƒ }+ tH ˆ	 j jN |, ƒ }, n  |. jS |+ |, f ƒ qqWtT |. ƒ }. t
 |. ƒ d k rd  }. qn d  }. Wn- d  }. d" GHd# GHtV jW jX ˆ
 d$ d% ƒ n X|( ˆ	 j _Z |. ˆ	 j _[ ˆ	 j j\ ˆ	 j jZ ˆ	 j j[ ƒ ˆ	 j jZ r‹tJ |! | ƒ d k  s¡tJ |" | ƒ d k  rØˆ	 j j d jK |! |" ƒ ˆ	 j j d jK |! |" ƒ n  ˆ	 j j[ rútJ |% | ƒ d k  stJ |& | ƒ d k  rGˆ	 j j d j |% |& ƒ ˆ	 j j d j |% |& ƒ n  | j] j ƒ  ˆ	 j _^ | rrˆ	 j j_ ƒ  n3 ˆ	 j j d j` ƒ  r¥ˆ	 j j d ja jb t ƒ n  ˆ	 j j# ƒ  ˆ	 j j ƒ  ˆ	 j jc tV jd te jf ˆ	 j jg ƒ  ˆ	 j jh ƒ  ƒ te jf ˆ	 j jg ƒ  ˆ	 j jh ƒ  ƒ ƒ ƒ ˆ	 j jc tV jd te jf ˆ	 j jg ƒ  ˆ	 j jh ƒ  ƒ te jf ˆ	 j jg ƒ  ˆ	 j jh ƒ  ƒ ƒ ƒ d  S(&   Nt   showPdft   patchesi   i    t   normedt   mut   sigmat   maxxR€   t	   facecolort   labelt   binsgš™™™™™ñ?R
   g      à?iÿÿÿÿt   _matplotlib_line_of_best_fits   r--t	   linewidths   Need to get rid oft   lineStyleComboR^   RL   c      
      sÓ  d } xÆ|  D]¾} | j  ƒ  j d ƒ sÁˆ j ƒ  t ˆ
 j ƒ | k rÁˆ r¾| j ƒ  } | j ƒ  } ˆ d k rõ d d l m } d „  } d d g } | j	 | | d	 | | f d
 d d d ƒ} d „  }	 t
 j |	 ƒ }
 |
 | | d | d ƒ } n' t
 j | | ˆ ƒ } t
 j | | ƒ } t } xZ |  D]R } t | d ƒ r)| j  ƒ  | j d k r)t } | j | ƒ | j | ƒ Pq)q)W| r!t | d ƒ r!ˆ	 j j | | d d | j d ƒq!nc t } xZ |  D]R } t | d ƒ rË| j  ƒ  | j d k rËt } | j g  ƒ | j g  ƒ PqËqËW| j ˆ ƒ | j ˆ ƒ | j ˆ ƒ | j ˆ ƒ | j ˆ ƒ | j ˆ  ƒ ˆ s�t | _ n	 t | _ ˆ r | j t ƒ n | j t ƒ | j ˆ ƒ PqÁn  | d } q Wd  S(   Ni    Rð   i   iÿÿÿÿ(   t   optimizec         S   s+   t  |  d t j |  d | ƒ | d ƒ S(   Ni   i    i   (   t   sumt   numpyt   exp(   t   vR   RÖ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   s  s    g333333Ó?g       @t   argst   maxiteri'  t   maxfunc         S   s   | t  j | |  ƒ S(   N(   Rõ   Rö   (   R   t   v0t   v1(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   w  s    i   t	   ccp4_uuidR×   Rî   (   t	   get_labelt   endswitht   currentIndexR[   t
   histogramst	   get_xdatat	   get_ydatat   scipyRó   t   fminRõ   t	   vectorizet   polyfitt   polyvalRc   t   hasattrRý   t   Truet	   set_xdatat	   set_ydatat   canvasR†   t	   set_labelt
   set_markert   set_markersizet   set_linewidtht   set_linestylet	   set_colort   hide_from_legendt   set_visiblet   set_markeredgewidth(   t   linest   ilinet   lt   xvalsR÷   Ró   t   eRû   t   vmint   funct   vec_funct   yfitRÕ   t   haveBestFitt   l2(   t   colourt	   doBestFitt	   isVisibleRî   t   linesizet	   linestylet   markert   markeredgewidtht
   markersizeR†   RQ   t   tabt   thisInLegend(    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   apply_to_linesi  s`    	*	()(	R‡   gH¯¼šò×z>t   )t   (i   s*   Badly formatted x-axis breaks declaration.s@   Should be of form: (xlow,xhigh), (xlow,xhigh), (xlow,xhigh), ...s   Bad x-axis breaksa   Bad x-axis break declaration.<br>Should be of form: (xlow,xhigh), (xlow,xhigh), (xlow,xhigh), ...s*   Badly formatted y-axis breaks declaration.s@   Should be of form: (ylow,yhigh), (ylow,yhigh), (ylow,yhigh), ...s   Bad y-axis breaksa   Bad y-axis break declaration.<br>Should be of form: (ylow,yhigh), (ylow,yhigh), (ylow,yhigh), ...(i   t
   showLegendt	   isCheckedR	  t   currentWidgetRç   R  R   t   colorst   colourStyleCombot   set_facecolorR[   R
  t   show_pdfRc   Ré   Rþ   Rý   R  t   figt   get_axesRè   t   histt   intt   get_facecolort   axt   set_ylimt   drawRõ   R   t	   get_linesR#   t   mlabt   normpdfR  R  R†   t
   linestylesRò   t   lineSizeSpint   valueR   t   markerStyleCombot   currentTextt   stylest   sizeSpint   markeredgewidthSpint	   titleEditR�   t   grapht   bestFitCombot   showVisiblet
   set_xscalet   axis_stylest   x_axis_stylet
   set_yscalet   y_axis_stylet
   set_xlabelt   unicodet   x_axis_labelt
   set_ylabelt   y_axis_labelt	   set_titlet
   plot_titlet   xlabelt   ylabelRM   t   get_xlimt   get_ylimt   x_axis_rangeR]   R`   Rd   t   scaling_inversest   has_keyRä   t   set_xlimt   custom_xlimt   y_axis_rangeRe   t   custom_ylimt   x_axis_breakR\   Rb   R&   t   tupleR^   R   t   QMessageBoxt   criticalt   y_axis_breakt   xbreakt   ybreakt
   set_breakst   fixedAspectRatiot   fix_aspect_ratiot   legendt
   get_legendt   legend_R  t   resizeEventt   QResizeEventR    t   QSizet   widtht   height(/   RQ   R*  R†   t   otherWidgetR/  Rç   R8  R“   Ré   Rý   Rê   Rë   Rì   R€   Rs   Rï   Rè   R  R  R  t
   bincentersRÖ   R   R!  t   excludeFromLegendR,  t   axest   xminoldt   xmaxoldt   yminoldt   ymaxoldt   xminstrt   xmaxstrt   xmint   xmaxt   yminstrt   ymaxstrt   ymint   ymaxRi  t
   new_xbreakt   brt   theBrt   lot   hiRj  t
   new_ybreak(    (   R"  R#  R$  Rî   R%  R&  R'  R(  R)  R†   RQ   R*  R+  sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   applyPlotStyle  sl   @D@D*(3	!	3:(''&&&$!,..$!,..!
!
88Xc      	   C   s“  t  t d ƒ s t ƒ  t _ n  t j |  ƒ } t j ƒ  } t j |  j d ƒ ƒ } t j	 ƒ  } | j
 t j ƒ | j t ƒ | j | | j ƒ  d ƒ t j ƒ  } | j d d ƒ | j | | j ƒ  d d ƒ | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } | j | | j ƒ  d d	 ƒ t j |  j d
 ƒ ƒ } | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } t j	 ƒ  } | j
 t j ƒ | j t ƒ | j | | j ƒ  d ƒ t j ƒ  }	 |	 j d d ƒ | j |	 | j ƒ  d d ƒ | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ }
 | j |
 | j ƒ  d d	 ƒ t j |  j d
 ƒ ƒ } | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } t j	 ƒ  } | j
 t j ƒ | j t ƒ | j | | j ƒ  d ƒ t j ƒ  } | j d d ƒ | j | | j ƒ  d d ƒ | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } | j | | j ƒ  d d	 ƒ t j |  j d
 ƒ ƒ } | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } t j	 ƒ  } | j
 t j ƒ | j t ƒ | j | | j ƒ  d ƒ t j ƒ  } | j d d ƒ | j | | j ƒ  d d ƒ | j | | j ƒ  d d ƒ t j |  j d ƒ ƒ } | j | | j ƒ  d d	 ƒ t j |  j d
 ƒ ƒ } | j | | j ƒ  d d ƒ t j ƒ  } | j t j j ƒ } | j t j j ƒ } |  j | t j d ƒ | j ƒ | j | | j ƒ  d d | j ƒ  ƒ i | d 6| d 6| d 6| d 6} i | d 6| d 6| d 6| d 6} i | d 6|
 d 6| d 6|	 d 6} i | d 6| d 6| d 6| d 6} xž|  j | f |  j | f |  j | f |  j | f f D]f\ } } t } | r%| j  d ƒ r%| d d k r%| d j! t ƒ n | d j! t ƒ t } | ru| j  d ƒ ru| d d k ru| d j! t ƒ n | d j! t ƒ | rÒ| j  d ƒ rÒ| d j" | d j# t j$ t% | d d ƒ ƒ ƒ ƒ n0 | d j" | d j# t j$ t% d d ƒ ƒ ƒ ƒ | r/| j  d ƒ r/| d j& | d ƒ qÚ| d j& d ƒ qÚW|  j | t j d ƒ t' j( |  j) | | | | ƒ ƒ | j* | ƒ | j+ ƒ  d  S(   Nt   matplotlibFontLists
   Title fonti    i   id   i   i   t   Italici   t   Boldi   s   Axes ticker fonts   Axes label fonts   Legend fonts   clicked(bool)R=   t   italict   weightt   sizet   slantt   bolds   utf-8s   Bitstream Vera Sansi
   (,   R	  Rž   R>   R�  R   t   QDialogt   QGridLayoutt   QLabelt   trt	   QComboBoxt   addItemst   setEditableR
  t	   addWidgett   rowCountt   QSpinBoxt   setRanget	   QCheckBoxt   QDialogButtonBoxt	   addButtont   Applyt   CloseRª   R    R«   RC   t   columnCountt   legendFontSelt   titleFontSelt   axesFontSelt   axesLabelFontSelRc   R_  t
   setCheckedt   setCurrentIndext   findTextt   QStringRS  t   setValuet	   functoolst   partialt   applyPreferencesFromWidgett	   setLayoutt   exec_(   RQ   t
   editWidgett   layoutRî   R§  t	   titleSizet   titleItalict	   titleBoldR¨  t   axesSizet
   axesItalict   axesBoldR©  t   axesLabelSizet   axesLabelItalict   axesLabelBoldR¦  t
   legendSizet   legendItalict
   legendBoldt   dialogButtonst   applyButtont   closeButtont   legendFontSelParamst   titleFontSelParamst   axesFontSelParamst   axesLabelFontSelParamsR6   t   selectort   isItalict   isBold(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   editPreferences  s¦    %""""C%%704c         C   sÎ   i  } | j  d ƒ r8 t | d j ƒ  j ƒ  ƒ | d <n  | j  d ƒ r^ | d j ƒ  | d <n  | j  d ƒ rŠ | d j ƒ  rŠ d | d <n
 d | d <| j  d ƒ rÀ | d j ƒ  rÀ d | d <n
 d | d <| S(   NR=   R’  R‘  R”  t   normalR�  R“  (   R_  R   RE  R   RC  R0  (   RQ   t	   params_int   params(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   widgetPrefsToPrefsv  s    #

c   	      C   sV   |  j  | ƒ } |  j  | ƒ } |  j  | ƒ } |  j  | ƒ } |  j | | | | ƒ d  S(   N(   RÐ  t   applyPreferences(	   RQ   t   titleFontSel_int   axesFontSel_int   axesLabelFontSel_int   legendFontSel_inR§  R¨  R©  R¦  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR±  †  s
    c         C   sj  t  j d ƒ } | j t  j d ƒ ƒ | j t  j d ƒ ƒ | j t  j d ƒ ƒ | j t  j d ƒ ƒ xü t d d d d g |  j |  j |  j |  j g ƒ D]Ç \ } } x¸ | j | ƒ D]§ } xž d d d d	 g D]Š } | r5| j	 | ƒ r5t
 | | ƒ t k r| j | t | | ƒ ƒ qZ| j | | | ƒ qÐ | j j	 | ƒ rÐ | j j | ƒ qÐ qÐ Wq· Wq› W| S(
   Nt   Fontst	   titleFontt   axesTickerFontt   axesLabelFontt
   legendFontR=   R’  R‘  R“  (   R   R‹   R&   t   zipR§  R¨  R©  R¦  t   xpathR_  t   typeR9  R1   R   RŒ   t   pop(   RQ   RI   t   p2t   selR“   R×   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   fontsToEtreeŽ  s    @c         C   s.  | |  _  | |  _ | |  _ | |  _ |  j j ƒ  } |  j j ƒ  sF d  S|  j j ƒ  j ƒ  } x¦ t |  j j ƒ  ƒ D]� } |  j j	 | ƒ |  j j
 | ƒ } xd t | j ƒ  ƒ D]P }	 | j	 |	 ƒ | j
 |	 ƒ }
 t |
 d ƒ sã q¬ n  |
 j j | | | | ƒ q¬ Wqq W|  j j	 | ƒ |  j j ƒ  j	 | ƒ d  S(   NR  (   R§  R¨  R©  R¦  RJ  R   R1  t   ranget   countR«  t   widgetR	  R  RÑ  (   RQ   R§  R¨  R©  R¦  t   currentit   currentjt   it   swt   jt   aplot(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÑ  ¢  s&    				!c   7      C   s9  |  j  j ƒ  j ƒ  } | j j j ƒ  d j ƒ  } g  | D] } t | d ƒ s8 | ^ q8 } t j |  ƒ } t j	 ƒ  } t j
 ƒ  } xç|  j D]Ü} t | ƒ d k rŠ t | d d d ƒ sEt j d k rû d d  l } d  | _ d  | _ | j ƒ  j ƒ  }	 n6 d d  l }
 |
 j ƒ  j d ƒ j d	 ƒ j d
 d ƒ }	 |	 | d d _ n  t j ƒ  } t j ƒ  } | j | ƒ t j |  j d ƒ ƒ } t j ƒ  | _  | j  j! |  j" ƒ | j  j# |  j$ j% |  j& | d d j' ƒ  ƒ ƒ ƒ | j( | | j) ƒ  d ƒ | j( | j  | j) ƒ  d d ƒ t j* ƒ  | _+ t j |  j d ƒ ƒ } | j( | | j) ƒ  d ƒ | j( | j+ | j) ƒ  d d ƒ t | d d d ƒ r«| d d j, r«| j+ j- t. ƒ n | j+ j- t/ ƒ t j* ƒ  | _0 t j |  j d ƒ ƒ } | j( | | j) ƒ  d ƒ | j( | j0 | j) ƒ  d d ƒ | j0 j- | d ƒ | j1 | j) ƒ  d ƒ | j2 | | d d j3 ƒ  ƒ qŠ qŠ WxŸ| D]—} | j3 ƒ  d  k	 rq| j3 ƒ  j4 d ƒ rqt | d ƒ s t j d k rÞd d  l } | j ƒ  j ƒ  }	 n6 d d  l }
 |
 j ƒ  j d ƒ j d	 ƒ j d
 d ƒ }	 |	 | _ n  t j ƒ  } t j ƒ  } | j | ƒ t j |  j d ƒ ƒ } t j ƒ  | _5 | j5 j! |  j6 ƒ | j5 j# |  j7 j% | j8 ƒ  ƒ ƒ | j( | d d ƒ | j( | j5 d d ƒ t j |  j d ƒ ƒ } t j ƒ  | _9 | j9 j! |  j: ƒ | j9 j; d ƒ | j< ƒ  } | rW| d k rW| j9 j# |  j= j% | j< ƒ  ƒ ƒ n | j9 j# | j9 j> ƒ  d ƒ | j( | | j) ƒ  d ƒ | j( | j9 | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t j ƒ  | _  | j  j! |  j" ƒ | j? ƒ  |  j$ k r,yÐ t@ j$ jA ƒ  jB | j? ƒ  ƒ } x« |  j$ D]@ } t@ j$ jA ƒ  jB | ƒ } | | k r'|  j$ j% | ƒ } Pq'q'W|  j$ jC | j? ƒ  ƒ |  j" jC | j? ƒ  jD ƒ  ƒ | j  j; | j? ƒ  ƒ |  j$ j% | j? ƒ  ƒ } WqDt jE ƒ  d  \ } } } t jF jG tH | ƒ d ƒ t jF jG tH | ƒ d ƒ d } qDXn |  j$ j% | j? ƒ  ƒ } x› |  j$ D]� } t@ j$ jA ƒ  jB | ƒ } t jI d d ƒ } t jJ ƒ  } | jK | d | d | d ƒ | jL | ƒ | j  jM |  j$ j% | ƒ t jN | ƒ ƒ qNW| j  j# | ƒ | j( | | j) ƒ  d ƒ | j( | j  | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t jO ƒ  | _P | jP jQ tR | jS ƒ  ƒ ƒ | j( | | j) ƒ  d ƒ | j( | jP | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t jT ƒ  | _U | jU jQ | jV ƒ  ƒ | j( | | j) ƒ  d ƒ | j( | jU | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t jO ƒ  | _W | jW jQ | jX ƒ  ƒ | j( | | j) ƒ  d ƒ | j( | jW | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t jY ƒ  | _Z | jZ j[ | j3 ƒ  ƒ | j( | | j) ƒ  d ƒ | j( | jZ | j) ƒ  d d ƒ t j |  j d ƒ ƒ } t j ƒ  | _\ d d  d! d" g } y! d d# l] m^ } | jC d$ ƒ Wn n X| j\ j! | ƒ | j( | | j) ƒ  d ƒ | j( | j\ | j) ƒ  d d ƒ t j* ƒ  | __ t j |  j d% ƒ ƒ } | j( | | j) ƒ  d ƒ | j( | j_ | j) ƒ  d d ƒ t j* ƒ  | _` t j |  j d& ƒ ƒ } | j( | | j) ƒ  d ƒ | j( | j` | j) ƒ  d d ƒ t | d' ƒ r¡| ja r¡| j` j- t/ ƒ n | j` j- t. ƒ t | d( ƒ rß| jb ƒ  rß| j_ j- t. ƒ n | j_ j- t/ ƒ | j2 | | j3 ƒ  ƒ qqqqW| j( | ƒ t j ƒ  }  t j ƒ  }! |  j |! ƒ t j |  j d) ƒ ƒ }" t j* ƒ  |  _` t j ƒ  |  _c t j ƒ  |  _d |  jc j! |  je ƒ |  jd j! |  je ƒ t j |  j d* ƒ ƒ }# t j |  j d+ ƒ ƒ }$ |! j( |" |! j) ƒ  d ƒ |! j( |  j` |! j) ƒ  d d ƒ |! j( |# |! j) ƒ  d ƒ |! j( |  jc |! j) ƒ  d d ƒ |! j( |$ |! j) ƒ  d ƒ |! j( |  jd |! j) ƒ  d d ƒ |  jc j# |  jf j% | j jg d jh ƒ  ƒ ƒ |  jd j# |  jf j% | j jg d ji ƒ  ƒ ƒ t j |  j d, ƒ ƒ }% t j |  j d- ƒ ƒ }& t jY ƒ  |  _j |  jj j[ | j jk ƒ t jY ƒ  |  _l |  jl j[ | j jm ƒ t j |  j d. ƒ ƒ }' t jY ƒ  |  _n |  jn j[ | j jo ƒ t j |  j d/ ƒ ƒ }( t jY ƒ  |  _p | j jg d jq ƒ  d }) | j jg d jq ƒ  d }* | j jr rXts jt | j jr ƒ rX|  jp j[ d0 ts | j jr |) d d1 ƒ ts | j jr |* d d1 ƒ f ƒ n |  jp j[ d2 |) |* f ƒ t j |  j d3 ƒ ƒ }+ t jY ƒ  |  _u | j jg d jv ƒ  d }, | j jg d jv ƒ  d }- | j jw r7ts jt | j jw ƒ r7|  ju j[ d0 ts | j jw |- d d1 ƒ ts | j jw |, d d1 ƒ f ƒ n |  ju j[ d2 |- |, f ƒ t j |  j d4 ƒ ƒ }. t jY ƒ  |  _x d }/ | j jy r,xŸ | j jy D]Ž }0 | j jr r	ts jt | j jr ƒ r	|/ d5 ts | j jr |0 d d d1 ƒ ts | j jr |0 d d d1 ƒ f 7}/ q—|/ d6 |0 d |0 d f 7}/ q—Wn  |  jx j[ |/ ƒ t j |  j d7 ƒ ƒ }1 t jY ƒ  |  _z d }2 | j j{ rxŸ | j j{ D]Ž }0 | j jw rôts jt | j jw ƒ rô|2 d5 ts | j jw |0 d d d1 ƒ ts | j jw |0 d d d1 ƒ f 7}2 q‚|2 d6 |0 d |0 d f 7}2 q‚Wn  |  jz j[ |2 ƒ |! j( |% |! j) ƒ  d ƒ |! j( |  jj |! j) ƒ  d d ƒ |! j( |& |! j) ƒ  d ƒ |! j( |  jl |! j) ƒ  d d ƒ |! j( |' |! j) ƒ  d ƒ |! j( |  jn |! j) ƒ  d d ƒ |! j( |( |! j) ƒ  d ƒ |! j( |  jp |! j) ƒ  d d ƒ |! j( |+ |! j) ƒ  d ƒ |! j( |  ju |! j) ƒ  d d ƒ |! j( |. |! j) ƒ  d ƒ |! j( |  jx |! j) ƒ  d d ƒ |! j( |1 |! j) ƒ  d ƒ |! j( |  jz |! j) ƒ  d d ƒ t j |  j d8 ƒ ƒ }3 t j* ƒ  |  _| | j j} rü|  j| j- t. ƒ n |  j| j- t/ ƒ |! j( |3 |! j) ƒ  d ƒ |! j( |  j| |! j) ƒ  d d ƒ | j jg d j~ ƒ  rn|  j` j- t. ƒ n |  j` j- t/ ƒ | j( |  ƒ t j ƒ  }4 |4 j€ t j j� ƒ }5 |4 j€ t j j‚ ƒ }6 |  jƒ |6 t„ j… d9 ƒ | j† ƒ | j( |4 ƒ | j | ƒ |  jƒ |5 t„ j… d9 ƒ t‡ jˆ |  j‰ | | |  ƒ ƒ | jŠ ƒ  d  S(:   Ni    R
   i   Rè   Rý   t   win32iÿÿÿÿt   {t   }R¼   RL   t   Colours   Show prob. distn. functionR5  t
   NormalizedRé   i
   Rð   s
   Line stylet   MarkerR^   i   s   
i   i   i   s
   Line widths   Marker sizes   Marker edge widtht   Titles   Line of best fitRß   t	   Quadratict   Cubic(   Ró   t   Exponentials   Visible on graphs   Display in legendR  t   get_visibles   Show legends   x-axis types   y-axis types   x-axis labels   y-axis labels
   Plot titles   x-axis ranges   %s, %ss   %.5fs
   %.3f, %.3fs   y-axis ranges   x-axis breakss	   (%s, %s) s   (%.3f, %.3f) s   y-axis breakss
   1:1 aspects   clicked(bool)(‹   RJ  R1  R  R6  R7  R>  R	  R   R•  t   QVBoxLayoutt
   QTabWidgetR  R[   R   t   platformt   uuidR^   t   _uuid_generate_timet   _uuid_generate_randomt   uuid4t   get_hext   msilibt   gen_uuidR\   Ra   Rý   t   QWidgetR–  R²  R—  R˜  R™  R3  Rš  t   colors_aliasR«  R2  t   indexRæ   R:  Rœ  R�  R   Rç   R5  Rª  R
  Rc   Ré   t   setRowStretcht   addTabRþ   Rÿ   Rò   t   linestyles_aliasRA  t   get_linestyleRD  t   markers_aliast   addItemt
   get_markerRF  Rã  t	   get_colorR#   t   ColorConvertert   to_rgbR&   t
   capitalizet   exc_infot   stderrt   writeR   t   QPixmapt   QColort   setRgbFt   fillt   setItemIcont   QIcont   QDoubleSpinBoxRB  R®  R`   t   get_linewidthRž  RG  t   get_markersizeRH  t   get_markeredgewidtht	   QLineEditRI  t   setTextRK  R  Ró   RL  R/  R  Rõ  RO  RQ  t   axis_styles_aliasRN  R;  t
   get_xscalet
   get_yscaleRT  RY  RV  RZ  RX  RM   R]  R[  Rd   t   scaling_numericalR_  Rb  R\  Re   Rd  Ri  Rh  Rj  Rl  Rm  Ro  R¡  R¢  R£  R¤  Rª   R    R«   RC   R¯  R°  RŒ  R³  (7   RQ   R†   R  R  R´  Rµ  R*  R8  Rù  t   uuid_strRþ  Rä  t   widgetLayoutRî   t   pdfLabelt	   normLabelR'  t   c1t   cnt   c2t   idxt   exc_typet	   exc_valuet   exc_tbRÔ   t   mplcR“   Rå   t   fitItemsRó   t   visibleLabelt   legendLabelRv  t   otherLayoutt   showLegendLabelt
   xaxisLabelt
   yaxisLabelt   xaxisLabelLabelt   yaxisLabelLabelt   plotTitleLabelt   xRangeLabelR€  R�  t   yRangeLabelR…  R„  t   xBreakLabelt
   xBreakTextRÒ   t   yBreakLabelt
   yBreakTextt   fixedAspectRatioLabelRÂ  RÃ  RÄ  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   editPlotPlotStyle¹  sÞ   (		*3  ( %(*"% ,           ,,!I!I!K#!K#        1c         C   s;   |  j  j ƒ  j ƒ  } t | j _ | j j t j j ƒ d  S(   N(	   RJ  R1  R
  R  t   movingLegendt   setFocusR    Rµ   t   OtherFocusReason(   RQ   R†   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   editLegendPositionÌ  s    RL   c         C   s]  |  j  j ƒ  } | j d ƒ s- | j d ƒ rt | ƒ } | j ƒ  } | j ƒ  | | j d ƒ j d ƒ } g  }	 g  }
 |  j j	 t
 ƒ xf | d D]Z } | d  k s° | | k r’ d | } |	 j | ƒ t | ƒ } |
 j |  j | ƒ ƒ q’ q’ W|  j  j ƒ  d k r[|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ |  j d ƒ n  |  j  j	 t ƒ |  j j	 t ƒ |
 S| j d ƒ rB|  j j	 t
 ƒ |  j | d | ƒ} |  j  j ƒ  d k r|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ |  j d ƒ n  |  j  j	 t ƒ |  j j	 t ƒ | S| j d ƒ rÕ|  j | d	 | ƒ} |  j  j ƒ  d k rÑ|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ |  j d ƒ n  | S| j d
 ƒ rýyx |  j | ƒ } |  j  j ƒ  d k rT|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ n  | g SWqPt j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j j  |  d d | d t | ƒ d t | ƒ d ƒ qPXnS| j d ƒ s| j d ƒ r4yx |  j! | ƒ } |  j  j ƒ  d k r‹|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ n  | g SWqPt j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j j  |  d d | d t | ƒ d t | ƒ d ƒ qPXny~ |  j" | d | ƒ} |  j  j ƒ  d k rª|  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j ƒ  j d ƒ n  | g SWn› t j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j j  |  d d | d t | ƒ d t | ƒ d ƒ n Xd  |  _# d  S(   Ns   .logs   .txts   $TABLEi   i    s   .xmlt   xsds   .htmlt   selects   .surfi   s   
s   File open faileds   Failed to open file s   .agrs   .xmgrR8  ($   t   table_comboRã  Rÿ   RA   RB   RC   RZ   R]   t
   data_combot   blockSignalsR
  R^   R&   RK   t   addCCP4TableR«  RJ  R1  t   setCurrentDataRc   t   addXMLCCP4TableFilet   addCCP4ReportFilet   addSurfaceFileR   R  R  R  R   t	   tracebackt   print_tbR   Rf  Rg  t   addGraceFilet   addPlainFilet   statusFormat(   RQ   t   filenameR8  RC  RD  t   oldCountR;   RÒ   t   splitst	   newsplitst   gst   nsRh   Rn   t   retR)  R*  R+  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   loadFileÑ  sº    

22/c         C   sö   g  } | j  |  j d ƒ ƒ | j  |  j d ƒ ƒ | j  |  j d ƒ ƒ | j  |  j d ƒ ƒ | j  |  j d ƒ ƒ t j ƒ  } | j t j j ƒ | j t j j ƒ | j t j j	 ƒ | j
 ƒ  rò x* | j ƒ  D] } |  j t | ƒ ƒ qÒ Wn  d  S(   Ns   CCP4 log files (*.log *.html)s   CCP4 XML log files (*.xml)s   XMGR/Grace files (*.xmgr *.agr)s   3D Surface (*.surf)s   Any file (*.*)(   R&   R˜  R   t   QFileDialogt	   setOptiont   DontUseNativeDialogt   setFileModet   ExistingFilet   setAcceptModet
   AcceptOpenR³  t   selectedFilesRY  R   (   RQ   t   filter_listt   loadFileDialogR;   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRc  4  s    c         C   sÿ  d } d } | | 7} i d d 6} | d } d | } t  j d d | d i d	 | 6ƒ} | j |  j ƒ  ƒ x |  j D] } | j | ƒ qv WxLt |  j j ƒ  ƒ D]5} |  j j	 | ƒ }	 |  j
 j |	 ƒ r£ t |  j j | ƒ j ƒ  ƒ }
 t  j d
 d |
 ƒ} | j | ƒ x4 |  j
 |	 j d ƒ D] } | j t j | ƒ ƒ q$WxH d g D]= } x4 |  j
 |	 j | ƒ D] } | j t j | ƒ ƒ qkWqNWxFt |	 j ƒ  ƒ D]/} |	 j	 | ƒ } t | d ƒ rS|  j
 |	 j d ƒ | } t | j d ƒ r7| j j t d k r7| j t  j d ƒ ƒ d | j d ƒ d _ n  t | j d ƒ rŽ| j j t d k rŽ| j t  j d ƒ ƒ d | j d ƒ d _ n  | j j r+t | j d ƒ ƒ d k sÎ| j t  j d ƒ ƒ n  | j d ƒ d j d t | j j d ƒ ƒ | j d ƒ d j d t | j j d ƒ ƒ n  | j j rPxŒ | j d ƒ D]R } | j j d ƒ si| } Pn  | j d d k rG| j d d k rG| } PqGqGW| j t  j d ƒ ƒ | j d ƒ d } t | j d ƒ ƒ d k r| j t  j d ƒ ƒ | j d ƒ d } n  | j d t | j j d ƒ ƒ | j d t | j j d ƒ ƒ n  | j j r¯t | j d ƒ ƒ d k s�| j t  j d ƒ ƒ n  | j j | j d ƒ d _ n  | j j rt | j d ƒ ƒ d k sï| j t  j d ƒ ƒ n  | j j | j d ƒ d _ n  | j j rmt | j d  ƒ ƒ d k sN| j t  j d  ƒ ƒ n  | j j | j d  ƒ d _ n  | j j  rit | j d! ƒ ƒ d k s­| j t  j d! ƒ ƒ n  x5 | j d! ƒ D]$ } x | D] } | j! | ƒ qÊWq½Wx� | j j  D]p } t  j d" ƒ } | j d t | d ƒ ƒ | j d t | d ƒ ƒ x$ | j d! ƒ D] } | j | ƒ qKWqòWn  | j j" ret | j d# ƒ ƒ d k s©| j t  j d# ƒ ƒ n  x5 | j d# ƒ D]$ } x | D] } | j! | ƒ qÆWq¹Wx� | j j" D]p } t  j d" ƒ } | j d t | d ƒ ƒ | j d t | d ƒ ƒ x$ | j d# ƒ D] } | j | ƒ qGWqîWn  t | j d$ ƒ rt | j d% ƒ ƒ d k s«| j t  j d% ƒ ƒ n  xZ | j d% ƒ D]F } | j d& t | j j# d ƒ ƒ | j d' t | j j# d ƒ ƒ q»Wn  | j j$ d j% ƒ  r’| j j$ d j& j' ƒ  r’t | j d( ƒ ƒ d k sl| j t  j d( ƒ ƒ n  x# | j d( ƒ D] } d) | _ q|Wn  t | j d* ƒ r	| j j( r	d+ GHt | j d, ƒ ƒ d k sé| j t  j d, ƒ ƒ n  x# | j d, ƒ D] } d | _ qùWn  x(| j d- ƒ D]} t |  j) | ƒ d k r	t | j d. ƒ ƒ d k rr	| j t  j d. ƒ ƒ n  x1 | j d. ƒ D]  } |  j) | d j* ƒ  | _ q‚	Wt | j d/ ƒ ƒ d k rÚ	| j t  j d/ ƒ ƒ n  x1 | j d/ ƒ D]  } |  j) | d j+ ƒ  | _ qê	Wt | j d0 ƒ ƒ d k rB
| j t  j d0 ƒ ƒ n  x= | j d0 ƒ D], } t t, |  j) | d j- ƒ  ƒ ƒ | _ qR
Wt | j d1 ƒ ƒ d k r¶
| j t  j d1 ƒ ƒ n  x= | j d1 ƒ D], } t t, |  j) | d j. ƒ  ƒ ƒ | _ qÆ
Wt | j d2 ƒ ƒ d k r*| j t  j d2 ƒ ƒ n  x1 | j d2 ƒ D]  } |  j) | d j/ ƒ  | _ q:Wt | j d3 ƒ ƒ d k r’| j t  j d3 ƒ ƒ n  x1 | j d3 ƒ D]  } |  j) | d j0 ƒ  | _ q¢Wt | j d4 ƒ ƒ d k rú| j t  j d4 ƒ ƒ n  x= | j d4 ƒ D], } t t, |  j) | d j1 ƒ  ƒ ƒ | _ q
W|  j) | d j' ƒ  s«t | j d5 ƒ ƒ d k r…| j t  j d5 ƒ ƒ n  x# | j d5 ƒ D] } d) | _ q•Wn  t |  j) | d d6 ƒ r6|  j) | d j2 r6t | j d7 ƒ ƒ d k r| j t  j d7 ƒ ƒ n  x# | j d7 ƒ D] } d) | _ qWq6q	q	W| j t j | ƒ ƒ q¢|  j
 |	 j d ƒ | } t | d8 ƒ r»t | j3 d9 ƒ r»t | j3 j4 ƒ d k r¸t | j3 j4 d d ƒ r,| j3 j4 d j t d k r,t | j d ƒ ƒ d k r)| j t  j d ƒ ƒ d | j d ƒ d _ q)q,n  t | j3 j4 d d ƒ rµ| j3 j4 d j t d k r²t | j d ƒ ƒ d k r¯| j t  j d ƒ ƒ d | j d ƒ d _ q¯q²qµq¸q»n  | j t j | ƒ ƒ q¢Wq£ q£ W| t  j5 | d: d; d< t6 ƒ7} | S(=   NRL   s(   <?xml version="1.0" encoding="UTF-8" ?>
s)   http://www.w3.org/2001/XMLSchema-instancet   xsis   {%s}noNamespaceSchemaLocationt   CCP4ApplicationOutputt   nsmapRŒ   sG   http://www.ysbl.york.ac.uk/~mcnicholas/schema/CCP4ApplicationOutput.xsdRK   RM   R„   RO   R  R†   Rd   R   t   xscalei    Re   t   yscalet   xrangeR   R   i   t   yranget	   rightaxist   truet   1iÿÿÿÿRY  RZ  t   xbreakst   breakt   ybreakst   custom_legend_positiont   legendpositionR   RÖ   t
   showlegendt   falseRm  s(   should be saving with fixed aspect ratiot   fixaspectratioRˆ   Rî   t   symbolt
   symbolsizeR(  R"  R&  R%  t   visibleR  t   showinlegendt   _do_the_plot_Rø   t   encodings   utf-8t   pretty_print(7   R   R‹   R&   Rá  t   surface_etreesRâ  RE  Rã  RJ  Rä  t   table_etreesR_  R   t   itemTextR   RÜ  t   copyt   deepcopyR	  R  Rd   Rg   R�   Re   Ra  R[   R1   Rc  RŒ   RM   RY  RZ  Ri  t   removeRj  Rq  R;  Ro  Rp  Rõ  Rm  t   elementToPlotMapRþ   R	  R9  R  R  R
  R  R  R  Rz  Rø   t   tostringR
  (   RQ   t
   status_xmlt   headert   NSMAPt   NSt   location_attributeRI   t   surfRç  t   cwRŽ   t	   tableTreeR„   t   eltypet   elRé  t   cw2t   yrangeelt   theElt   nodeRs   R‡  t   xmlbrRˆ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   statusAsXMLC  sD   


"((-0& # '0***.(!c         C   s  g  } | s% | j  |  j d ƒ ƒ n  | j  |  j d ƒ ƒ | sZ | j  |  j d ƒ ƒ n  | ru |  j d ƒ g } n  g  } | r| rt j j ƒ  } xm | D]b } t | ƒ d k rŸ | j  |  j t | ƒ j ƒ  d t | ƒ d ƒ ƒ | j  t | ƒ ƒ qŸ qŸ Wn  t | ƒ } t j ƒ  } | j	 t j j
 ƒ | j t j j ƒ | j t j j ƒ | ro| j d ƒ n# | r…| j d	 ƒ n | j d
 ƒ | j | ƒ | j ƒ  r	t | j ƒ  d ƒ } | j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j d ƒ rÜ| j | ƒ rÜt | j ƒ  ƒ }	 |	 |	 j d ƒ d |	 j d ƒ !j ƒ  j d ƒ }
 t |
 ƒ d k rÏ|
 d j d ƒ rÏ| |
 d d } qÜ| d } n  d } | r#d GH|  j ƒ  } t | d ƒ } | j | ƒ | j ƒ  d S| rŽt | ƒ } |  j j  ƒ  } |  j j! ƒ  j  ƒ  } xþ t" |  j j# ƒ  ƒ D]ç } |  j j$ | ƒ |  j j% | ƒ } x¼ t" | j# ƒ  ƒ D]¨ } | j$ | ƒ | j% | ƒ } t& | d ƒ r| j' j( ƒ  | j' j) j* | d d ƒqªt& | d ƒ rª| j+ ƒ  } | j, ƒ  | j' j( ƒ  | j' j) j* | d d ƒqªqªWqoW| j ƒ  |  j j$ | ƒ |  j j! ƒ  j$ | ƒ d S|  j j! ƒ  j! ƒ  } | j d ƒ r”| j d ƒ r”| j d ƒ r”| j d ƒ r”| j d ƒ r”| j d ƒ r”| j | ƒ rd  d l- } | j. d! d d" d# t t/ j0 ƒ  ƒ ƒ } | j1 } | j ƒ  | j' j) j* | d$ | ƒt j2 | ƒ } | j3 | ƒ qq	d% G| GH| j d ƒ s»| j d ƒ rít | ƒ } | j' j) j* | d d ƒ| j ƒ  q	| j' j) j* | d$ | ƒn  d S(&   s{   
		if saveStatus:
			print "Saving status"
			status = self.statusAsXML()
			#print status; sys.stdout.flush()
			return
		s   Postscript (*.ps)s    Portable Document Format (*.pdf)s   PNG files (*.png)s   XML files (*.xml)t   pngs
    files (*.R-  s   Save all figuress   Save statuss   Save figurei    s   .xmls   .XMLs   .pdfs   .PDFs   .pngs   .PNGs   .pss   .PSR.  i   R   s   *.id   s   Saving statust   wNR  R   t   pdfRz  iÿÿÿÿt   suffixt   prefixt   ccp4mgt   dpis   Save (4   R&   R˜  R   t   QImageWritert   supportedImageFormatsR   t   upperRe  RZ  R[  R\  R]  t   AnyFileR_  t
   AcceptSaveR±   t   setNameFiltersR³  Ra  Rÿ   t   selectedNameFilterRZ   R\   R]   R[   R_   R”  RA   R  RC   R   RJ  R   R1  Râ  Rã  R«  Rä  R	  R  R=  R6  t   savefigRz  t   showt   tempfilet   NamedTemporaryFileR'   t   getpidRr   t   QImaget   save(   RQ   t   saveAllt
   saveStatusRb  t
   formats_pyt   formatsR   t   saveFileDialogRR  t   selectedFiltert   splitFiltersR›  t   statusR;   t   ppRå  Ræ  Rç  R‹  Ré  R†   t   newPlotR¥  R6   t   im(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR®  ö  s     4�2%

$
`(	
	c            sÇ  d d  l  ‰  ‡  f d †  } d „  } y†|  j j ƒ  j ƒ  } ˆ  j | j j d j ƒ  d | j j d j ƒ  d ƒ } ˆ  j | j j d j ƒ  d | j j d j ƒ  d ƒ } t ˆ  j | j j d j ƒ  d ƒ ˆ  j | j j d j ƒ  d ƒ ƒ } t ˆ  j | j j d j ƒ  d ƒ ˆ  j | j j d j ƒ  d ƒ ƒ } | | ƒ } | | ƒ d }	 | |	 | ƒ }
 | | ƒ } | | ƒ d } | | | ƒ } |
 | g |  _	 Wn d d g |  _	 n Xd  S(   Niÿÿÿÿc            sK   y ˆ  j  |  ƒ } Wn d } n X| d k  r= t | ƒ d St | ƒ Sd  S(   Ng        i    i   (   t   log10R9  (   t   numR  (   R   (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   logBase]  s    
c         S   sÃ   | d k s |  d k  r! d } nž |  d k  r¥ | d k  rj d t  t |  ƒ ƒ d t  t |  ƒ ƒ d } q¿ d t  t |  ƒ t | ƒ ƒ d t  t |  ƒ ƒ d } n d t  t | ƒ ƒ d } | S(	   Ni   iúÿÿÿs   %.3Ei    t   %R½   R;   s   .0f(   R   Rä   (   t   minXt   maxXt   xFt   xf(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   g  s    	1;i   i    i   s   %12.6f(
   R   RJ  R1  t   fabsR  R;  R[  R\  R   RQ  (   RQ   R·  R   R†   t   xrt   yrt   xxt   yyRº  R¹  R»  t   maxYt   minYt   yF(    (   R   sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   updateStatusFormat[  s$    
	;;IIc   	      C   sL  |  j  j ƒ  j ƒ  } | j j t k rD |  j j |  j d ƒ ƒ d  S| rHt | ƒ t	 k rH| j
 d ƒ rH| j
 d ƒ rH| j
 d ƒ rH| d } | rÀ d | | d d  d |  j d ƒ} n d |  j d | d } | rd | | d d  d |  j d	 ƒ} n d |  j d	 | d } | d
 | d | } |  j j | ƒ n  d  S(   Ns%   Moving legend, press escape to cancelR   RÖ   Rî   s   x = R   i    s   y = i   R   s   , (   RJ  R1  R  R?  R
  t	   statusBart   showMessageR˜  RÝ  t   dictR_  R^   RQ  (	   RQ   Rd   Re   R   R†   Rr   R   RÖ   R�   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   updateStatusWithPickXandY‹  s    E
''c         C   s;  |  j  d  k r |  j ƒ  n  |  j j ƒ  j ƒ  } | j j t k r` |  j j	 |  j
 d ƒ ƒ d  S| r7t | ƒ t k r7t | ƒ d k r7| r· d | | d d  d |  j  d ƒ} n d |  j  d | d } | rý d | | d d  d |  j  d ƒ} n d |  j  d | d } | d | } |  j j	 | ƒ n  d  S(	   Ns%   Moving legend, press escape to canceli   s   x = i    R   s   y = i   s   , (   RQ  R^   RÅ  RJ  R1  R  R?  R
  RÆ  RÇ  R˜  RÝ  Re  R[   (   RQ   Rd   Re   R   R†   R   RÖ   R�   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   updateStatusWithXandYž  s     *''c         C   s­  | d k  r d  S|  j  j ƒ  s# d  S|  j  j ƒ  j | ƒ rÎ t |  j  j ƒ  j | ƒ d ƒ rÎ |  j  j ƒ  j | ƒ j ƒ  } |  j  j ƒ  j | ƒ } |  j  j ƒ  j | ƒ | j ƒ  |  j  j ƒ  j | | ƒ n  |  j  j ƒ  j | ƒ t	 j
 d k rJ|  j |  j ƒ  d |  j ƒ  ƒ |  j ƒ  |  j |  j ƒ  d |  j ƒ  ƒ |  j ƒ  n  |  j  j ƒ  j ƒ  j j t j t j |  j  j ƒ  j ƒ  j j ƒ  |  j  j ƒ  j ƒ  j j ƒ  ƒ t j |  j  j ƒ  j ƒ  j j ƒ  |  j  j ƒ  j ƒ  j j ƒ  ƒ ƒ ƒ |  j  j ƒ  j ƒ  j j t j t j |  j  j ƒ  j ƒ  j j ƒ  |  j  j ƒ  j ƒ  j j ƒ  ƒ t j |  j  j ƒ  j ƒ  j j ƒ  |  j  j ƒ  j ƒ  j j ƒ  ƒ ƒ ƒ d  |  _ |  j j | ƒ d  S(   Ni    Rz  t   darwini   (   RJ  R1  Rä  R	  Rz  t   removeWidgetRC   t   insertWidgetR«  R   Rø  t   resizeRt  Ru  t   repaintR  Rq  R   Rr  R    Rs  R^   RQ  t   currentDataChangedt   emit(   RQ   R(  t	   newWidgett	   oldWidget(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRI  ±  s(     9
 
 ££	c         C   s„   |  j  j ƒ  x3 |  j | D]$ } |  j  j | d ƒ |  j ƒ  q W|  j  j d ƒ |  j j | ƒ |  j d ƒ |  j j	 | ƒ d  S(   Ni    (
   RF  t   cleart   graph_listsR  t   comboItemsChangedR«  RJ  RI  t   currentTableChangedRÑ  (   RQ   R(  Rq   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   setCurrentTableÐ  s    c   	      C   sÎ   | j  j d d ƒ } t | j  j d d ƒ ƒ } t | j  j d d ƒ ƒ } g  } g  } | j j ƒ  } xR | rº x2 t | ƒ | k  r£ | j t | j d ƒ ƒ ƒ qr W| j | ƒ g  } qi W|  j	 | | | ƒ S(   NRM   RL   t   columnst   rowsi    (
   RŒ   t   getR9  R�   R]   R[   R&   R`   RÞ  t   addSurfaceData(	   RQ   RI   t
   graph_uuidRM   RÙ  RÚ  t   Zt   Zit   theText(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   addSurfaceFromEtreeÛ  s    	 
c   
      C   s  t  | ƒ } | j ƒ  } | j ƒ  g  } t j d d | d t t | ƒ ƒ d t t | d j ƒ  ƒ ƒ ƒ} d | _ x | D] } | j | 7_ q{ W|  j	 j
 | ƒ xQ | D]I } g  } x- | j ƒ  j ƒ  D] }	 | j
 t |	 ƒ ƒ qÊ W| j
 | ƒ q« W|  j | | | ƒ S(   Nt   CCP4SurfaceRM   RÚ  RÙ  i    RL   (   RA   t	   readlinesRC   R   R‹   R   R[   R]   R�   R}  R&   R\   R`   RÜ  (
   RQ   RR  RÝ  R;   RÃ   RÞ  t   surfaceTreeR  Rß  R÷   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRL  é  s    
C	c      	   C   s^  d } d } xa | D]Y } xP | D]H } t  | ƒ | k rG t  | ƒ } n  t  | ƒ | k  r  t  | ƒ } q  q  Wq Wg  } t  | | ƒ }	 d }
 |	 |
 } x) t |
 ƒ D] } | j | | | ƒ q£ Wt j ƒ  } | d  k rê | j | ƒ n  |  j j | ƒ g  } | j | d f ƒ t	 d | ƒ } | j
 |  j ƒ |  j | j t j d ƒ t j |  j d  d  ƒ ƒ | j | ƒ d d l m } | j j d	 j | d
 d | j d d d d ƒ| j j d	 j | d
 d d d d ƒ} | j j j | ƒ d | j _ | j j d	 j | ƒ |  j j | ƒ |  j j t  | ƒ ƒ |  j! ƒ  |  j j" |  j j# ƒ  d ƒ | S(   Ng   ¢”mBg   ¢”mÂi2   RL   RM   t   MouseMoveEventiÿÿÿÿ(   t   cmi    iP   t   cmapt
   linewidthsi   t   originR   RA  t   dottedt   surface($   R`   Râ  R&   R   t   QStackedWidgetR^   t   setObjectNameRJ  Rœ  t   QtMatplotlibWidgett   setDefaultSymbolSizet   defaultSymbolSizeRª   R  R    R«   R¯  R°  RÊ  t   pylabRæ  R;  t   contourt   bonet   contourfR6  t   colorbart   _typeRW  RÕ  RE  R  R   RÖ  R«  Rã  (   RQ   RÞ  t   datanameRÝ  t   mindt   maxdt   ziR÷   t   levelst   difft   ncontt   stepRç  RJ  RÕ  R†   Ræ  t   CS(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÜ  ú  sF    
1/(
c   1      C   sÜ  t  | ƒ } | j ƒ  } | j ƒ  d } d } g  } g  } g  }	 t j ƒ  }
 | d  k rh |
 j | ƒ n  |  j j |
 ƒ t	 j
 d ƒ } t	 j
 d ƒ } | |  j |
 <t } |	 j | d t | ƒ d f ƒ t	 j
 d ƒ } t	 j
 d ƒ } | d t | ƒ | _ | j | ƒ | j | ƒ t d | d t | ƒ ƒ } | j |  j ƒ |  j | j t j d	 ƒ t j |  j d  d  ƒ ƒ |  j | j t j d
 ƒ t j |  j d  d  ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |  j | j t j d
 ƒ t j |
 j t j d
 ƒ ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |
 j | ƒ d  } d  } d  } d  } d } t } d  d  g } d  d  g } xÝ	| D]Õ	} | j d ƒ rét | j ƒ  ƒ d k ré| j ƒ  d d k rét } q�| j d ƒ rÄt } | d t | ƒ } | r!| } n  t  |  j | ƒ } t | ƒ d k r—t | ƒ t | ƒ k r!t! | d ƒ t" k r÷x§t# t | d ƒ ƒ D]e} g  } x/ t# t | ƒ ƒ D] } | j | | | ƒ qªW| rØ| } n |  j$ | t |  j$ ƒ } | rv| }  | r@| j j% | | d | d | d | d |  d | d | ƒ}! qÃ| j j% | | d | d | d |  d | d | ƒ}! nM |  j& | t |  j& ƒ }  | j j% | | d | d | d |  d | d | ƒ}! x  |! D] }" | sÊt |" _' qÊqÊW| d } q‹Wq?| r| } n |  j$ | t |  j$ ƒ } | r¤| }  | rn| j j% | | d | d | d | d |  d | d | ƒ}! qñ| j j% | | d | d | d |  d | d | ƒ}! nM |  j& | t |  j& ƒ }  | j j% | | d | d | d |  d | d | ƒ}! x  |! D] }" | søt |" _' qøqøW| d } n| r0| } n |  j$ | t |  j$ ƒ } | rÈ| }  | r•| j j% | d | d | d | d |  d | d | ƒ}! q| j j% | d | d | d |  d | d | ƒ}! nJ |  j& | t |  j& ƒ }  | j j% | d | d | d |  d | d | ƒ}! x  |! D] }" | st |" _' qqW| d } t	 j
 d d t d | d ƒ d t d | d d ƒ ƒ}# | j |# ƒ |! |  j( |# <n  g  } g  } d  } d  } d  } d  } d } q�| r‰	| j d ƒ r‰	t | j ƒ  ƒ d k r[| j ƒ  d d k r[| j ƒ  d }$ t  |$ ƒ d k r=d } d } d GHn  t  |$ ƒ d k r†	d } q†	qrt | j ƒ  ƒ d k r¼| j ƒ  d d  k r¼| j ƒ  d d! k r¼d t) | j ƒ  d ƒ } qrt | j ƒ  ƒ d k r+	| j ƒ  d d" k r+	| j ƒ  d d# k r+	| | j* d$ ƒ j+ ƒ  j+ d% ƒ } t } qrt | j ƒ  ƒ d k r}	| j ƒ  d d k r}	|  j$ t  | j ƒ  d ƒ d } qrd& G| GHq�| rz
| j+ ƒ  j ƒ  }% t |% ƒ d k rÍ	| j t) |% d ƒ ƒ qrt |% ƒ d k r
| j t) |% d ƒ ƒ | j t) |% d ƒ ƒ qrt |% ƒ d k rr| j t) |% d ƒ ƒ g  }& x% |% d D] } |& j t) | ƒ ƒ qJ
W| j |& ƒ qrq�| j d ƒ r�t | j ƒ  ƒ d k r	| j ƒ  d d k r	| | j* d ƒ t d ƒ j+ ƒ  j+ d% ƒ }' | j j, d j- |' ƒ |' | j _. qrt | j ƒ  ƒ d k rf| j ƒ  d d' k rf| j ƒ  d d( k r‚y t) | j ƒ  d ƒ | d <Wq‚d  | d <q‚Xn  | j ƒ  d d) k rÍy t) | j ƒ  d ƒ | d <WqÍd  | d <qÍXn  | j ƒ  d d* k ry t) | j ƒ  d ƒ | d <Wqd  | d <qXn  | j ƒ  d d+ k roy t) | j ƒ  d ƒ | d <Wqcd  | d <qcXqoqrd& G| GHq�q�W| d r| d r| d r| d r| j j, d j/ | d | d ƒ | d | d f | j _0 | j j, d j1 | d | d ƒ | d | d f | j _2 t3 | d | d | d | d ƒ d, k  rt | j _4 | j j5 t j6 t j7 | j j8 ƒ  | j j9 ƒ  ƒ t j7 | j j8 ƒ  | j j9 ƒ  ƒ ƒ ƒ | j j5 t j6 t j7 | j j8 ƒ  | j j9 ƒ  ƒ t j7 | j j8 ƒ  | j j9 ƒ  ƒ ƒ ƒ qn  g  }( d0 \ }) }* xR | j: d ƒ D]A }# t |  j( |# d j; ƒ  ƒ t |  j( |# d j< ƒ  ƒ }) }* q(Wd }+ xw t= t# t | j: d ƒ ƒ ƒ | j: d ƒ ƒ D]H \ } }# |( j |  j( |# d j; ƒ  ƒ |( j |  j( |# d j< ƒ  ƒ q¡Wt> d  |( Œ }, d }- xZ |, D]R }. d }/ x5 |. D]- }0 |0 d  k r?|/ d- |0 7}/ q|/ d1 7}/ qW|- |/ d/ 7}- q	W|- | _ | j | ƒ | r‹| j j? ƒ  n  |  j@ j |	 ƒ |  jA jB t | ƒ ƒ |  jC ƒ  |  jA jD |  jA jE ƒ  d ƒ |
 S(2   Ni    i   RK   R„   R   RL   R†   RM   Rå  t   DetectPointMoveEventt   DetectPointClickEventt   RegionSelectedt   @i   i   RÝ  t   &Rî   t   pickerR'  R&  t   colorR)  Rˆ   R‰   RŠ   i   R½   RÂ   R¼   i   Rv  R’  Rn  RR   t   "s   '"t   IGNOREt   worldR€  R�  R„  R…  gñhãˆµøä>s   %.6f s   %6s s   
(   i    i    s        - (F   RA   Rã  RC   R   Rì  R^   Rí  RJ  Rœ  R   R‹   R~  Rc   R&   R   R�   Rî  Rï  Rð  Rª   R  R    R«   R¯  R°  RÊ  RÉ  RÑ  R_   R[   R]   R
  R9  RÝ  R0   Râ  R2  R†   RF  R  Rƒ  R`   RZ   R\   R;  RW  RM   R`  Ra  R<  Rc  Rä   Rm  Rq  Rr  Rs  Rt  Ru  RÜ  R  R  RÛ  t   mapRn  RÕ  RE  R  RÖ  R«  Rã  (1   RQ   RR  RÝ  R;   R  t   igt   isetR€   R  RÕ  RJ  RŽ   t	   theDataElt   inGraphR“   R”   R†   t   currentLineStylet   currentColourt   currentMarkert   currentLegendStringt   currentMarkerScalingt
   haveLegendRv   Rw   R  Rî   R)  Ré  R÷   Rç  R  t   stylet   thePlott   lineRˆ   t	   lineStylet   thisValt   tvalsRM   R�   t   maxXDatat   maxYDatat
   theDataStrt   theData2R�   t   rowt   theRowRÔ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRO  "  sŒ   
!11777=			<63 	<63 	930 
;	.DD"	.$.,.("".X^?:"	 
c         C   s;   t  | ƒ } | j ƒ  } | j ƒ  |  j | | | d | ƒS(   NR8  (   RA   Rã  RC   t   addPlainData(   RQ   RR  RÝ  R8  R;   R  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRP     s    
c         C   sƒ  d } d } g  } g  } g  }	 t  j ƒ  }
 | d  k rF |
 j | ƒ n  |  j j |
 ƒ xé| D]á} | j ƒ  j ƒ  } t | ƒ d k r¡ | j	 t
 | d ƒ ƒ q] t | ƒ d k rä | j	 t
 | d ƒ ƒ | j	 t
 | d ƒ ƒ q] t | ƒ d k rK| j	 t
 | d ƒ ƒ g  } x% | d D] } | j	 t
 | ƒ ƒ qW| j	 | ƒ q] t | ƒ d k r] t | ƒ d k r>|	 j	 | d f ƒ t d | ƒ } | j |  j ƒ |  j | j t j d ƒ t j |  j d  d  ƒ ƒ |  j | j t j d ƒ t j |  j d  d  ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |  j | j t j d	 ƒ t j |
 j t j d	 ƒ ƒ ƒ |
 j | ƒ t | ƒ t | ƒ k rHt | d ƒ t k rÂx_t t | d ƒ ƒ D]Á } g  } x/ t t | ƒ ƒ D] } | j	 | | | ƒ qW|  j | t |  j ƒ } |  j | t |  j ƒ } | j j | | d
 | d t | ƒ d |  j d | d | d |  j ƒ| d } qúWq|  j | t |  j ƒ } |  j | t |  j ƒ } | j j | | d
 | d t | ƒ d |  j d | d | d |  j ƒ| d } nÔ| rœ|  j | t |  j ƒ } d \ } } t | ƒ d k r¶t j | ƒ } t j  | ƒ } t j! | ƒ } n  | d k r| j j" | t# | ƒ d d d | d
 | d t | d ƒ ƒ\ } } } n6 | j j" | t# | ƒ d d d | d
 | ƒ\ } } } t | ƒ d k r|  j$ j	 i t% d 6| d 6| d 6| d 6| d 6| d 6| d 6ƒ qnv |  j | t |  j ƒ } |  j | t |  j ƒ } | j j | d
 | d t | ƒ d |  j d | d | d |  j ƒ| d } g  } g  } | d } d } q>q] q] Wt | ƒ d k r2| d k rˆ|	 j	 | d t | d ƒ d f ƒ n |	 j	 | d f ƒ t d | d t | ƒ ƒ } | j |  j ƒ |  j | j t j d ƒ t j |  j d  d  ƒ ƒ |  j | j t j d ƒ t j |  j d  d  ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |  j | j t j d ƒ t j |
 j t j d ƒ ƒ ƒ |  j | j t j d	 ƒ t j |
 j t j d	 ƒ ƒ ƒ |
 j | ƒ t | ƒ t | ƒ k re	t | d ƒ t k réxUt t | d ƒ ƒ D]Á } g  } x/ t t | ƒ ƒ D] } | j	 | | | ƒ q@W|  j | t |  j ƒ } |  j | t |  j ƒ } | j j | | d
 | d t | ƒ d |  j d | d | d |  j ƒ| d } q!Wq/|  j | t |  j ƒ } |  j | t |  j ƒ } | j j | | d
 | d t | ƒ d |  j d | d | d |  j ƒq2| r¹
|  j | t |  j ƒ } d \ } } t | ƒ d k rÓ	t j | ƒ } t j  | ƒ } t j! | ƒ } n  | d k r*
| j j" | t# | ƒ d d d | d
 | d t | d ƒ ƒ\ } } } n6 | j j" | t# | ƒ d d d | d
 | ƒ\ } } } t | ƒ d k r/|  j$ j	 i t% d 6| d 6| d 6| d 6| d 6| d 6| d 6ƒ q/q2|  j | t |  j ƒ } |  j | t |  j ƒ } | j j | d
 | d t | ƒ d |  j d | d | d |  j ƒn  |  j& j	 |	 ƒ |  j' j( t | ƒ ƒ |  j) ƒ  |  j' j* |  j' j+ ƒ  d ƒ |
 S(   Ni    i   i   RL   RM   Rå  R   R  R  Rî   R   R  R'  R  R)  Ré   Rí   R€   Rì   Rè   Rï   Rê   Rë   (   i    i   (   i    i   (,   R   Rì  R^   Rí  RJ  Rœ  R\   R]   R[   R&   R`   Rî  Rï  Rð  Rª   R  R    R«   R¯  R°  RÊ  RÉ  RÑ  RÝ  R0   Râ  R2  RF  R†   R   Rõ   t   meant   stdR   R8  R9  R  Rc   RÕ  RE  R  RÖ  R«  Rã  (   RQ   R  R÷  RÝ  R8  R  R  R€   R  RÕ  RJ  R  R  R  R÷   R†   Ré  Rç  R  R  Rê   Rë   Rì   Rs   Rï   Rè   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR!    sà    11777EEK6GB

(11777EHK6GE
c         C   s8  d d l  m } y t | ƒ } Wn€ t j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j	 | ƒ t
 j j |  d d | d ƒ g  SXg  } xˆ d D]€ }	 xw | j d
 |	 ƒ D]c }
 | d  k só |
 j d d  ƒ | k rÉ y  |  j |
 ƒ } | j | ƒ Wq,d G|
 j GHq,XqÉ qÉ Wq° W| S(   Niÿÿÿÿ(   R   i   s   
s   Report HTML parse errors   File s    does not seem to be valid HTMLt	   ccp4_datas'   {http://www.ccp4.ac.uk/ccp4ns}ccp4_datat   tagR<   s   ERROR loading table(   R$  s'   {http://www.ccp4.ac.uk/ccp4ns}ccp4_data(   R?   R   RJ   R   R  R  R  R   RM  RN  R   Rf  t   warningt   iterR^   RÛ  t   addTableFromEtreeR&   R%  (   RQ   R5   RD  R   t   docR)  R*  R+  t	   graphListR%  t   tableEleRJ  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRK  Œ  s(    $c      	   C   sò  y t  | ƒ } Wn€ t j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j	 j
 |  d d | d ƒ g  SX| rd  } y t  | ƒ } Wn t j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j	 j
 |  d d | d ƒ n X| d  k	 ry) t j | ƒ }	 |	 j | ƒ d G| GHWqt j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ t j | ƒ t j	 j
 |  d d | d	 t | ƒ d
 t | ƒ ƒ qXqn  g  }
 | j d ƒ } xC | D]; } |  j | ƒ } |
 j | ƒ |  j j t j | ƒ ƒ q"W| j d ƒ } x‘ | D]‰ } y  |  j | ƒ } |
 j | ƒ Wqwt j ƒ  d  \ } } } t j j t | ƒ d ƒ t j j t | ƒ d ƒ d G| j GHqwXqwW| j d ƒ } d „  } d  } d  } d  } d  } xz | D]r } | j d ƒ } | | ƒ } | j d ƒ } | | ƒ } | j d ƒ } | | ƒ } | j d ƒ } | | ƒ } q;W| sÉ| sÉ| sÉ| rî|  j d | d | d | d | ƒ n  |
 S(   Ni   s   
s   XML parse errors   File s    does not seem to be valid XMLs   XML validation errors    is not a valid schemas   Validated successfully againsts    does not conform to schema

s   

s"   /CCP4ApplicationOutput/CCP4Surfaces    /CCP4ApplicationOutput/CCP4Tables   ERROR loading tables   /CCP4ApplicationOutput/Fontsc         S   sÉ   i  } t  |  ƒ d k rÅ |  d } | j j d d ƒ } | rJ | | d <n  | j j d d ƒ } | rx t | ƒ | d <n  | j j d ƒ } | r� | | d <n  | j j d ƒ } | rÅ | | d <qÅ n  | S(   Ni    iÿÿÿÿR=   RL   R’  R‘  R“  (   R[   RŒ   RÛ  R9  (   t   elementt   theFontt   titleFontElementR=   R’  R‘  R“  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   elementToDictØ  s     
R×  RØ  RÙ  RÚ  R§  R¨  R©  R¦  (   RJ   R   R  R  R  R   RM  RN  R   Rf  R&  R^   R   t	   XMLSchemat   assertValidRÜ  Rá  R&   R}  R€  R�  R(  R%  RÑ  (   RQ   R5   RÝ  RC  R)  R)  R*  R+  t   xmlschema_doct	   xmlschemaRn   t   surfacesRŠ  RJ  t   tablesRŽ   R   R/  R×  t   axesFontRÙ  RÚ  t   fontt
   titleFontst	   axesFontst   axesLabelFontst   legendFonts(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRJ  ¥  s€    "@	%c   
      C   sÂ   d } d } d } d } t  | ƒ t  | ƒ k r4 d  Sx{ t t  | ƒ ƒ D]g }	 | |	 | k r‡ | |	 | k rz | d 7} q® | d 7} qG | |	 | k r¤ | d 7} qG | d 7} qG W| | | | f S(   Ni    i   (   R[   Râ  (
   RQ   t   xdatat   ydatat   halfxt   halfyt   nTopLeftt	   nTopRightt   nBottomLeftt   nBottomRightRç  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   analyzeDistributionOfPointsý  s    c         C   s  x| j  d ƒ D]ó } | j j d d  ƒ | k r | j j ƒ  j ƒ  } g  } xN | D]F } | j d d ƒ } | d k sƒ | d k rŒ d } n  | j | ƒ qS Wt	 j
 | d t ƒ} t	 j | t | ƒ t | j  d	 ƒ d
 j j ƒ  j ƒ  ƒ ƒ }	 t	 j
 |	 ƒ }
 |
 Sq Wd  S(   NR„   R<   RY   t   NanRÈ   R¼   t   NaNt   dtypeRO   i    (   RÜ  RŒ   RÛ  R^   R�   R\   R]   Ra   R&   Rõ   t   arrayR`   t   array_splitR[   (   RQ   RŽ   t   theIdR„   t   at   a2Rç  Ré  t   array1t   array2RH  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   getDataArray  s    	>c         C   s¸   |  j  j ƒ  } |  j j t ƒ g  } |  j | ƒ } | j | ƒ |  j  j | ƒ |  j j d ƒ |  j j | ƒ |  j j	 ƒ  j d ƒ |  j
 d ƒ |  j  j t ƒ |  j j t ƒ | S(   Ni    (   RE  Rã  RF  RG  R
  R(  R&   R«  RJ  R1  RI  Rc   (   RQ   Rh   RS  Rn   RJ  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   addTableFromEtreeAndSetVisible$  s    c            sm  | } | j  j d d ƒ j ƒ  } | j d ƒ d } | j j ƒ  j ƒ  } g  } xN | D]F } | j d d ƒ } | d k pƒ | d k r� d	 } n  | j | ƒ qV Wt j	 | d
 t
 ƒ}	 t j |	 t |	 ƒ t | j d ƒ d j j ƒ  j ƒ  ƒ ƒ }
 t j	 |
 ƒ ‰ g  } g  } g  } x– t t t | j d ƒ ƒ ƒ | j d ƒ ƒ D]g \ } } t | j d ƒ ƒ d k rˆ| j d ƒ d j j ƒ  } n d | d } | j | d f ƒ qBWˆ j j | ƒ ˆ j j | ƒ ˆ j ƒ  t j ƒ  ‰  ˆ j j ˆ  ƒ | ˆ j ˆ  <x] | j d ƒ D]L } ‡  ‡ ‡ f d †  } t j ƒ  } t j | | | ƒ | _ ˆ  j | ƒ qWt ˆ _ ˆ  S(   NRM   RL   R„   i    RY   RE  RÈ   R¼   RF  RG  RO   R†   s   Plot %di   c   \         s‚  t  |  j d ƒ ƒ d k r: |  j d ƒ d j j ƒ  } n d } t d | ƒ } | j ˆ j ƒ d  } d  } xÏ|  j d ƒ D]¾} | j d k rx| } t	 j
 | j j ƒ  j ƒ  d t ƒ} t	 j | t  | ƒ d ƒ }	 t j j |	 ƒ }
 |
 j t | j j d d	 ƒ ƒ ƒ |
 j | j j d
 d ƒ ƒ |
 j | j j d d ƒ ƒ |
 j | j j d d ƒ ƒ | j j d j |
 ƒ q{ | j d k r_| } t j j t | j d ƒ t | j d ƒ f t | j d ƒ ƒ } | j t | j j d d	 ƒ ƒ ƒ | j | j j d
 d ƒ ƒ | j | j j d d ƒ ƒ | j | j j d d ƒ ƒ | j j d j | ƒ q{ | j d k r{ | } | j d } | j d } | j d } | j d } | j j d j t j j | | g | | g ƒ ƒ } | j t | j j d d	 ƒ ƒ ƒ | j | j j d d ƒ ƒ | j | j j d d ƒ ƒ q{ q{ Wt } t  |  j d ƒ ƒ d k ry˜ y$ t |  j d ƒ d j d ƒ } Wn d  } n Xy$ t |  j d ƒ d j d ƒ } Wn d  } n X| j j d j  | | ƒ | | f | j _! WqqXn  t  |  j d ƒ ƒ d k r\yÄd } x·|  j d ƒ D]¦} y t | j d ƒ } Wn d  } n Xy t | j d ƒ } Wn d  } n Xy9 | j d d k s´| j d d	 k r½t" } n t } Wn t } n X| s	| j j | j# | | ƒ | | f | j _$ q7| j j% j& | j j d j' ƒ  ƒ | j j% d j# | | ƒ | | f | j _( y{ | j d  } | j j% d j) d! j | ƒ | j j d j) d! j | ƒ x+ | j j% d j* ƒ  D] } | j | ƒ q»WWq7q7Xq7WWn n X| j j$ r•t  | j j$ ƒ d k r•| j j$ d d  k	 r•| j j$ d" d  k	 r•| j j! r•t  | j j! ƒ d k r•| j j! d d  k	 r•| j j! d" d  k	 r•t" } n  yº| rN| j j | j+ ƒ  d d  k	 rN| j j | j+ ƒ  d" d  k	 rN| j j | j, ƒ  d d  k	 rN| j j | j, ƒ  d" d  k	 rNt- | j j | j+ ƒ  d" | j j | j+ ƒ  d | j j | j, ƒ  d" | j j | j, ƒ  d ƒ d# k  rNt" | j _. | j j/ t0 j1 t2 j3 | j j4 ƒ  | j j5 ƒ  ƒ t2 j3 | j j4 ƒ  | j j5 ƒ  ƒ ƒ ƒ | j j/ t0 j1 t2 j3 | j j4 ƒ  | j j5 ƒ  ƒ t2 j3 | j j4 ƒ  | j j5 ƒ  ƒ ƒ ƒ qNn  Wq\q\Xn  t  |  j d$ ƒ ƒ d k rÚyV t |  j d$ ƒ d j d% ƒ } t |  j d$ ƒ d j d& ƒ } | | g | j _6 WqÚqÚXn  t  |  j d' ƒ ƒ d k r$	t7 |  j d' ƒ d j j ƒ  } | | j _8 n  t  |  j d( ƒ ƒ d k rn	t7 |  j d( ƒ d j j ƒ  } | | j _9 n  | r—	| j j d j: j; t< | ƒ ƒ n  | rÀ	| j j d j= j; t< | ƒ ƒ n  t  |  j d) ƒ ƒ d k r/
| j j d j> |  j d) ƒ d j j ƒ  ƒ } |  j d) ƒ d j j ƒ  | j _? n  t  |  j d* ƒ ƒ d k rž
| j j d j@ |  j d* ƒ d j j ƒ  ƒ } |  j d* ƒ d j j ƒ  | j _A n  t  |  j d+ ƒ ƒ d k r(| j j% d j@ |  j d+ ƒ d j j ƒ  ƒ } |  j d+ ƒ d j j ƒ  | j _B y | j | ƒ Wq(q(Xn  t  |  j d, ƒ ƒ d k r|  j d, ƒ d }  t  |  j d- ƒ ƒ d. k  rÜg  }! xc tC t  |  j d- ƒ ƒ ƒ D]F }" |  j d- ƒ |" }# |! j& t |# j d ƒ t |# j d ƒ f ƒ q“WtD |! ƒ }! | j jE |! d  ƒ qÜnÚ t  |  j d/ ƒ ƒ d k rÜ|  j d/ ƒ d }$ t  |$ j d- ƒ ƒ d. k  rÜg  }! xc tC t  |$ j d- ƒ ƒ ƒ D]F }" |$ j d- ƒ |" }# |! j& t |# j d ƒ t |# j d ƒ f ƒ qmWtD |! ƒ }! | j jE d  |! ƒ qÜn  ˆ jF | j t2 jG d0 ƒ tH jI ˆ jJ | | ƒ ƒ ˆ jF | j t2 jG d1 ƒ tH jI ˆ jK | | ƒ ƒ ˆ jF | j t2 jG d2 ƒ tH jI ˆ  jL t2 jG d2 ƒ ƒ ƒ ˆ jF | j t2 jG d1 ƒ tH jI ˆ  jL t2 jG d1 ƒ ƒ ƒ ˆ jF | j t2 jG d3 ƒ tH jI ˆ  jL t2 jG d3 ƒ ƒ ƒ d }% d  }& d  }' d  }( d  }) d  }* d  }+ d  }, d  }- d  }. d  }/ x2tC t  |  j d4 ƒ ƒ ƒ D]}0 |  j d4 ƒ |0 }1 g  }2 tM |1 j d5 ƒ }3 ˆ }4 |4 d  d  … tM |3 ƒ d" f }2 | j d6 ƒ d j j ƒ  j ƒ  tM |3 ƒ d" }5 t  |1 j d  ƒ ƒ d k r|1 j d  ƒ d j j ƒ  }6 n ˆ jN |% t  ˆ jN ƒ }6 t  |2 ƒ d k rAt	 jO |2 ƒ }7 t	 jP |2 ƒ }8 t	 jQ |2 ƒ }9 |9 d7 k  rr|9 }9 n  t- |9 ƒ d8 k  r�d8 }9 n  t  |1 j d9 ƒ ƒ d k rÇ|1 j d9 ƒ d j j ƒ  }9 n  | j jR |2 tM |9 ƒ d: d d; |6 d< |5 ƒ\ }: }; }< t  |< ƒ d k rVˆ jS j& i t d: 6|2 d= 6|9 d> 6|< d? 6|; d@ 6|7 dA 6|8 dB 6ƒ qVqAqAWxtC t  |  j dC ƒ ƒ ƒ D]b}0 |  j dC ƒ |0 }= tM |= j dD ƒ }> ˆ }4 |= j j dE d  ƒ d  k	 rôˆ jT | |= j dE ƒ }4 |4 d  k rôˆ }4 qôn  |4 d  d  … tM |> ƒ d" f }? | j d6 ƒ d j j ƒ  j ƒ  tM |> ƒ d" }5 g  }2 t  |= j d  ƒ ƒ d k r„|= j d  ƒ d j j ƒ  }6 n ˆ jN |% t  ˆ jN ƒ }6 t  |= j dF ƒ ƒ d k rØ|= j dF ƒ d j j ƒ  }@ n ˆ jU |% t  ˆ jU ƒ }@ t  |= j dG ƒ ƒ d k r2t |= j dG ƒ d j j ƒ  ƒ }A n	 ˆ j }A t  |= j d ƒ ƒ d k ru|= j d ƒ d j j ƒ  }B n dH }B t  |= j d ƒ ƒ d k r»tM |= j d ƒ d j j ƒ  ƒ }C n d" }C |6 ˆ jN k r´y~ t jN jV ƒ  jW |6 ƒ }D x_ ˆ jN D]. }E t jN jV ƒ  jW |E ƒ }F |F |D k rõPqõqõWˆ jN j& |6 ƒ ˆ jX j& |6 jY ƒ  ƒ Wq´dI }6 tZ j[ ƒ  dJ  \ }G }H }I tZ j\ j] t^ |G ƒ dK ƒ tZ j\ j] t^ |H ƒ dK ƒ d }J q´Xn  tM |= j dL ƒ d" }K |4 d  d  … |K f }L t  |  j dM ƒ ƒ d k rF|  j dM ƒ d j d k s4|  j dM ƒ d j d	 k rFt" | j __ qFn  t  |  j dN ƒ ƒ d k r«|  j dN ƒ d j d k s™|  j dN ƒ d j d	 k r«t" | j _` q«n  t" }M t  |= j dO ƒ ƒ d k r|= j dO ƒ d j dP k s|= j dO ƒ d j dQ k rt }M qn  t } y3 |= j d d k s?| j d d	 k rHt" } n  Wn n X| j ja |L |? d< |5 dR ˆ j dS |@ dT |6 dU |A d |B dV |C dO |M d | ƒ	}N |N ˆ jb |= <t  |= j dW ƒ ƒ d k r&t  |N ƒ d k r&|= j dW ƒ d j dP k s|= j dW ƒ d j dQ k r&t" |N d _c q&n  t  |= j d< ƒ ƒ d k rwt  |N ƒ d k rw|N d jd |= j d< ƒ d j ƒ n  t  |= j dX ƒ ƒ d k rÎt  |N ƒ d k rÎ|N d je t |= j dX ƒ d j ƒ ƒ n  |% d" }% qvWt  |  j d$ ƒ ƒ d k r| j j d j+ ƒ  d | j j d j+ ƒ  d" dY }O | j j d j, ƒ  d | j j d j, ƒ  d" dY }P d }Q }R }S }T xâ tC t  |  j dC ƒ ƒ ƒ D]Å }0 |  j dC ƒ |0 }= tM |= j dD ƒ }> |4 d  d  … tM |> ƒ d" f }? tM |= j dL ƒ d" }K |4 d  d  … |K f }L ˆ jf |L |? |O |P ƒ \ }U }V }W }X |Q |U 7}Q |S |W 7}S |R |V 7}R |T |X 7}T q‘W|Q |R |S |T f jg th |Q |R |S |T ƒ ƒ }Y |Y d k r¥dZ d[ g | j _6 q|Y d" k rÆd[ d[ g | j _6 q|Y d k rçdZ dZ g | j _6 q|Y dJ k rd[ dZ g | j _6 qn  | j ji ƒ  y/ | j jj ˆ jk ˆ jl ˆ jm ˆ jn d\ t ƒWnd tZ j\ j] d] ƒ tZ j[ ƒ  dJ  \ }G }H }I tZ j\ j] t^ |G ƒ dK ƒ tZ j\ j] t^ |H ƒ dK ƒ n Xt  |  j d^ ƒ ƒ d k r|  j d^ ƒ d j j ƒ  }Z |Z d	 k sý|Z d k rt" | j _. qn  t  |  j d_ ƒ ƒ d k r~|  j d_ ƒ d j j ƒ  }[ |[ dQ k s^|[ dP k r~| j j d jo jp t ƒ q~n  | S(`   NRM   i    RL   s   polygon|circle|linet   polygonRG  i   R%  Rm  t
   fillcolourt   nonet
   linecolourt   blackR&  t   solidt   circlet   xpost   ypost   radiusR  t   x1t   x2t   y1t   y2Ri  R   R   Rj  Rk  Rl  iÿÿÿÿR"  t   righti   gñhãˆµøä>Rr  R   RÖ   Rg  Rh  RY  RZ  t   rylabelRn  Ro  iô  Rp  Rå  R   R  R  t	   histogramRå   RO   g        g      ð?t   nbinsRé   Rí   Rî   R€   Rì   Rè   Rï   Rê   Rë   Rˆ   RŠ   t   dataidRv  Rw  R¼   t   bluei   s   
R‰   t	   xintegralt	   yintegralRx  Rt  t   0R  R'  R  R)  Rñ   Ry  R(  g       @g333333Ã?g      è?t   redraws!   Failed to apply font preferences
Ru  Rs  (q   R[   RÜ  R�   R\   Rî  Rï  Rð  R^   R%  Rõ   RH  R]   R`   t   hsplitR#   Rè   t   PolygonR  RŒ   RÛ  R4  t   set_edgecolorR  R  R;  t	   add_patchRÉ   t   add_lineR  t   Line2DR  Rc   R`  Ra  R
  R<  Rc  t   raxR&   t   twinxt   custom_rylimt   spinest   get_yticklabelsR[  R\  Rä   Rm  Rq  R   Rr  R    Rs  Rt  Ru  t   initial_legend_positionRg   Rd   Re   t   yaxist   set_major_formatterR   t   xaxisRR  RY  RU  RZ  R`  Râ  Re  Rk  Rª   R«   R¯  R°  RÊ  RÉ  RÑ  R9  R2  R"  R#  R   R8  R  RO  RF  R  R  R  R  R   R  R  R  R   Re  Rf  R†   Rƒ  R  R  R  RD  R  R   Rn  RÑ  R§  R¨  R©  R¦  Rp  R  (\   R“   RŽ   t   ptitleR†   Rd   Re   t   objt   polyRM  RN  RQ  t   circRW  R  R[  R\  R]  R^  R  t   considerFixedAspectR€  R�  t   iaxRj  R„  R…  Rk  t   rhcolt   tlt   xlegpost   ylegposRà  Rn  t   breakst   ibrt   theBreakRp  R  t   theseColourst	   theColourt   theseSymbolst	   theSymbolt   theseSymbolSizest   theSymbolSizet   theseLineSizest   theLineSizet   theseLineStylest   theLineStyleRç  t   histoR€   Rå   RH  t   headR  Rê   Rë   Rì   Rs   Rï   Rè   Rˆ   RŠ   t   ydat2R  R)  R&  Rñ   R%  R&  R'  R)  R*  R+  R(  R‰   R<  Rx  R  R>  R?  R@  RA  RB  RC  t
   nTopLeft_it   nTopRight_it   nBottomLeft_it   nBottomRight_it   legend_pos_idxRu  Rs  (   RJ  RQ   t   theFirstArray(    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   add_plotR  sH   $"B"4"#$
$


&	

# 	†nXb    ##/%/%/""1"111777     " 0
	6K" 0%	%888&N-8-$-*66" $


*/ (   RŒ   RÛ  R\   RÜ  R�   R]   Ra   R&   Rõ   RH  R`   RI  R[   RÛ  Râ  RÕ  RE  R  RÖ  R   Rì  RJ  Rœ  R~  R   R¯  R°  Rz  R^   RQ  (   RQ   RI   RŽ   t   ttitleR„   RK  RL  Rç  Ré  RM  RN  RÕ  R=  RO   R“   Rx  R˜  t
   nullWidget(    (   RJ  RQ   R—  sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR(  3  sF    	>:
ÿ <	c            sR  ˆ  j  j | j ƒ ˆ  j j | j ƒ ˆ  j ƒ  t j ƒ  } | d  k rX | j
 | ƒ n  ˆ  j j | ƒ t j d ƒ } t j d ƒ } d } xF | j D]; } | d j g  | D] } d | ^ q­ ƒ j ƒ  d 7} q– W| | _ | j | ƒ | ˆ  j | <t j d d d ƒ}	 d j g  | j D] } d | ^ qƒ j ƒ  d |	 _ | j |	 ƒ xú | j D]ï }
 t j d	 ƒ } t j d
 ƒ } |
 d | _ | j | ƒ | j | ƒ xX |
 d j d ƒ d D]? } t j d d |
 d j d ƒ d d | ƒ} | j | ƒ q¾W‡  f d †  } t j ƒ  } t j | | | |
 | | ƒ | _ | j | ƒ q[W| S(   NRK   R„   RL   s   %s s   
RO   R…   R   R†   RM   i    i   R‡   Rˆ   R‰   RŠ   c   *         sŒ  t  d | d ƒ } | j ˆ  j ƒ ˆ  j | j t j d ƒ t j ˆ  j	 |  j
 |  j ƒ ƒ ˆ  j | j t j d ƒ t j ˆ  j |  j
 |  j ƒ ƒ ˆ  j | j t j d ƒ t j | j t j d ƒ ƒ ƒ ˆ  j | j t j d ƒ t j | j t j d ƒ ƒ ƒ ˆ  j | j t j d ƒ t j | j t j d ƒ ƒ ƒ xä | d j d ƒ d d !D]È } g  } t | ƒ d } |  j r¢| j j d j |  j ƒ |  j | j _ n1 | j j d j |  j | ƒ |  j | | j _ xC |  j D]8 }	 y |	 | }
 | j |
 ƒ WqÝd	 G|	 G| GHqÝXqÝWqQWd } d  } t | ƒ d
 k rH| d
 } n  g  } g  } xu| d j d ƒ d D]\} | j d ƒ | } g  } t | ƒ d } g  } xo t |  j t t |  j ƒ ƒ ƒ D]L \ }	 } y6 t |	 | ƒ } | j |	 | ƒ | j | | ƒ WqÃqÃXqÃWˆ  j | t ˆ  j ƒ } ˆ  j | t ˆ  j ƒ } yL| j j | | d |  j | d ˆ  j d | d | d ˆ  j ƒ} | j | ƒ | j | ƒ | ˆ  j  | <y× | r‡t | ƒ d
 k r‡| d r‡| d r‡t | d ƒ d
 k r‡t | d ƒ d
 k r‡| d \ } } | d \ } } | j j d j! | | ƒ | j j d j" | | ƒ | | f | j _# | | f | j _$ n  Wn n XWn( d G|	 G| Gt | ƒ Gt | ƒ GHn X| d } qlW|  j r
| j j d j% j& t' |  j ƒ ƒ |  j | j _ n  |  j
 rH| j j d j( j& t' |  j
 ƒ ƒ |  j
 | j _
 n  | j j d j) ƒ  d | j j d j) ƒ  d d } | j j d j* ƒ  d | j j d j* ƒ  d d } d } } } }  xn t t | ƒ ƒ D]Z }! ˆ  j+ | |! | |! | | ƒ \ }" }# }$ }% | |" 7} | |$ 7} | |# 7} |  |% 7}  qÙW| | | |  f j, t- | | | |  ƒ ƒ }& |& d k r‚d d g | j _. nc |& d k r£d d g | j _. nB |& d
 k rÄd d g | j _. n! |& d k råd d g | j _. n  | j j/ ƒ  y/ | j j0 ˆ  j1 ˆ  j2 ˆ  j3 ˆ  j4 d t5 ƒWnd t6 j7 j8 d ƒ t6 j9 ƒ  d  \ }' }( }) t6 j7 j8 t: |' ƒ d ƒ t6 j7 j8 t: |( ƒ d ƒ n X| S(   NRM   i    Rå  R   R  R  i   R‡   t   Errori   Rˆ   Rî   R  R'  R  R)  s   Badly formatted lineg       @g333333Ã?g      è?i   Rh  s!   Failed to apply font preferences
s   
(;   Rî  Rï  Rð  Rª   R  R    R«   R¯  R°  RÊ  Rd   Re   RÉ  RÑ  R]   R9  Rf   R;  RR  RY  RO   RP   R&   R^   R[   RÜ  RÛ  Râ  R`   R2  RF  R†   Rƒ  R`  R<  Ra  Rc  Ru  Rv  R   Rw  R[  R\  RD  R  R   Rt  Rn  RÑ  R§  R¨  R©  R¦  Rc   R   R  R  R  R   (*   Rh   RJ  Rq   RŽ   R“   R†   RH   R  Rå   R  R÷   R  Ru   t   theXValst   theYValsRˆ   R€   t   myxvalst   ilR;   R  R  R  R€  R�  R„  R…  R>  R?  R@  RA  RB  RC  Rç  R’  R“  R”  R•  R–  R)  R*  R+  (   RQ   (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR˜  ²	  s¸    77777!	
.@X%	#	#66,


*/(   RÕ  R&   RN   RE  R  RM   RÖ  R   Rì  R^   Rí  RJ  Rœ  R   R‹   RP   R*   R\   R�   R~  RO   R]   R   R¯  R°  Rz  (   RQ   Rh   RÝ  RJ  RŽ   R�   R�   R‘   Rs   R’   Rq   R“   R”   RH   Rˆ   R˜  Rš  (    (   RQ   sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRH  •	  s@    
9	7,g!c         C   s   t  j d d ƒ S(   Ni   iX  (   R    Rs  (   RQ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   sizeHint 
  s    c         C   se   |  j  j ƒ  d k s* |  j j ƒ  d k rG |  j  j ƒ  |  j j ƒ  n |  j  j ƒ  |  j j ƒ  d  S(   Ni   (   RE  Rã  RF  R¤  t   hide(   RQ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÖ  #
  s
    *c         C   s
	  t  j j |  | ƒ d \ |  _ |  _ |  _ |  _ t  j ƒ  } t  j	 ƒ  } |  j
 | ƒ | j | ƒ t  j ƒ  |  _ t ƒ  } t  j ƒ  |  _ t  j ƒ  |  _ |  j j ƒ  |  j j ƒ  t  j ƒ  } | j |  j ƒ | j |  j ƒ | j |  j ƒ | j | ƒ g  |  _ g  |  _ i  |  _ g  |  _ i  |  _ t  j ƒ  } | j d d d d ƒ | j d ƒ | j d d d d ƒ | j d ƒ | j d d d d ƒ | j d ƒ | j d d d d ƒ | j d ƒ t  j ƒ  |  _ |  j j t ƒ d  |  _ | j |  j ƒ | j  d ƒ | j | ƒ |  j! |  j t" j# d ƒ |  j$ ƒ |  j! |  j t" j# d ƒ |  j% ƒ |  j& d ƒ t  j' d |  ƒ |  _( t  j' d |  ƒ |  _) t  j' d |  ƒ |  _* t  j' d |  ƒ |  _+ t  j' d	 |  ƒ |  _, t  j' d
 |  ƒ |  _- t  j' d |  ƒ |  _. t/ } yû t  j0 ƒ  } t1 t2 d d  ƒ rQt2 j3 }	 t4 j5 j6 t4 j5 j7 |	 d d d ƒ ƒ }
 n6 t4 j5 j6 t4 j5 j7 t4 j5 j8 t9 ƒ d d d d ƒ ƒ }
 t: j: t4 j5 j7 |
 d ƒ ƒ } t; | ƒ d k rÀt } n  x$ | D] } | j< t= | d ƒ ƒ qÇW|  j. j> | ƒ Wn t } d GHn Xt |  _? |  j( j@ t  jA jB ƒ |  j* j@ t  jA jC ƒ |  j! |  j) t" j# d ƒ |  jD ƒ |  j! |  j+ t" j# d ƒ tE jF |  jD t/ t ƒ ƒ |  j! |  j* t" j# d ƒ tE jF |  jD t t/ ƒ ƒ |  j! |  j( t" j# d ƒ |  jG ƒ |  j! |  j- t" j# d ƒ |  jH ƒ |  j! |  j. t" j# d ƒ |  jI ƒ |  j! |  j, t" j# d ƒ |  jJ ƒ t1 t2 d d  ƒ r�t2 j3 }	 t4 j5 jK t4 j5 j7 |	 d d ƒ ƒ } n3 t4 j5 jK t4 j5 j7 t4 j5 j8 t9 ƒ d d d ƒ ƒ } t4 j5 jL | ƒ r |  j( j> t  j0 t4 j5 j7 | d ƒ ƒ ƒ |  j) j> t  j0 t4 j5 j7 | d ƒ ƒ ƒ |  j, j> t  j0 t4 j5 j7 | d ƒ ƒ ƒ |  j- j> t  j0 t4 j5 j7 | d ƒ ƒ ƒ |  j* j> t  j0 t4 j5 j7 | d ƒ ƒ ƒ n  t  j ƒ  |  _M t  j	 ƒ  } t  jN ƒ  } | jO |  j( ƒ t4 j5 jL t4 j5 j7 | d ƒ ƒ s| jP t" jQ jR ƒ t/ |  _? n  | j | ƒ t  jN ƒ  } | jO |  j* ƒ t4 j5 jL t4 j5 j7 | d ƒ ƒ s€| jP t" jQ jR ƒ t/ |  _? n  | j | ƒ t  jN ƒ  } | jO |  j) ƒ t4 j5 jL t4 j5 j7 | d ƒ ƒ sé| jP t" jQ jR ƒ t/ |  _? n  | j | ƒ t  jN ƒ  } | jO |  j- ƒ t4 j5 jL t4 j5 j7 | d ƒ ƒ sR| jP t" jQ jR ƒ t/ |  _? n  | j | ƒ t  jN ƒ  } | jO |  j. ƒ | s | jP t" jQ jR ƒ t/ |  _? n  | j | ƒ |  jM j
 | ƒ | jS d ƒ | j |  jM ƒ | j d d d d ƒ |  jM j ƒ  d |  _T d  S(   Ni    i
   s   currentIndexChanged(int)Rœ   s   Open..s   Save figure..s   Save status..s   Save all figures..s   Preferences..s   Edit legend positions   Edit plot stylet   frozent   qticonst   actionst   edits   ..s   *.pngs   utf-8s   Failed to set edit icons   triggered(bool)RŸ   s   fileopen.svgs   save_picture.svgs   preferences.svgs
   moving.svgs   save_status.svgi   i   i   (   NNNN(U   R   R   Rƒ   R^   R§  R¨  R©  R¦  t   QHBoxLayoutRö  R²  t	   addLayoutRì  RJ  Rî  R™  RE  RF  R¡  Rœ  RÕ  R  R~  R}  Rƒ  t   setContentsMarginst
   setSpacingt
   QStatusBarRÆ  t   setSizeGripEnabledRc   RQ  t
   addSpacingRª   R    R«   RØ  RI  R±   t   QActionR£   R¤   R¥   R¦   R°   R®   R¯   R
  R  t   getattrR   t   _MEIPASSR'   R(   R)   R*   R+   R,   t   globR[   t   addFileRS  t   setIconR³   R¨   R©   t   Opent   SaveR®  R¯  R°  Rc  RB  R>  RÌ  t   abspatht   existst	   actionBart   QToolButtont   setDefaultActionR´   Rµ   t   ToolButtonTextOnlyt
   addStretchRð  (   RQ   R·   Rµ  t
   mainLayoutt	   nullGrapht   comboLayoutR  t   haveEditIcont   icont   basedirt   fbaset   pngsR•  t   icondirt   actionLayoutt
   openButtont   saveStatusButtont
   saveButtont   editLegendButtonR¯   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRƒ   +
  sò    							""	*6			"11""""	'3((((+!!!!c         C   s   |  j  j ƒ  d  S(   N(   R·  R¤  (   RQ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   showActionBar«
  s    i   c         C   s   | |  _  d  S(   N(   Rð  (   RQ   R’  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRï  ®
  s    (6   R–   R—   RA  R  t   markersRF  R  R2  R  R  RN  R    t
   pyqtSignalR9  RÐ  R×  Ræ   RŒ  RÌ  RÐ  R±  Rá  R^   RÑ  R>  RB  Rc   RY  Rc  R”  R®  RÅ  RÉ  RÊ  RI  RØ  Rá  RL  RÜ  RO  RP  R!  RK  RJ  RD  RO  RP  R(  RH  R   RÖ  Rƒ   RÊ  Rï  (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRž   è   sn   !
0		ÿ 	]				ÿ 	c		³e	0				(Þ…X			ÿ c‹		€	Rî  c           B   s;   e  Z d	 d
 d d d d d d „ Z d „  Z d d „ Z RS(   i   iX  id   s   #FFFFFFRL   c   
      C   s®   t  j j |  | ƒ t d | d | d | ƒ } t | d | d | d | ƒ|  _ t  j ƒ  }	 |	 j |  j ƒ |  j |	 ƒ |  j	 t
 j j ƒ |	 j d d d d ƒ d |  _ d  S(	   Nt   figsizeR›  Rí   RM   RT  RV  i    i   (   R   R   Rƒ   R   t   QtMatplotlibCanvasR  Rö  Rœ  R²  t	   setCursorR    Rµ   t   CrossCursorR¨  Rð  (
   RQ   R·   RÍ  R›  Rí   RM   RT  RV  R6  Rµ  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRƒ   ³
  s    !c         C   s   |  j  j | ƒ d  S(   N(   R  t   addPoint(   RQ   t   point(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÑ  ¾
  s    i   c         C   s   | |  _  |  j j | ƒ d  S(   N(   Rð  R  Rï  (   RQ   R’  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRï  Á
  s    	N(   i   iX  (   R–   R—   R^   Rƒ   RÑ  Rï  (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRî  ±
  s   	RÎ  c           B   s  e  Z d  d „ Z d d d d e d „ Z d d 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 e d d d d d d ƒ d d d d d „ Z d „  Z d „  Z d „  Z d „  Z RS(    i   c         C   s   | |  _  d  S(   N(   Rð  (   RQ   R’  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRï  Ç
  s    c         C   s¶  y“ | } | rt | j  d ƒ r+ | d } n d } | j  d ƒ rM | d } n d } t d | d | ƒ }	 |	 |  _ n t d d d d ƒ }	 |	 |  _ Wn d GHn Xy“ | } | r| j  d ƒ rÍ | d } n d } | j  d ƒ rï | d } n d } t d | d | ƒ }	 |	 |  _ n t d d d d ƒ }	 |	 |  _ Wn d GHn Xy“ | } | r¸| j  d ƒ ro| d } n d } | j  d ƒ r‘| d } n d } t d | d | ƒ }	 |	 |  _ n t d d d d ƒ }	 |	 |  _ Wn d GHn Xy“ | } | rZ| j  d ƒ r| d } n d } | j  d ƒ r3| d } n d } t d | d | ƒ }	 |	 |  _ n t d d d d ƒ }	 |	 |  _ Wn d GHn XxÅ |  j | f |  j | f |  j | f |  j | f f D]� \ }
 } | r¿| j  d	 ƒ r | d	 d
 k r |
 j d
 ƒ n |
 j d ƒ | j  d ƒ r<| d d k r<|
 j d ƒ qL|
 j d ƒ q¿q¿W|  j ƒ  |  j	 rt
 |  j	 ƒ d } |  j t | d ƒ j |  j ƒ } |  j t | d ƒ j |  j ƒ } |  j d j |  j ƒ } t
 |  j ƒ rÒ|  j d j |  j ƒ } | j |  j ƒ qÒn¿ |  j r‡t
 |  j ƒ d } |  j d j |  j ƒ } |  j d j |  j ƒ } |  j t | d ƒ j |  j ƒ } nK |  j d j |  j ƒ } |  j d j |  j ƒ } |  j d j |  j ƒ } | j |  j ƒ | j |  j ƒ | j |  j ƒ |  j ƒ  | sd  S|  j t j t j |  j ƒ  |  j ƒ  ƒ t j |  j ƒ  |  j ƒ  ƒ ƒ ƒ |  j t j t j |  j ƒ  |  j ƒ  ƒ t j |  j ƒ  |  j ƒ  ƒ ƒ ƒ |  j ƒ  d  S(   NR=   s   Bitstream Vera SansR’  i
   s   error 1s   error 2s   error 3s   error 4R‘  R”  RÍ  R“  R�  i   g       @i    iÿÿÿÿ(    R_  R   t   legend_fontt
   title_fontt	   axes_fontt
   label_fontt
   set_weightt	   set_slantRn  Ri  R[   R;  R9  RW  RM   RR  RY  RU  RZ  Ro  R`  t   set_fontpropertiesRj  t   set_tick_labels_fontRq  R   Rr  R    Rs  Rt  Ru  R=  (   RQ   R§  R¨  R©  R¦  Rh  RÏ  R=   R’  t   newFontR6   t   nbreaksR”   t	   theXLabelt	   theYLabelt
   theRYLabel(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÑ  Ê
  sÄ    C
	##	&
IIc         C   sû  d } t  |  d ƒ rÑ |  j r( |  j sk |  j r; |  j sk |  j rÑ |  j rÑ t |  j ƒ t |  j ƒ k rÑ |  j rŠ t |  j ƒ d } n d } |  j r¯ t |  j ƒ d } n d } t | ƒ t | ƒ } qÑ n  t } |  j d j ƒ  \ } } t |  j ƒ d k r;|  j d j ƒ  \ }	 }
 | j	 |	 ƒ | j	 |
 ƒ n  g  } g  } x} t
 | | ƒ D]l \ } } | j d ƒ sWt  | d ƒ r�| j t k sÀ| j ƒ  r qÃ| j | ƒ | j | ƒ t } qWqWW| sý|  j d j ƒ  rß|  j d j j t ƒ qßnâ| d  k rŒ| d  k rŒ|  j rQ| d | d t |  j ƒ d | d f |  _ n  |  j d j | | d t d	 t d
 | d | d |  j ƒnS|  j d j ƒ  r-t  |  j d j ƒ  j ƒ  j ƒ  d f rBt |  j d j ƒ  j ƒ  j ƒ  j ƒ rB|  j d j ƒ  j ƒ  j ƒ  j d ƒ |  j d j ƒ  j ƒ  j ƒ  j d ƒ f } n# |  j d j ƒ  j ƒ  j ƒ  d } |  j d j ƒ  j j j ƒ  j | | d | d f ƒ } | d | d f |  _ |  j rò| d | d t |  j ƒ d | d f |  _ n  |  j d j | | d t d	 t d |  j d
 d d | ƒn² |  j d j | | d t d	 t d |  j d
 d d |  j ƒ|  j rß| d t |  j ƒ d |  j d |  j d f } |  j d j | | d t d	 t d |  j d
 d d | ƒn  |  j |  _ |  j  |  _! d  S(   Ng      ð?t
   old_xbreaki   i    Rð   R  gÍÌÌÌÌÌô?t   fancyboxt   shadowt   loct   bbox_to_anchort   propt   items
   lower left("   R	  Rà  Ri  R[   R`   Rc   R;  t   get_legend_handles_labelsRo  t   extendRÛ  Rÿ   R  R
  Rõ  R&   Ro  Rp  R  R^   Rq  Rn  RÓ  t   get_bbox_to_anchort
   get_pointst   callableRæ  R·   t	   transAxest   invertedt   transform_pointRt  Rj  t
   old_ybreak(   RQ   Rã  Rä  t   xratiot   naxt   naxoldR  t   handlest   labelst   rhandlest   rlabelst   leg_handlest
   leg_labelst   handleRî   t   points(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRn  E  s^    V		+	3;PS#:	3;;	3;c         C   s2   | j  ƒ  t j j k r. t |  _ |  j ƒ  n  d  S(   N(   R   R    Rµ   t
   Key_EscapeRc   R?  RÏ  (   RQ   R  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   keyPressEvent~  s    	c         C   s,   t  j | j ƒ  ƒ |  _ t j |  | ƒ d  S(   N(   R    t   QPointR   t   mouseDownPost   FigureCanvast   mousePressEvent(   RQ   R  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   ƒ  s    c         C   sZ  t  j | j ƒ  ƒ |  _ t j |  | ƒ |  j ƒ  |  j j ƒ  |  j j ƒ  k rV|  j	 d j
 ƒ  } |  j ƒ  t |  j ƒ |  j } t |  j j ƒ  ƒ t |  j ƒ |  j ƒ  | } | | d | d | d } t |  j j ƒ  ƒ t |  j ƒ |  j ƒ  | } | | d | d | d } |  j t  j d ƒ i |  j ƒ  d 6| d 6| d 6ƒ n  d  S(   Ni    i   R  t
   plotwidgetR[  R\  (   R    Rý  R   t
   mouseUpPosRÿ  t   mouseReleaseEventRÏ  Rþ  R   R;  R[  Rt  R`   R_  t   leftRÑ  R«   R·   (   RQ   R  t   xlimt   figWidtht   xpR[  R\  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR  ‡  s    
 00c         C   sO   | j  ƒ  t j j @r1 t j | j ƒ  ƒ |  _ n  t j |  | ƒ |  j	 ƒ  d  S(   N(
   t   buttonsR    Rµ   t
   LeftButtonRý  R   R  Rÿ  t   mouseMoveEventRÏ  (   RQ   R  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR
  –  s    c         C   sÅ  |  j  d k r t j |  | ƒ S|  j ƒ  d k rF d |  _ d |  _ n|  j sX |  j r½ t j	 t
 t j t j t j t |  j j ƒ  d d ƒ ƒ |  j j ƒ  ƒ ƒ j ƒ  ƒ |  j d ƒ } n  |  j rä d |  j ƒ  d | |  _ n d |  j ƒ  d |  _ d d	 |  j ƒ  d |  _ t |  d
 ƒ rR|  j rR|  j d	 |  j ƒ  d | 8_ n  |  j ƒ  d k ryd |  _ d	 |  _ næ |  j rt j	 t
 t j t j t j t |  j j ƒ  d d ƒ ƒ |  j j ƒ  ƒ ƒ j ƒ  ƒ |  j d ƒ } d d |  j ƒ  d | |  _ n d d |  j ƒ  d |  _ |  j rHd |  j ƒ  d | |  _ n d	 |  j ƒ  d |  _ t j	 t
 t j t j t j t |  j j ƒ  d d ƒ ƒ |  j j ƒ  ƒ ƒ j ƒ  ƒ |  j d ƒ d } |  j d |  j ƒ  d | 7_ |  j d |  j ƒ  d | 7_ t |  j ƒ d k rL|  j d |  j j ƒ  |  j |  j ƒ  8_ n  |  j ri|  j ƒ  d k ri|  j ƒ  d k ri|  j ƒ  |  j ƒ  k r¨d |  j |  j d |  j ƒ  |  j ƒ  } t
 |  j ƒ  ƒ |  j ƒ  d d t
 |  j ƒ  ƒ |  j ƒ  } | |  _ d | |  _ |  j d |  j |  j d |  j ƒ  |  j ƒ  7_ |  j d |  j |  j d |  j ƒ  |  j ƒ  8_ |  j rf|  j | 7_ |  j | 7_ qfqit
 |  j ƒ  ƒ |  j ƒ  d d t
 |  j ƒ  ƒ |  j ƒ  } | |  _ d | |  _ |  j d |  j |  j d |  j ƒ  |  j ƒ  7_ |  j d |  j |  j d |  j ƒ  |  j ƒ  8_ n  |  j |  j k rŽ|  j d |  _ n  |  j |  j k r³|  j d |  _ n  |  j  j! |  j |  j |  j |  j ƒ |  j" rüt |  j" ƒ d } |  j# d j$ d |  j d |  j |  j t
 | ƒ d |  j% d |  j d |  j d d ƒ xct& d t |  j# ƒ ƒ D]‘ } |  j# | j$ d | |  j |  j t
 | ƒ d |  j% d t' |  j | d |  j |  j t
 | ƒ d |  j% ƒ d |  j d |  j d d ƒ qdWnµ|  j( rvt |  j( ƒ d } | d |  j |  j t
 | ƒ d |  j% }	 |	 |  j k rd|  j d }	 n  |  j# d j$ d |  j d |  j d |  j d |	 d d ƒ xt& d t |  j# ƒ ƒ D]º } t) |  j | d |  j |  j t
 | ƒ d |  j% ƒ }	 | |  j |  j t
 | ƒ d |  j% }
 |	 |
 k r6|
 d }	 n  |  j# | | j$ d |  j d |  j d |
 d |	 d d ƒ qµWn; |  j# d j$ d |  j d |  j d |  j d |  j d d ƒ t j |  | ƒ d  S(   NRë  i    g333333Ó?i   s   utf-8g333333ã?g      i@gš™™™™™É?gš™™™™™¹?R`  gffffffî?g333333Ã?gš™™™™™©?g      ð?i2   i   gü©ñÒMbP?R  R_  g      à?t   topt   bottomt   wspaceg        (*   Rö  Rÿ  Rq  Rt  R  R_  RZ  RY  R   R   R`   R   t   QFontMetricst   QFontR    R­  RS  RÖ  t
   get_familyt   get_sizeRu  t   defaultTextHeightR	  R`  R  R  RM   RÔ  RÕ  R[   Ro  Rm  R6  t   subplots_adjustRi  RV  t   updatet	   breaksizeRâ  R   Rj  R   (   RQ   R  t   labelFontscalet	   fontscalet   axesFontscaleRü  t   ratioRÜ  Rç  R  R  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRq  œ  sˆ    	e	$		b"	f!!0-,>	55	>	58%	W’	-89)@;c         C   s×  t  j |  | ƒ t j |  ƒ } | j t j j ƒ |  j |  j	 ƒ  j
 ƒ  ƒ } t |  d ƒ rjt |  d ƒ rj|  j j ƒ  |  j j ƒ  k rj|  j j ƒ  |  j j ƒ  k  r=| j |  j j ƒ  d |  j |  j ƒ  |  j j ƒ  |  j j ƒ  d |  j |  j ƒ  d |  j |  j ƒ  t j t j d d d d ƒ t j j ƒ ƒ n“ | j |  j j ƒ  d |  j |  j ƒ  |  j j ƒ  |  j j ƒ  d |  j |  j ƒ  d |  j |  j ƒ  t j t j d d d d ƒ t j j ƒ ƒ | j |  j j ƒ  d |  j |  j ƒ  |  j j ƒ  d |  j |  j ƒ  ƒ | j |  j j ƒ  d |  j |  j ƒ  |  j j ƒ  d |  j |  j ƒ  ƒ qjn  |  j t k rÌ|  j d j ƒ  rÀ|  j d j ƒ  j ƒ  } | j |  j d j ƒ  j j j ƒ  ƒ } | j | j ƒ  | j  ƒ  | j ƒ  | j! | j  ƒ  ƒ | j | j ƒ  | j  ƒ  | j | j ƒ  | j! | j  ƒ  | j ƒ | j | j ƒ  | j  ƒ  | j ƒ  | j  ƒ  | j ƒ | j | j ƒ  | j! | j  ƒ  | j ƒ  | j! | j  ƒ  | j ƒ qÓt" |  _ n| j ƒ  |  j# |  j! ƒ  k rÓ| j ƒ  |  j$ |  j! ƒ  k  rÓ| j  ƒ  d |  j |  j ƒ  k rÓ| j  ƒ  d |  j |  j ƒ  k  rÓ| j | j ƒ  d |  j |  j ƒ  | j ƒ  d |  j |  j ƒ  ƒ | j |  j# |  j! ƒ  | j  ƒ  |  j$ |  j! ƒ  | j  ƒ  ƒ n  d  S(   NRþ  R  i   i€   iÿ   i<   i    (%   Rÿ  t
   paintEventR   t   QPaintert   setPenR    Rµ   Rd  t   mapFromGlobalt   cursorR   R	  Rþ  R   R  t   fillRectR  Ru  R  t   QBrushR  t   SolidPatternt   drawLineR?  R
  R;  Ro  t   get_window_extentt   transformedRy  Rì  Rí  RÖ   Rt  Rc   R  R_  (   RQ   R  t   painterR   t   bboxt   bbox2(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR  ì  s.    –“JP(5C5F„Dc         C   sƒ   | j  ƒ  } t j d d g ƒ | _ xN | D]F } t | d ƒ s+ t j | j ƒ  ƒ j } | j j	 | d t
 ƒq+ q+ W| j ƒ  d  S(   Ni   i    R
   (   i   i   (   i    i    (   R>  t   mtransformst   Bboxt   dataLimR	  Rõ   t   vstackt   get_datat   Tt   update_from_data_xyRc   t   autoscale_view(   RQ   R;  R  R  t   xy(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   autoscale_based_on
  s    c         O   sú  |  j  } | j d ƒ r< | j d ƒ } | r< |  j } q< n  |  j ƒ  | d j t ƒ | sc | r| | d j | | Ž  } n d  } |  j	 s” |  j
 r² | d j t ƒ |  j ƒ  n  |  j | d ƒ | d j t ƒ |  j rô | d j |  j ƒ n  |  j r#| |  j k r#| d j |  j ƒ n  |  j rR| |  j k	 rR| d j |  j ƒ n  x¬| d j ƒ  D]š} t | d ƒ sct | d ƒ sùt j d k r·d d  l } | j ƒ  j ƒ  } n6 d d  l }	 |	 j ƒ  j d ƒ j d ƒ j d	 d
 ƒ } | | _ n  x| d D]ò }
 xé |
 j ƒ  D]1 } t | d ƒ r| j | j k rt } PqqWt j  j! | j" ƒ  | j# ƒ  d | j$ ƒ  d | j% ƒ  d | j& ƒ  d | j' ƒ  d | j( ƒ  d | j) ƒ  d | j* ƒ  ƒ} | j+ ƒ  sÝ| j, d ƒ n  |
 j- | ƒ | j | _ qWqcqcW| d j. ƒ  } | d j/ ƒ  } | d | d } | d | d } x> | D]6 } | j | d | d ƒ | j | d | d ƒ qLW|  j	 rž| d j | d |  j	 d d ƒ t0 |  j	 ƒ } x˜ t1 | d ƒ D]† } | | d j |  j	 | d |  j	 | d d ƒ | | d j | d | d ƒ t2 ƒ  } | j3 d ƒ | | d j4 j5 | ƒ qÒW| d j |  j	 d d | d ƒ | d j | d | d ƒ nò |  j
 r�| d j | d |  j
 d d ƒ t0 |  j
 ƒ } xr t1 | d ƒ D]` } | | | d j |  j
 | d |  j
 | d d ƒ | | | d j | d | d ƒ qêW| d j |  j
 d d | d ƒ | d j | d | d ƒ n  d } |  j	 r¹| t0 |  j	 ƒ d 8} n  d } |  j
 râ| t0 |  j
 ƒ d 8} n  |  j6 rø| d 7} n  |  j7 r| d 7} n  t8 | d ƒ } t8 | d ƒ } x~ | D]v } | j4 j9 t j: j; | d |  j6 ƒƒ | j4 j< ƒ  j= ƒ  | j> j9 t j: j; | d |  j7 ƒƒ | j> j< ƒ  j= ƒ  q3WxX | D]P } |  j? rß| j4 j5 t@ |  j? ƒ ƒ n  |  jA r´| j> j5 t@ |  jA ƒ ƒ q´q´W|  j	 r|  j r| d j. ƒ  \ } } | d j |  j d | ƒ | d j. ƒ  \ } } | d j | |  j d ƒ nw |  j
 rö|  j rö| d j/ ƒ  \ } } | d j | |  j d ƒ | d j/ ƒ  \ } } | d j |  j d | ƒ n  | S(   NRk  i    R
   Rý   Rë  iÿÿÿÿRì  Rí  R¼   RL   i   Rñ   R&  R  R)  R'  Rî   R  i   t   integer(B   R;  R_  RÞ  Ro  t   remove_break_lines_xt   set_autoscale_onR
  R†   R^   Ri  Rj  Rc   t   show_break_linesR1  Ra  R`  Rq  R<  Rc  R>  R	  R   Rø  Rù  Rü  Rý  Rþ  Rÿ  R\   Ra   Rý   R#   R  Rn  R  R  R  R  R
  R  R	  Rþ   t
   get_pickerRõ  R  Rm  R[  R\  R[   Râ  R   t   set_useOffsetRw  Rv  Re  Rf  R   t   set_major_locatort   tickert   MaxNLocatort   get_major_locatort   refreshRu  Rd   R   Re   (   RQ   Rø   t   kwargst   axisRk  R  R  Rù  R!  Rþ  t   theAxist   l2tt   haveThisR!  t   theXLimt   theYLimt	   theXRanget	   theYRangeR;  RÜ  Rç  t   fmtt   xtickst   yticksR€  R�  R„  R…  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR†     sÈ    	
	 *!6?	#2 	#	#6(#			 	 %%	 	  c         C   s<   x, |  j  D]! } x | D] } | j ƒ  q Wq
 Wg  |  _  d  S(   N(   t   diagsR‚  (   RQ   t   diagR  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR3  �  s    c         C   sî  d } |  j  ƒ  |  j rÿt d |  j d j d d d t ƒ } |  j j |  j d j d | d | f | | f | � ƒ t	 |  j d d _
 |  j j |  j d j d | d | f d | d | f | � ƒ t	 |  j d d _
 t d |  j d j d d d t ƒ } |  j j |  j d j | | 
f | | f | � ƒ t	 |  j d d _
 |  j j |  j d j | | 
f d | d | f | � ƒ t	 |  j d d _
 xF|  j d d !D]F} t d | j d d d t ƒ } |  j j | j d | d | f | | f | � ƒ t	 |  j d d _
 |  j j | j d | d | f d | d | f | � ƒ t	 |  j d d _
 |  j j | j | | 
f | | f | � ƒ t	 |  j d d _
 |  j j | j | | 
f d | d | f | � ƒ t	 |  j d d _
 q²Wnë|  j rêt d |  j d j d d d t ƒ } |  j j |  j d j d | d | f | | f | � ƒ t	 |  j d d _
 |  j j |  j d j | | f | | f | � ƒ t	 |  j d d _
 t d |  j d j d d d t ƒ } |  j j |  j d j d | d | f d | d | f | � ƒ t	 |  j d d _
 |  j j |  j d j | | f d | d | f | � ƒ t	 |  j d d _
 xY|  j d d !D]D} t d | j d d d t ƒ } |  j j | j d | d | f d | d | f | � ƒ t	 |  j d d _
 |  j j | j d | d | f | | f | � ƒ t	 |  j d d _
 |  j j | j | | f d | d | f | � ƒ t	 |  j d d _
 |  j j | j | | f | | f | � ƒ t	 |  j d d _
 qŸWn  d  S(	   Ng¸…ëQ¸Ž?t	   transformi    R  R×   t   clip_oni   iÿÿÿÿ(   R3  Ri  RÈ  R;  Rì  Rc   RI  R&   R†   R
  R
   Rj  (   RQ   RÃ   R=  R;  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR5  –  sX    
	%;B%5<4;.5	%;4%B;;44-c         O   s   |  j  d j | | Ž  S(   Ni    (   R;  R8  (   RQ   Rø   R=  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR8  Ä  s    c         C   sƒ  | |  _  | |  _ d |  _ x% |  j d D] } |  j j | ƒ q) W|  j d g |  _ |  j d g |  _ |  j d j d |  j d |  j	 d |  j
 d |  j d d	 ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d
 d ƒ |  j d j d d ƒ t |  j ƒ d k rô|  j d j ƒ  d j ƒ  } |  j d j ƒ  } |  j d j d ƒ x� t t |  j ƒ ƒ D]v } |  j | j d j t ƒ |  j | j d j t ƒ |  j | j d d d d ƒ |  j | j d
 d d d ƒ qwWn  x� t t |  j ƒ ƒ D]v } |  j | j d j t ƒ |  j | j d j t ƒ |  j | j d d d d ƒ |  j | j d
 d d d ƒ q
W|  j  rÒt |  j  ƒ d } |  j d j d |  j d |  j |  j	 t | ƒ d |  j d |  j
 d |  j d d	 ƒ x÷t d | ƒ D]æ} |  j j t j d d ƒ ƒ |  j | j d | |  j |  j	 t | ƒ d |  j d t |  j	 | d |  j |  j	 t | ƒ d |  j ƒ d |  j
 d |  j d d	 ƒ |  j j |  j j |  j | ƒ ƒ |  j | j d j t ƒ |  j | j d j t ƒ |  j | j d d d d ƒ |  j | j d
 d d d ƒ t |  j ƒ d k r|  j j |  j d j ƒ  ƒ |  j | j d j t ƒ |  j | j d j t ƒ |  j | j d d d d ƒ |  j | j d
 d d d ƒ qqW|  j d j d ƒ |  j d j  d ƒ |  j t! | d ƒ j |  j" ƒ } | j# |  j$ ƒ | d d k rl| j% d ƒ n  |  j t! | d ƒ j  |  j& ƒ } | j# |  j' ƒ | d d k r¿| j% d ƒ n  |  j d j( j) ƒ  |  j d j( j* ƒ  |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d
 d ƒ x^ t d t |  j ƒ d ƒ D]@ } |  j | j d
 d d d ƒ |  j | j d d d d ƒ qlWt |  j ƒ d k r|  j d j( j* ƒ  |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d
 d ƒ |  j d j d
 d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d j+ | ƒ |  j d j d j+ | ƒ x( |  j d j ƒ  D] }	 |	 j+ | ƒ qGW|  j d j d ƒ t, |  d ƒ r¸t |  j- ƒ d k r¸|  j d j |  j- d | ƒ} n  |  j d j. | ƒ qn>|  j r0t |  j ƒ d } |  j d j/ ƒ  }
 |  j d j |
 ƒ } |  j d j d |  j d |  j	 d |  j
 d | d |  j
 |  j t | ƒ d |  j d d	 ƒ xW t d | ƒ D]F } |  j j t j d d ƒ ƒ |  j j |  j j |  j | ƒ ƒ q†	Wx&t d | ƒ D]} |  j | | j d |  j d |  j	 d | |  j
 |  j t | ƒ d |  j d t0 |  j | d |  j
 |  j t | ƒ d |  j ƒ d d	 ƒ |  j | | j d j t ƒ |  j | | j d j t ƒ |  j | | j d d d d ƒ |  j | | j d d d d ƒ qà	W|  j d j d ƒ |  j t! | d ƒ j |  j1 ƒ } | j# |  j' ƒ | d d k r`| j% d ƒ n  |  j d j  |  j& ƒ } |  j d j  d ƒ | j# |  j' ƒ |  j d j2 j3 ƒ  |  j d j2 j4 ƒ  |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d d ƒ nà|  j d j  |  j& ƒ } | j# |  j' ƒ |  j d j( j) ƒ  |  j d j( j* ƒ  |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d d d d ƒ |  j d j d
 d d d ƒ t |  j ƒ d k r|  j d j( j* ƒ  |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d j t ƒ |  j d j d
 d ƒ |  j d j d
 d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d d ƒ |  j d j d j+ | ƒ |  j d j d j+ | ƒ x( |  j d j ƒ  D] }	 |	 j+ | ƒ qˆW|  j d j d ƒ t, |  d ƒ rùt |  j- ƒ d k rù|  j d j |  j- d | ƒ} n  |  j d j. | ƒ n  |  j d j5 d ƒ t |  j ƒ d k rP|  j d j5 d ƒ n  |  j j6 |  j |  j |  j	 |  j
 ƒ |  j7 ƒ  d  S(   Ng{®Gáz”?i   i    R  R_  R  R  R  g        t
   labelrightt   offt   labelbottomt   oniÿÿÿÿRL   t	   labelleftg      à?g       @i   R`  R  t   labeltopiè  ié  (   i    i   (   i    i   (   i    i   (8   Ri  Rj  R  R;  R6  t   delaxesRV  R  R  R_  R  R  Rr  R  R
  t   tick_paramsR[   Ro  Rs  R
  R\  RU  Râ  Rc   R`   R&   t   gridspect   GridSpecR   t   add_subplotRp  RW  RR  R9  RM   RÙ  RÔ  t   set_positionRY  RÖ  Ru  t	   tick_leftt
   tick_rightR  R	  R`  R<  t	   get_titleR   RZ  Rw  t   tick_topt   tick_bottomt
   set_zorderR  RÚ  (   RQ   Ri  Rj  R;  t   rcoltickt   ryrangeRç  RÜ  Rà  R  RM   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRk  Ç  s(   			;$!	W‹$$###!$"	_(�!%#$"%c         C   sÆ   g  } g  } x7 |  j  D], } | j | j ƒ  ƒ | j | j ƒ  ƒ q Wx7 |  j D], } | j | j ƒ  ƒ | j | j ƒ  ƒ qP Wx | D] } | j |  j ƒ q‡ Wx | D] } | j |  j ƒ q¨ Wd  S(   N(   R;  Rè  t   get_xticklabelsRs  Ro  RÙ  RÕ  (   RQ   t   labels_xt   labels_yR;  RY  RZ  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÚ  w  s    RÍ  i   iX  R›  i,  Rí   s   #FFFFFFRL   c         C   s   | |  _  t j |  | ƒ |  j t j j ƒ d |  _ g  |  _ d  |  _
 d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ t |  _ d d g |  _ t j d d ƒ g |  _ |  j  j |  j d ƒ g |  _ g  |  _ t j t j d d ƒ ƒ j ƒ  |  _ d |  _ d |  _  d |  _! d	 |  _" t |  _# t |  _$ t% d
 d d d ƒ } | j& ƒ  |  _' | j& ƒ  |  _( | j& ƒ  |  _) | j& ƒ  |  _* | |  _+ | |  _, | |  _- |  j d j. |  j+ d |  j' ƒ} |  j d j/ | d |  j( ƒ|  j d j0 | d |  j( ƒ|  j d j1 t2 ƒ |  j3 t2 ƒ |  j4 d |  j5 ƒ |  j4 d |  j6 ƒ |  j4 d |  j7 ƒ t |  _8 |  j  j9 |  j  |  j! |  j" |  j ƒ |  j: ƒ  d |  _; t |  _< d  S(   NR0  g      è?i   i    s   Bitstream Vera Sansi
   gffffffî?gš™™™™™¹?g
×£p=
ï?R=   R’  t   fontpropertiest   button_press_eventt   motion_notify_eventt
   pick_eventi   (=   R6  Rÿ  Rƒ   t   setFocusPolicyR    Rµ   t   StrongFocusRö  RI  R^   Ri  Rj  Rd   Re   Ra  Rc  Rq  Rc   Rm  Rt  RU  RV  RV  RW  R;  Ro  R   R  R  Ru  R  R  R  R  R_  Re  Rf  R   R€  RÔ  RÖ  RÕ  RÓ  RM   RY  RZ  RW  RU  RR  t   holdR
  t   setMouseTrackingt   mpl_connectt   onClickt   onMovet   onpickR?  R  RÚ  Rð  t   _painted(   RQ   R6  RM   RT  RV  R·   R7  Rà  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRƒ   ‡  sZ    											 	$									"	%
	c         C   sò  y—t  | d ƒ r | j } n t  | d ƒ r9 | j } n  t | j ƒ } t | j ƒ } t |  j ƒ d k r|  j d j ƒ  d | j |  j d j ƒ  d |  j d j ƒ  d } |  j	 d j ƒ  d | |  j	 d j ƒ  d |  j	 d j ƒ  d } |  j
 t j d ƒ | j | f ƒ n% |  j
 t j d ƒ | j | j f ƒ t |  j ƒ d k r&|  j j | ƒ } |  j	 d j ƒ  } |  j	 d j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 |  j t |	 d |	 d ƒ |  j ƒ  } xà | D]Ø } t | ƒ t j j k ré| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |
 k  rÁt | | | ƒ | k  rÁ|  j
 t j d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d	 6| | d
 6ƒ qÁqéqéW|  j d j ƒ  } |  j d j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 |  j t |	 d |	 d ƒ |  j ƒ  } xV| D]Û } t | ƒ t j j k rD| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |
 k  rt | j | | ƒ | k  r|  j
 t j d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d	 6| | d
 6ƒ qqDqDWnp|  j j | ƒ } |  j	 d j ƒ  } |  j	 d j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 |  j t |	 d |	 d ƒ |  j ƒ  } xã | D]Û } t | ƒ t j j k r·| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |
 k  r’t | j | | ƒ | k  r’|  j
 t j d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d	 6| | d
 6ƒ q’q·q·WWnT t j ƒ  d  \ } } } t j  j! t" | ƒ d ƒ t j  j! t" | ƒ d ƒ n Xd  S(   Nt
   mouseeventt	   lasteventi    i   Rå  R  R  Rî   R   RÖ   i   s   
(#   R	  Rq  Rr  R`   R<  R=  R[   Ro  R\  R;  RÑ  R    R«   R6  t   hitlistR[  Rð  Rä   Rt  Ru  RÝ  R#   R  Rn  R  R  Rõ   t   argminR·   Rþ   R   R  R  R  R   (   RQ   R  Rq  t   dumXt   dumYt   yfract   ydatalt   hlR  t   ylimt   xtolt   ytolt   hitR<  R=  t   x_idxR)  R*  R+  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRo  Ç  sh    HE%%))7S)):V)):Wc         C   so  yat  | j ƒ } t  | j ƒ } t |  j ƒ d k rè |  j d j ƒ  d | j |  j d j ƒ  d |  j d j ƒ  d } |  j d j ƒ  d | |  j d j ƒ  d |  j d j ƒ  d } |  j t j	 d ƒ | j | f ƒ n% |  j t j	 d ƒ | j | j f ƒ t |  j ƒ d k rð|  j
 j | ƒ } |  j d j ƒ  } |  j d j ƒ  } |  j t | d | d ƒ |  j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 xà | D]Ø } t | ƒ t j j k r³| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |	 k  r‹t | | | ƒ |
 k  r‹|  j t j	 d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d 6| | d 6ƒ q‹q³q³W|  j d j ƒ  } |  j d j ƒ  } |  j t | d | d ƒ |  j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 xV| D]Û } t | ƒ t j j k r| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |	 k  rét | j | | ƒ |
 k  ré|  j t j	 d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d 6| | d 6ƒ qéqqWnp|  j
 j | ƒ } |  j d j ƒ  } |  j d j ƒ  } |  j t | d | d ƒ |  j ƒ  }	 |  j t | d | d ƒ |  j ƒ  }
 xã | D]Û } t | ƒ t j j k r�| j ƒ  } | j ƒ  } t j | | j ƒ j ƒ  } t | j | | ƒ |	 k  r\t | j | | ƒ |
 k  r\|  j t j	 d ƒ i |  j ƒ  d 6| j ƒ  d 6| | d 6| | d 6ƒ q\q�q�WWn n Xd  S(	   Ni    i   Rå  R   R  Rî   R   RÖ   (   R`   R<  R=  R[   Ro  R\  R;  RÑ  R    R«   R6  Rs  R[  Rð  Rä   Rt  Ru  RÝ  R#   R  Rn  R  R  Rõ   Rt  R·   Rþ   (   RQ   R  Ru  Rv  Rw  Rx  Ry  R  Rz  R{  R|  R}  R<  R=  R~  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRn    s\    HE%%))7S)):V)):Wc         C   sÉ   |  j  t k rŒ t |  _  yN |  j d j ƒ  j j j ƒ  j | j	 | j
 f ƒ } |  j d d d | ƒ Wn d GHn X|  j ƒ  |  j ƒ  n  y/ t | j ƒ } t | j ƒ } |  j | ƒ Wn n Xd  S(   Ni    Rã  s
   lower leftRä  s   Failed to move legend(   R?  R
  Rc   R;  Ro  R·   Rì  Rí  Rî  R   RÖ   Rn  R=  RÏ  R`   R<  R=  Ro  (   RQ   t   eventRã  Ru  Rv  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRm  O  s    	4	
c         C   s-   | \ } } |  j  | | d ƒ |  j ƒ  d  S(   NRÂ   (   R†   R=  (   RQ   RÒ  R   RÖ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÑ  a  s    N(   i   iX  (   R–   R—   Rï  R^   R
  RÑ  Rn  Rü  R   R  R
  Rq  R  R1  R†   R3  R5  R8  Rk  RÚ  R   Rƒ   Ro  Rn  Rm  RÑ  (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRÎ  Å
  s*   {9					P				}		.		°	-@	O	9	t   MyCanvasc           B   s5   e  Z e d  d	 d d d d ƒ d
 d „ Z d „  Z RS(   RÍ  i   iX  R›  i,  Rí   s   #FFFFFFc         C   s   t  j |  | | ƒ d  S(   N(   RÎ  Rƒ   (   RQ   R6  R·   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyRƒ   g  s    c   
      C   sc  |  j  d j ƒ  } |  j ƒ  t |  j ƒ |  j } t | j ƒ  j ƒ  ƒ t |  j ƒ |  j ƒ  | } | | d | d | d } |  j  d j ƒ  } |  j	 ƒ  t |  j
 ƒ |  j } |  j	 ƒ  t | j ƒ  j ƒ  ƒ t |  j ƒ |  j	 ƒ  | } | | d | d | d }	 |  j | |	 d ƒ |  j ƒ  |  j j d ƒ |  j j d ƒ |  j j d ƒ d  S(   Ni    i   RÂ   s
   figure.pngs	   figure.pss
   figure.pdf(   R;  R[  Rt  R`   R_  R  R   R   R\  Ru  R  R  RÖ   R†   R=  R6  R£  (
   RQ   R  R  R  R  R   Rz  t	   figHeightt   ypRÖ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR   j  s     3 =
(   i   iX  N(   R–   R—   R   R^   Rƒ   R   (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyR€  f  s   $c         C   sŒ   |  |  j  d ƒ j d ƒ } g  } g  } t j d ƒ } xN | d D]B } d | } | j | ƒ t | ƒ } | j ƒ  } | j | ƒ qB W| S(   Ns   $TABLERe  i   (   RZ   R]   R   R‹   R&   RK   R•   (   RÒ   RT  RU  RV  t   bigtreeRW  Rh   RI   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   CCP4LogToEtree{  s    
c         C   sõ   |  |  j  d ƒ j d ƒ } g  } g  } d } d } | | 7} i d d 6} | d } d | } t j d d | d	 i d
 | 6ƒ}	 xN | d D]B }
 d |
 }
 | j |
 ƒ t |
 ƒ } | j ƒ  } |	 j | ƒ qŒ W| t j |	 d d d t ƒ7} | S(   Ns   $TABLERL   s(   <?xml version="1.0" encoding="UTF-8" ?>
s)   http://www.w3.org/2001/XMLSchema-instanceRd  s   {%s}noNamespaceSchemaLocationRe  Rf  RŒ   sG   http://www.ysbl.york.ac.uk/~mcnicholas/schema/CCP4ApplicationOutput.xsdi   R{  s   utf-8R|  (	   RZ   R]   R   R‹   R&   RK   R•   R„  R
  (   RÒ   RT  RU  RV  R…  R†  R‡  Rˆ  R‰  Rƒ  RW  Rh   RI   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   CCP4LogToXML‰  s$    


"
c         C   sX   |  j  d ƒ s |  j  d ƒ rJ t |  ƒ } | j ƒ  } | j ƒ  t | ƒ St d ƒ Sd  S(   Ns   .logs   .txtRL   (   Rÿ   RA   RB   RC   R…  (   R;   t   foRÒ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   CCP4LogFileNameToXML   s    

c         C   sX   |  j  d ƒ s |  j  d ƒ rJ t |  ƒ } | j ƒ  } | j ƒ  t | ƒ St d ƒ Sd  S(   Ns   .logs   .txtRL   (   Rÿ   RA   RB   RC   R„  (   R;   R†  RÒ   (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   CCP4LogFileNameToEtree©  s    

t   __main__s   -quitR¢  t   qt4_pluginss   ..t	   QtPluginsc         K   s   d G|  G| GHd  S(   Ns   Region VALS(    (   R€   R=  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt
   regionTestÌ  s    c         K   s   d G|  G| GHd  S(   Ns
   Click VALS(    (   R€   R=  (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt	   clickTestÏ  s    i   s   hnx:R8  t	   nomainwint   testlas   xsd=s   select=i   s   -hs   --hists   -ns   --testlas   --nomainwins   -xs   --xsds   -ss   --selectt   [t   ]R‡   t   'R  s   unhandled option: i    RC  R  R  c          C   sø  d d  l  }  t j ƒ  j d ƒ } xl | r� | r$ t | d ƒ rg | j ƒ  d  k	 rg |  j | j ƒ  ƒ n  |  j | ƒ t j ƒ  j d ƒ } q$ q$ Wt j	 rôt j	 j
 ƒ  rôt j	 j
 ƒ  j
 ƒ  rôt j	 j
 ƒ  j
 ƒ  } t | d ƒ rô| j rôt | j d ƒ rñ| j j rñt | j j j ƒ  ƒ d k rî| j j j ƒ  d j ƒ  } g  | D] } t | d ƒ sI| ^ qI} x~ | D]s } t j | j ƒ  ƒ } | j ƒ  r¨| j t ƒ n  t j ƒ  j | ƒ | j j | j ƒ | j j | j j ƒ qqWqîqñqôn  d  S(   Niÿÿÿÿi    Rä  R  R6  R
   (   t   sipt   selectorWidgetRµ  t   takeAtR	  Rä  R^   t   deletet   winRJ  R1  R  R6  R[   R7  R>  R   R   Rþ   Rõ  Rª  R
  Rœ  t   stateChangedRª   R  R=  (   R“  t   childt   currentGraphR  R  t   cb(    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   drawLineSelector  s,    	!-(RD  (q   t   __doc__R   R'   R   R°  R¯  RM  R€  t   PyQt4R    R   t"   matplotlib.backends.backend_qt4aggR   Rÿ  t   matplotlib.figureR   t   matplotlib.tickerR   R   t   matplotlib.font_managerR   t   matplotlib.gridspecRU  t   matplotlib.transformst
   transformsR(  R#   Rõ   R?   R   t   matplotlib.backends.backend_pdfR   t   seterrR    R!   Rg   R^  R   R>   R^   R
  RJ   RK   R�   R˜   R   Rž   Rî  RÎ  R€  R„  R…  R‡  Rˆ  R–   t   argvt   exitt   QApplicationt   appR®  R¯  RÁ  t   addLibraryPathR(   R*   R+   R,   RŒ  R�  RC  Rc   R8  RŽ  R�  RD  t   getoptt   optsRø   t   GetoptErrort   errR   RÂ   RK  R\   R]   R4   Ræ  R&   t   AssertionErrorR[   R—  Rµ  R¨  RÊ  R¤  t   raise_R;   RY  Rn   RJ  Rª   R«   t   owinRö  R²  Rœ  R”  t   selectorLayoutRœ  R×  RÐ  RŸ   R³  (    (    (    sA   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGQTmatplotlib.pyt   <module>   s  	i ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ Òÿ ÿ ÿ ¤							+		5				! & 		



,	


)	
	

$
)