ó
ÉÝ{Tc           @   sË  d  Z  d d l m Z m Z m Z d d l Z d d l Td 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 Z d d l Z d d l Z d d l Z d d l Z d „  Z d „  Z d „  Z d „  Z d	 e j f d
 „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d e j e f d „  ƒ  YZ d e j e f d „  ƒ  YZ d e j f d „  ƒ  YZ  d e j f d „  ƒ  YZ! d e j f d „  ƒ  YZ" d e j f d „  ƒ  YZ# d S(   s˜  
     qtgui/MGMainWindow.py: CCP4MG Molecular Graphics Program
     Copyright (C) 2001-2008 University of York, CCLRC
     Copyright (C) 2009-2011 University of York
     Copyright (C) 2012 STFC

     This library is free software: you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public License
     version 3, modified in accordance with the provisions of the 
     license to address the requirements of UK law.
 
     You should have received a copy of the modified GNU Lesser General 
     Public License along with this library.  If not, copies may be 
     downloaded from http://www.ccp4.ac.uk/ccp4license.php
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Lesser General Public License for more details.
iÿÿÿÿ(   t   QtGuit   QtCoret   QtOpenGLN(   t   *c         C   ss   g  } |  j  d ƒ d k  r | SxM |  rn |  |  j  d ƒ d } | j | ƒ | j  d ƒ d k  re Pn  | }  q" W| S(   Nt   .i    i   (   t   findt   append(   t   chompt   suffixest   newchomp(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getSuffixes"   s    	
c           C   s   t  ƒ  j d d ƒ d  S(   Nt   alli   (   t   DISPLAYTABLEt   update(    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   applyAdvancedPrefs.   s    c          C   sf  d d  l  }  d d  l } |  j d d d t d d d d d	 d
 d d d d d d d g d i d d 6d d 6d d 6d d 6d i t d t d d d d ƒ d
 6t d t d d d d ƒ d 6t d t d d d d ƒ d 6t d t d d d d ƒ d 6t d t d d d d ƒ d 6t d t d d  d d ƒ d 6t d t d d! d d ƒ d 6t d t d d" d d ƒ d 6ƒ } | S(#   Niÿÿÿÿt   namet   advanced_optionst   apply_actiont   titlet   Advancedt   helpt   _has_no_help_t   guit   display_table_headert   dockable_display_tablet   iconized_display_tablet   super_compact_display_tablet   other_headert   developer_modet   spacert   restart_labelt   defaulti    i   t
   definitiont   typet   labels   <b>Display Table options</b>t   styles   <b>Other options</b>t   sizeiª   s   Dock display table (*)t   checkboxs   Use icons in display tables   Super-compact when docked (*)s!   * <i>Requires program restart</i>s   Enable development features (*)(   t   servicest   MGMainWindowt   ParamsManagerR   t   dictt   str(   R&   R'   t   pm(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   createAdvancedParamsManager1   s&    	""c          C   s¨   d d  l  }  d d  l } |  j d d d d d d d d	 g d
 i | j j d	 6d i t d t d d d d d | j j | j j | j j g d d d d g ƒ d	 6ƒ } | S(   NiÿÿÿÿR   t   centre_modeR   s   Recentre methodR   R   R   t   centre_methodR   R    R!   R"   s   Recenter methodR#   t   comboboxt   aliast   menus   Extents Boxs   Centre of Coordinatess   Centre of Mass(   R&   R'   R(   t   CENTRE_MODE_EXTENTSR)   R*   t   CENTRE_MODE_COORDSt   CENTRE_MODE_MASS(   R&   R'   R+   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   createRecentreParamsManagerH   s    		Rt   MoviePresQuestionc           B   s   e  Z d d  „ Z d „  Z RS(   c         C   s6  t  j j |  | ƒ t  j |  ƒ } t  j |  ƒ } | j |  j d ƒ ƒ | j | ƒ t  j |  ƒ |  _	 |  j	 j
 d d d g ƒ | j |  j	 d d ƒ t  j |  ƒ } | j t  j j ƒ } | j t  j j ƒ } | j | ƒ |  j | t j d ƒ |  j ƒ |  j | t j d ƒ t j |  j d ƒ ƒ |  j | ƒ d  S(	   Ns   Open this file ast   Moviet   Presentationt	   Animationi    i   s   clicked(bool)iÿÿÿÿ(   R    t   QDialogt   __init__t   QGridLayoutt   QLabelt   setTextt   trt	   addWidgett	   QComboBoxt   combot   addItemst   QDialogButtonBoxt	   addButtont   Okt   Cancelt   connectR   t   SIGNALt   Donet	   functoolst   partialt   donet	   setLayout(   t   selft   parentt   layoutR"   t	   buttonboxt   buttont   cancel(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;     s    +c         C   s   |  j  |  j j ƒ  ƒ d  S(   N(   RM   RB   t   currentIndex(   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRJ   0  s    N(   t   __name__t
   __module__t   NoneR;   RJ   (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR6     s   t   GLViewc           B   sJ   e  Z d g  d  d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   g        c         C   s5   | r |  j  | ƒ n | |  _ | |  _ | |  _ d  S(   N(   t   getFromGLWidgett   post   quatt   scale(   RO   R\   R[   R]   t   glWidget(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   4  s
    		c         C   s   |  j  S(   N(   R\   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   Quat;  s    c         C   s   |  j  S(   N(   R[   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   Position<  s    c         C   s   |  j  S(   N(   R]   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   Scale=  s    c      	   C   sÉ   t  j ƒ  |  _ |  j j | j j ƒ  ƒ g  |  _ |  j j | j d | j d | j d g ƒ d d  l } | j	 | j
 ƒ |  _ xB d d d d d	 d
 d d d g	 D] } t |  | t | | ƒ ƒ q¢ Wd  S(   Ni    i   i   iÿÿÿÿt   fog_enabledt   fog_strengtht   fog_neart   fog_fart   slab_enabledt
   slab_widtht   slab_offsett   clip_capt   customClipPlanes(   t
   pygl_coordR_   R\   t   Setdvalt   GetdvalR[   t   extendt   rpost   copyt   deepcopyt   RADIUSR]   t   setattrt   getattr(   RO   R^   Rp   t   item(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRZ   ?  s    	.(c      	   C   s˜   t  j ƒ  } | j |  j j ƒ  ƒ | j | ƒ | j |  j ƒ | j |  j	 ƒ xB d d d d d d d d d	 g	 D] } t
 | | t |  | ƒ ƒ qq Wd  S(
   NRb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   (   Rk   R_   Rl   R\   Rm   t   setQuatt   setPositionR[   t   setZoomR]   Rs   Rt   (   RO   R^   R\   Ru   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   setGLWidgetJ  s    (N(	   RV   RW   RX   R;   R_   R`   Ra   RZ   Ry   (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRY   3  s   				t   MGMainWindowCorec        
   B   s«  e  Z g  Z d  Z d Z d Z e Z d „  Z d „  Z e	 e	 i  e
 d „ Z d „  Z d „  Z d „  Z d	 „  Z e	 d  d  d  d  d
 „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d  d „ Z d  e	 e d „ Z d „  Z d e	 d „ Z d d „ Z e	 d „ Z  e	 d „ Z! e	 d „ Z" e	 d „ Z# d „  Z$ d „  Z% d  „  Z& d! „  Z' d" „  Z( d# „  Z) d$ „  Z* d% „  Z+ d& „  Z, d' „  Z- d( „  Z. d) „  Z/ d* „  Z0 d+ „  Z1 d, „  Z2 d- „  Z3 d. „  Z4 d/ „  Z5 d0 „  Z6 d1 „  Z7 d2 „  Z8 d3 „  Z9 d4 „  Z: d5 „  Z; d6 „  Z< d7 „  Z= d8 „  Z> d9 „  Z? d: „  Z@ d; „  ZA d< „  ZB d= d> „ ZC d d? d@ „ ZD d dA „ ZE d d d  d  d e
 e d i  dB „	 ZF dC „  ZG dD „  ZH d e	 dE „ ZI d i  dF dF dF dG „ ZJ dH „  ZK dI „  ZL dJ „  ZM d dK „ ZN dL „  ZO g  e	 dF dM „ ZP dN „  ZQ dO „  ZR dP „  ZS dQ „  ZT e
 dR „ ZU e	 e
 dS „ ZV dT „  ZW dU „  ZX dV „  ZY dW „  ZZ dX „  Z[ dY „  Z\ dZ „  Z] d[ „  Z^ d\ „  Z_ d] „  Z` d^ „  Za d_ „  Zb d` „  Zc da „  Zd db „  Ze dc „  Zf e
 e
 dd „ Zg de „  Zh df „  Zi d dg „ Zj dh „  Zk di „  Zl dj „  Zm dk „  Zn dl „  Zo dm „  Zp d dn „ Zq do „  Zr d d dp „ Zs d dq „ Zt d  dr „ Zu ds „  Zv dt „  Zw du „  Zx dv „  Zy i  dw „ Zz dx „  Z{ dy „  Z| dz „  Z} d{ „  Z~ e	 d| „ Z d} „  Z€ e	 d~ „ Z� e	 d „ Z‚ d€ „  Zƒ d� „  Z„ d d‚ „ Z… dƒ „  Z† d„ „  Z‡ d… „  Zˆ d† „  Z‰ d‡ „  ZŠ d  d  dˆ „ Z‹ d‰ „  ZŒ i  dŠ „ Z� d‹ „  ZŽ dŒ „  Z� d� „  Z� dŽ „  Z‘ RS(�   i    i   i   c         C   s   d  S(   N(    (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   show]  s    c         C   s   d  S(   N(    (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   hide^  s    c         C   s   g  |  _  g  |  _ d |  _ d  S(   Nt   open_all(   t   downloadThreadst   customDownloadFilterTypest   defaultObjBodyVisibility(   RO   RP   t   applicationt
   gui_paramst   stereoFormatAvailable(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   `  s    		c         C   s&   | |  j  k r" |  j  j | ƒ n  d  S(   N(   R   R   (   RO   t   filter(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addCustomDownloadFilterTypee  s    c         C   s  y² t  d ƒ j ƒ  } | j d ƒ rL | d d k r@ d |  _ qU d |  _ n	 d |  _ | j d ƒ rz t | d ƒ |  _ n	 d |  _ | j d ƒ r¨ t | d ƒ |  _ n	 d	 |  _ WnJ d
 GHt j ƒ  d  \ } } } | GH| GHd |  _ d |  _ d	 |  _ n X|  j	 ƒ  d  S(   Nt   stereo_prefst   stereo_modei    t   SHEARt   ROTATIONt	   shear_sepgš™™™™™¹?t   rot_sepg      @s
   Exception!i   (
   t   PMt	   getparamst   has_keyR‡   t   floatt   stereo_shear_separationt   stereo_rotation_anglet   syst   exc_infot   setStereoMatrices(   RO   t   paramst   exc_typet	   exc_valuet   exc_tb(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   applyStereoPrefsi  s,    				c         C   sS   |  j  j | d ƒ x9 |  j D]. } | |  j  k	 r | j |  j  j d ƒ q q Wd  S(   Ni   (   R^   t   removeDisplayObjectt	   glWidgetst   SetGOt   go(   RO   t   modt   widget(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   removeGLDisplayObject�  s    c         C   s(   x! |  j  D] } | j | d ƒ q
 Wd  S(   Ni   (   R›   t   rebuildDisplayObject(   RO   Rž   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   rebuildGLDisplayObject—  s    c         C   s«   | r3 |  j  r3 |  j j |  j  d |  j  d ƒ n  | r] |  j j ƒ  |  j j ƒ  f |  _  n  | r… |  j j | j ƒ  | j ƒ  ƒ n" | r§ | r§ |  j j | | ƒ n  d  S(   Ni    i   (   t   savedGLSizeR^   t   resizet   widtht   height(   RO   R$   R¥   R¦   t   restoret   save(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt	   setGLSizeœ  s    $$"c         C   sS   |  j  j | d ƒ x9 |  j D]. } | |  j  k	 r | j |  j  j d ƒ q q Wd  S(   Ni   (   R^   t   addDisplayObjectR›   Rœ   R�   (   RO   Rž   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addGLDisplayObject¬  s    c         C   s,   x% |  j  D] } | j ƒ  | j ƒ  q
 Wd  S(   N(   R›   t   makeCurrentt   updateGL(   RO   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   updateGLWindows³  s    
c         C   s   t  ƒ  j d ƒ |  j ƒ  d  S(   Ni    (   t	   PICKLABELt   clear_labelsR®   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   clearLabels¸  s    c         C   sÀ   i  } |  j  j ƒ  | d <|  j  j ƒ  | d <|  j  j ƒ  | d <|  j j ƒ  | d <|  j | d <|  j | d <i  } x- d d d	 d
 g D] } t |  | ƒ | | <q… W| | d <t	 j
 j | d <| S(   Nt   background_colourt	   show_axest
   show_scalet   main_toolbarR-   R€   t	   rollspeedt	   rockspeedt	   rockanglet   rollorientationt
   rockParamst   last_directory(   R^   t   getBackgroundt   getAxest   getShowScalet   toolbart	   getParamsR-   R€   Rt   t	   mgWidgetst   MGFileDialogR»   (   RO   R•   t   parsRu   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÀ   ½  s    
c         C   sü   | j  d ƒ rL x: |  j D], } | d \ } } } | j | | | ƒ q Wn  | j  d ƒ rƒ x% |  j D] } | j | d ƒ qe Wn  | j  d ƒ rº x% |  j D] } | j | d ƒ qœ Wn  | j  d ƒ rÙ | d |  _ n  | j  d ƒ rø | d |  _ n  d  S(   NR²   R³   R´   R-   R€   (   RŽ   R›   t   setBackgroundt   setAxest   setShowScaleR-   R€   (   RO   R•   RŸ   t   rt   gt   b(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt	   setParamsÕ  s    c         C   sG   d St  j ƒ  } | j d ƒ t  j | t ƒ } | j ƒ  r? d Sd Sd  S(   Ni    i   (   R   t	   QGLFormatt	   setStereot
   QGLContextt   pdt   create(   RO   t   fmtt   ctx(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   checkIfStereoAvailableè  s    c         C   sÂ   d d  l  } | |  _ | d k rc x� t ƒ  j | j ƒ D]% } | j ƒ  s7 | j d d ƒ q7 q7 WnN | d k r± x? t ƒ  j | j ƒ D]% } | j ƒ  r… | j d d ƒ q… q… Wn  |  j j ƒ  d  S(   NiÿÿÿÿR}   t   updateWidthi    t	   close_all(	   t   displayTableR€   R   t   findChildrent   GDataObjt   isOpent   toggleBodyVisibilityt   wMGDisplayTableRÓ   (   RO   t   modeRÕ   t   obj(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   openCloseAllObjectsò  s    	c         K   s:  | d k r£ | j  d d  ƒ } | s2 | j ƒ  r9 t ƒ  St ƒ  j | j ƒ  j ƒ } | sa t ƒ  St d d | j ƒ  d d | j ƒ  d d d	 | j | g d
 d ƒ S| d k r| j  d d  ƒ } | r6t d d | j ƒ  d d | j ƒ  d d d	 |  j | j	 ƒ  g d
 d ƒ Sn$ |  j
 j | ƒ r/|  j
 | St ƒ  Sd  S(   Nt   pickInfot	   pickeventt   texts   Info about t   tips   More information t   signals   triggered()t   slott   deleteLateri   t   centreOnAtoms
   Centre on s   Centre on atom (   t   getRX   t
   getDataObjR)   R   R   t   getLabelRÞ   t   centreOnt   getPickPositiont   actionDefinitionsRŽ   (   RO   R   t   infoRß   t   dobj(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getActionDefÿ  s2      
c   	         s‡  d d  l  } d d  l } i  ˆ  _ t d d d d d d d d	 d
 ˆ  j ƒ ˆ  j d <t d d d t j j d d d d d d	 d
 ˆ  j ƒ ˆ  j d <t d d d d d d	 d
 t	 j
 ˆ  j d ƒ ƒ ˆ  j d <t d d d d d d d d	 d
 t	 j
 ˆ  j d ƒ ƒ ˆ  j d <t d d d d d d	 d
 t	 j
 ˆ  j d ƒ ƒ ˆ  j d <t d d d d d d	 d
 ˆ  j ƒ ˆ  j d <t d d d d d d	 d
 ˆ  j ƒ ˆ  j d <t d d d d  d d	 d
 t	 j
 ˆ  j ƒ ƒ ˆ  j d! <t d d" d d# d d	 d
 t	 j
 ˆ  j d$ ƒ ƒ ˆ  j d% <‡  f d& †  } ‡  f d' †  } t d d( d d) d d	 d
 t	 j
 ˆ  j d* ƒ d+ | d, d- d. | ƒ ˆ  j d* <t d d/ d d0 d d	 d
 t	 j
 ˆ  j d1 ƒ ƒ ˆ  j d1 <t d d2 d d3 d d	 d
 t	 j
 ˆ  j d4 ƒ ƒ ˆ  j d4 <t d d5 d d6 d d7 d d8 d d	 d
 ˆ  j ƒ ˆ  j d9 <t d d: d d; d d< d d= d d	 d
 ˆ  j ƒ ˆ  j d> <t d d? d t j j d d< d d@ d d	 d
 t ƒ  j ƒ ˆ  j dA <t d dB d t j j d dB d d	 d
 ˆ  j ƒ ˆ  j dC <t d dD d dE d dF d d	 d
 ˆ  j d, dG dH d6 ƒ ˆ  j dI <t d dJ d dK d dL d
 ˆ  j ƒ ˆ  j dM <t d dN d dO d dP d dQ d d	 d
 ˆ  j d, dG dH d6 ƒ ˆ  j dP <t d dR d t j j d d6 d dR d d	 d
 ˆ  j d, dG dH d6 ƒ ˆ  j dS <t d dT d
 t	 j
 ˆ  j dU ƒ ƒ ˆ  j dV <t d dW d
 t	 j
 ˆ  j dX ƒ ƒ ˆ  j dY <t d dZ d
 t	 j
 ˆ  j d[ ƒ ƒ ˆ  j d[ <t d d\ d
 t	 j
 ˆ  j d] ƒ ƒ ˆ  j d] <t d d^ d
 t	 j
 ˆ  j d_ ƒ ƒ ˆ  j d_ <t d d` d
 t	 j
 ˆ  j da ƒ ƒ ˆ  j da <t d db d
 t	 j
 ˆ  j dc ƒ ƒ ˆ  j dc <t d dd d
 t	 j
 ˆ  j de ƒ ƒ ˆ  j de <t d df d
 t	 j
 ˆ  j dg ƒ ƒ ˆ  j dh <t d di d dj d
 | j ƒ ˆ  j dk <t d dl d dm d dn d d	 d
 ˆ  j  d, dG dH d6 ƒ ˆ  j dm <t d do d dp d t j j! d
 ˆ  j" ƒ ˆ  j dq <t d dr d t j j# d ds d
 ˆ  j$ ƒ ˆ  j dt <t d du d dv d
 t	 j
 ˆ  j% dw ƒ ƒ ˆ  j dx <t d dy d dz d
 t	 j
 ˆ  j% dy ƒ ƒ ˆ  j d{ <t d d| d d} d
 t	 j
 ˆ  j% d| ƒ ƒ ˆ  j d~ <t d d d d€ d
 t	 j
 ˆ  j% d ƒ ƒ ˆ  j d� <t d d‚ d dƒ d
 t	 j
 ˆ  j% d„ ƒ ƒ ˆ  j d… <t d d† d dƒ d
 t	 j
 ˆ  j% d‡ ƒ ƒ ˆ  j dˆ <t d d‰ d dŠ d d‹ d d	 d
 ˆ  j& ƒ ˆ  j dŒ <t d d� d dŽ d d� d d	 d
 ˆ  j' ƒ ˆ  j d� <t d d‘ d t j j( d d’ d d	 d
 ˆ  j) d, dG ƒ ˆ  j d“ <t d d” d d6 d d6 d d• d
 ˆ  j* ƒ ˆ  j d– <‡  f d— †  } t d d˜ d d6 d d6 d d˜ d d	 d™ dš d
 ˆ  j+ d, d- d. | ƒ 	ˆ  j d› <‡  f dœ †  } t d d� d d6 d d6 d dž d d	 d™ dš d
 ˆ  j+ d, d- d. | ƒ 	ˆ  j dŸ <‡  f d  †  } t d d¡ d d6 d d6 d d¢ d d	 d™ dš d
 ˆ  j+ d, d- d. | ƒ 	ˆ  j d£ <‡  f d¤ †  } t d d˜ d d6 d d6 d d˜ d d	 d
 t	 j
 ˆ  j, d› ƒ d, d- d. | ƒ ˆ  j d¥ <‡  f d¦ †  } t d d¡ d d6 d d6 d d¢ d d	 d
 t	 j
 ˆ  j, d£ ƒ d, d- d. | ƒ ˆ  j d§ <t d d¨ d d6 d d© d d6 d
 ˆ  j- ƒ ˆ  j dª <‡  f d« †  } t d d¬ d d6 d d­ d d6 d, d- d. | d
 t	 j
 ˆ  j. d- ƒ ƒ ˆ  j d® <‡  f d¯ †  } t d d° d d6 d d± d d6 d, d- d. | d
 t	 j
 ˆ  j. d² ƒ ƒ ˆ  j d³ <t d d´ d d6 d dµ d d6 d
 ˆ  j/ ƒ ˆ  j d¶ <t d d· d d6 d d¸ d d¹ d d	 d
 ˆ  j0 d, dG ƒ ˆ  j d¸ <t d dº d d6 d d» d d	 d
 ˆ  j1 d, dG dH d6 ƒ ˆ  j d¼ <t d d½ d d6 d d6 d d½ d d	 d
 ˆ  j2 d, dG dH d6 ƒ ˆ  j d¾ <t d d¿ d d6 d dÀ d
 t	 j
 ˆ  j3 dÁ ƒ ƒ ˆ  j dÂ <t d dÃ d d6 d dÄ d
 t	 j
 ˆ  j3 dÅ ƒ ƒ ˆ  j dÆ <t d dÇ d d6 d dÈ d
 t	 j
 ˆ  j3 dÉ ƒ ƒ ˆ  j dÊ <t d dË d t j j4 d dÌ d
 t	 j
 ˆ  j5 d ƒ ƒ ˆ  j dÍ <t d dÎ d t j j6 d dÏ d
 t	 j
 ˆ  j5 d- ƒ ƒ ˆ  j dÐ <‡  f dÑ †  } t d dÒ d dÓ d d6 d, d- d. | d
 ˆ  j7 ƒ ˆ  j dÔ <‡  f dÕ †  } t d dÖ d d× d d6 d, d- d. | d
 ˆ  j8 ƒ ˆ  j dØ <‡  f dÙ †  } ‡  f dÚ †  } t d dÛ d dÜ d, d- d+ | d. | d
 ˆ  j9 ƒ ˆ  j dÝ <‡  f dÞ †  } t d dß d dà d, d- d+ d- d. | d
 ˆ  j: ƒ ˆ  j dá <t d dâ d dã d dä d, d- d+ d- d. dG d
 ˆ  j; ƒ ˆ  j då <‡  f dæ †  } t d dç d dè d, d- d+ d- d. | d
 ˆ  j< ƒ ˆ  j dé <t d dê d dë d, d- d+ d- d. dG d
 ˆ  j= ƒ ˆ  j dì <‡  f dí †  } t d dî d dï d, d- d. | d
 ˆ  j> ƒ ˆ  j dð <‡  f dñ †  } t d dò d dó d dô d, d- d. | d
 ˆ  j? ƒ ˆ  j dõ <‡  f dö †  } t d d÷ d dø d dù d, d- d. | d
 ˆ  j@ ƒ ˆ  j dú <d d  lA } t d d6 d dû d dü d
 | jA ƒ ˆ  j dý <t d d6 d dþ d
 t	 j
 ˆ  jB dÿ ƒ ƒ ˆ  j d <t d d6 d dd
 t	 j
 ˆ  jB dƒ ƒ ˆ  j d<t d d6 d dd
 t	 j
 ˆ  jB dƒ ƒ ˆ  j d<i dd6d	d
6dd6dd6} xO dd
ddg D]; } t d | | d dd
 t	 j
 ˆ  jC | ƒ ƒ ˆ  j | <qDWd  S(  NiÿÿÿÿRà   s   Download coordinates..t   icont   downloadRá   s(   Download coordinate,map data from serverRâ   s   triggered()Rã   s   Open..t   shortcutt   fileopens(   Open coordinate,map,vector or image filet   opens   Open presentations+   Open directory to edit or show presentationt   open_presentations   Open zipped presentations>   UNcompress zip and open directory to edit or show presentationt   zip_presentations   New presentations%   Create directory to save presentationt   new_presentations   File viewers   View text, image or movie filest   file_viewers   Superpose modelss(   Automatic and manual model superpositiont	   superposes   Transparency..s!   Set display object(s) transparentt   transparencys   Setup animations.   Define the alternating scenes for an animationt   setupt   setup_animationc              s   ˆ  j  d ƒ S(   Nt
   animate_on(   t   handleAnimationGui(    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   ag  s    c              s   ˆ  j  d ƒ S(   Nt   animate_enabled(   Rý   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   eh  s    s   Run animations   Switch animation on/offt   animatet   enabledt	   checkablei   t   checkeds
   Open movies$   Open directory to edit or show moviet
   open_movies	   New movies   Create directory to save moviet	   new_movies	   Restore..t    R§   s   Restore statust   restore_status_from_files   Save status to file..s   Shift+Ctrl+St   save_statuss   Save the current program statust   save_status_to_files   Save as default status..s:   Save the current program status to the default status filet   save_default_statuss   Print screent   printt
   Screenshott   cameras   Make image from current displayi    t
   initialiset
   screenshots   Get tutorial datat   tutorials,   Copy data for tutorial to your own directoryt   tutorial_datat   Exits   Ctrl+Qt   exits   Exit programt   Pastet   pastes   Minimize allRÔ   t   collapse_alls   Maximize allR}   t   show_allt   Hidet   all_data_hidet   Showt   all_data_shows   Hide labelst   all_disp_labelss   Stop flashingt   all_disp_flashings   Undo transparencyt   all_disp_transparencys   Close all datat   all_data_closes   Picture Wizardt   all_data_picture_wizardt   picture_wizards   CCP4i projects and aliasess<   Add or change project and directory aliases as used in CCP4it   ccp4i_aliasess   Preferences..t   preferencess   Program preferencess	   View redos   Undo revert viewt   view_forwards	   View undos   Revert viewt	   view_backt   Lefts   Rotate to view from leftt   leftt   view_from_leftt   rights   Rotate to view from rightt   view_from_rightt   tops   Rotate to view from topt   view_from_topt   bottoms   Rotate to view from bottomt   view_from_bottoms   back (about x)s   Rotate to view from backs   back-xs   view_from_back-xs   back (about y)s   back-ys   view_from_back-ys   Copy to clipboards   Ctrl+Cs'   Copy graphics window image to clipboardt   copyclipboardt   Recentres   Ctrl+Es)   Recentre view to show all visible objectst   recentres   Find, centre on..s(   Centre on selected atom(s) or residue(s)Ré   s   Clear picked labelss!   Delete all labels on picked atomsR±   c              s   t  ˆ  j ƒ d k S(   Ni   (   t   lenR›   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   Y  s    s   Side by side stereot   groupt   screenSplitt
   sideBySidec              s   t  ˆ  j ƒ d k S(   Ni   (   R3  R›   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   f  s    s   Single views   Normal viewt
   singleViewc              s   t  ˆ  j ƒ d k S(   Ni   (   R3  R›   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   s  s    s   Three way views   Three way orthogonal viewt	   threeViewc              s   t  ˆ  j ƒ d k S(   Ni   (   R3  R›   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   €  s    t   toolbar_sideBySidec              s   t  ˆ  j ƒ d k S(   Ni   (   R3  R›   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   Œ  s    t   toolbar_threeViews   Window size..s   Set the window sizet   window_sizec              s   ˆ  j  d k S(   Ni   (   t   rockroll(    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ      s    s	   Roll views   Rotate view continuouslyt	   roll_viewc              s   ˆ  j  d k S(   Ni   (   R<  (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   «  s    s	   Rock views   Rock view continuouslyi   t	   rock_views	   Details..s   Rock and roll detailst   rock_detailss   Help..R   s   Program documentations   About..s   About CCP4mgt   abouts   Graphics Windowt   uncloset   Legends   Create a 2D text legend objectt   legendt   create_legendt   Crystals   Create a crystal objectt   crystalt   create_crystalt   Vectorss   Create a vector objectt   vectorst   create_vectorst   Undos"   Revert status of displayed objectst   display_backt   Redos'   Undo revert status of displayed objectst   display_forwardc              s   ˆ  j  d j S(   Ni    (   R›   R³   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ     s    t   Axess.   Show coordinate system axes in the main windowR³   c              s   ˆ  j  d j S(   Ni    (   R›   R´   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ     s    Ra   s/   Show coordinate system scale in the main windowR´   c              s%   ˆ  j  d j ƒ  o$ ˆ  j  d j ƒ  S(   Ni    (   R›   t	   getStereot   getDoZalmanStereo(    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ     s    c              s   t  Sˆ  j S(   N(   t   TrueRƒ   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   stereoAvailable  s    s   Hardware Stereos   Turn hardware stereo on/offt	   stereo_onc              s$   ˆ  j  d j ƒ  o# ˆ  j  d j ƒ  S(   Ni    (   R›   RP  RQ  (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ      s    s   Zalman Stereos)   Turn line-by line polarized stereo on/offt   zalman_stereo_ont
   Fullscreens   Turn fullscreen on/offs   Ctrl+Bt
   fullscreenc              s   ˆ  j  d j S(   Ni    (   R›   t   show_fps(    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   2  s    s   Show framerates   Show framerate in status bart	   framerates   Show/change zooms%   Show/change zoom factor in status bart   zoom_displayc              s   ˆ  j  d j ƒ  j ƒ  S(   Ni    (   R›   t   formatt   sampleBuffers(    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   C  s    s   Solid smoothings8   Use antialiasing to reduce jagged edges of solid objectst   fsaa_onc              s   ˆ  j  d j S(   Ni    (   R›   Rb   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   K  s    s   Depth cue fogs   Fog out distant objectss   Ctrl+Wt   fog_onc              s   ˆ  j  d j S(   Ni    (   R›   Rf   (    (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRþ   T  s    s   Clip front/backs   Clip front and rear of views   Ctrl+Lt   slab_ons   Clip and fog details..s2   Control depth clipping and fog out distant objectst
   slab_n_fogt   Blackt   blackt   background_blackt   Whitet   whitet   background_whites   Select other..t   othert   background_othert   Shinyt   light_shinyt   Softt
   light_softt   Shadedt   light_shadeds   Ray-trace shadowst   light_shadows_top_rights   Reset the lighting(D   t   openglt   ccp4iGuiRë   R)   t   handleDownloadR    t   QKeySequencet   Opent
   handleOpent   guiUtilsRL   t   handlePresentationt   handleFileViewert   handleSuperposet   openTransparencyt   openAnimationRý   t   handleRestoret   handleSaveStatust   Savet   HISTORYt   save_program_statust   Printt   handlePrintt   screenshotGUIt   copyTutorialDatat
   handleExitR  t   handlePasteRÝ   t   handleAllDataActiont   openGuit   handlePreferencest   Forwardt   viewForwardt   Backt   viewBackt   viewFromt   handleCopyClipboardt   handleRecentret   Findt   handleCentreOnR±   t   handleScreenSplitt   toggleScreenSplitt   handleWindowSizet   toggleRockRollt   rockAndRollt
   handleHelpt   handleAboutt   UnCloset   createObjectRK  t   restoreDisplayRM  t
   toggleAxest   toggleShowScalet   toggleStereot   toggleZalmanStereot   toggleFullscreent   toggleFrameratet   toggleZoomDisplayt
   toggleFSAAt	   toggleFogt
   toggleSlabt
   slabAndFogt   setBackgroundColourt   setLighting(	   RO   Rp  Rq  Rþ   R   RS  R§  t
   light_menuRu   (    (   RO   s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initializeActionDefinitions  s¦   													


c         C   së   | |  j  | <|  j j | ƒ rz |  j | j | ƒ d k rç |  j | j | ƒ } | d k rw |  j | j | ƒ qw qç nm |  j j d ƒ rç |  j d j | ƒ d k rç |  j d j | ƒ } | d k rä |  j d j | ƒ qä qç n  d  S(   Ni    t   Tools(   Rë   t   menuDefinitionsRŽ   t   countt   indext   pop(   RO   R   t   defnR1   t   forcet   idx(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   removeMenuDefinition…  s    c   
      C   s.  | s |  j  j | ƒ r) | |  j  | <n  | j d ƒ rW t j | |  d | d ƒ} n t j | |  ƒ } |  j j | ƒ rÆ| rty— x� |  j | D]� } t | ƒ t k r’ t | ƒ d k r| d | k r| j | ƒ }	 |	 d k r| j	 | ƒ | r|  j
 | ƒ qqqq’ q’ WWqÃ|  j d j | ƒ }	 |	 d k rW|  j d j	 | ƒ n  | rq|  j
 d ƒ qqqÃXq*|  j | j | ƒ }	 |	 d k r­|  j | j	 | ƒ n  | r*|  j
 | ƒ q*nd |  j j d ƒ r*|  j d j | ƒ }	 |	 d k r|  j d j	 | ƒ n  | r*|  j
 d ƒ q*n  | S(   Nt	   icon_pathi    R¬  (   Rë   RŽ   Rv  t   createActionR­  R!   t   listR3  R®  R   t   drawMenu(
   RO   R   R±  R1   R²  t   submenut	   draw_menut   actiont   itR³  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addMenuDefinition•  sD    " !      c         C   s„  d d  l  } i  |  _ d d d g |  j d <d g |  j d <d |  j d d	 d
 d d d g g |  j d <d g |  j d <d d d d g g |  j d <d g |  j d <d d d d g |  j d <d d d d d d d g |  j d <| j d k rd  d! d d" d# d d$ g |  j d% <n d  d! d d" d# g |  j d% <d& d' d( g d d) d* d+ d, d- d. d/ d0 g g |  j d1 <d2 d3 d4 d5 g g |  j d6 <d1 d d7 d8 d9 d: g d d6 g |  j d; <d< d= d> d? d@ dA g |  j dB <dC dD dE g g |  j dF <dG d dB d dH dI dJ dK g dL dM dN d dF dO d dP dQ g |  j dR <g  |  j dS <g  |  j dT <dU dV dW dX dY g dZ g |  j d[ <| j d k r„d\ d] g |  j d^ <n d\ g |  j d^ <d d d d d d$ d' d( d d) d4 d3 d" d# dG d= d> d? d@ dA dI dJ dL dV dX dZ g |  j d_ <d d d d d' d( d" d# d d) dG d= d> dV dX d$ g |  j d` <| j d k rX|  j d j d da g ƒ n  | j d k r€d] d$ da g |  j db <n  d  S(c   NiÿÿÿÿR2  Rå   RÞ   t   contextRð   t   _file_downloadRó   R  s   Edit/show presentationRö   Rô   Rõ   t
   _file_openR   t   _file_closes   Create objectRD  RG  RJ  t   _file_createR  t	   _tutorialR
  R  R  R  t
   _file_savet   sept   Filet   darwinR0  R  RL  RN  R$  t   Edits   View historyR&  R%  Ré   s	   View fromR)  R+  R/  R-  s   view_from_back-xs   view_from_back-yt   _view_orientations   Rock and rollR=  R>  R?  t   _view_applicationss   Split screenR7  R6  R8  t   Viewt   toggle_toolbarR^  R_  R`  R³   R´   t   _display_onoffs   Animate displayR  Rû   t   _display_applicationsR±   s   Background colourRc  Rf  Rh  RT  RU  R]  RW  RY  RZ  t   Displayt   WindowsR¬  R÷   Rø   s   Movie editorR  R  R"  t   ApplicationsR   R@  t   Helpt   main_toolbar_supportedt   main_toolbar_defaultR  t   _dummy(   R’   R­  t   recentFilesListt   platformRn   (   RO   R’   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initializeMenuDefinitionsµ  s>    	+"%7(C"[=R  c      
   C   s  | d k rã t  j d k r‚ d d d g d d g d d	 d g d
 d d g d d d g d d d g d d d g d d g d d g g	 Sd d d g d d g d d	 d g d
 d d g d d d g d d d g d d d g d d g g Sn  g  } | j |  j | ƒ ƒ | Sd  S(   Nt   menusRÇ  RÆ  s   &Filet   aboutToShowRÈ  s   &EditRË  s   &ViewRÏ  s   &DisplayRÑ  s   &ApplicationsRÐ  s   &WindowsR¬  s   &ToolsRÒ  s   &HelpRÕ  (   R’   R×  Rn   t
   getGuiDef0(   RO   R   Rß   R±  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt	   getGuiDefä  s    gac         C   s€   |  j  j | ƒ s g  Sg  } x] |  j  | D]N } | d d k rk |  j  j | ƒ rk | j |  j | ƒ ƒ q* | j | ƒ q* W| S(   Ni    t   _(   R­  RŽ   Rn   RÛ  R   (   RO   R   R±  Ru   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÛ  ð  s     "c         C   s~   | r | } n  |  j  ƒ  j d | j d | j d | j d f ƒ x3 |  j D]( } | | k	 rN | j | j d ƒ qN qN Wd  S(   Ns   Origin: %s %s %si    i   i   (   t	   statusBart   showMessageRo   R›   t	   SetOrigin(   RO   t   argsRŸ   t   glwidget(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   PositionChangedú  s    	5c         C   s   | d } | d } d  S(   Ni    i   (    (   RO   Rá  t   eventRŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt
   MousePress  s    
c         C   sL   | r | } n  x6 |  j  D]+ } | | k	 r | j | _ | j ƒ  q q Wd  S(   N(   R›   Rr   R­   (   RO   Rá  RŸ   Râ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   ZoomChanged  s    	c         C   sL   | r | } n  x6 |  j  D]+ } | | k	 r | j | _ | j ƒ  q q Wd  S(   N(   R›   R\   R­   (   RO   Rá  RŸ   Râ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   QuatChanged  s    	c         C   s   |  j  ƒ  d S(   sÒ  
      Handle the toolbar buttons which are not in an QActionGroup
      Check the appropriate button in the group to force required action
      current = self.findChild(QtGui.QActionGroup,'screenSplit').checkedAction().objectName()
      if mode == current:
        # Trying to switch off stereo/three way - reset to single
        self.findChild(QtGui.QAction,'singleView').setChecked(1)
      else:
        self.findChild(QtGui.QAction,mode).setChecked(1)
      N(   R“  (   RO   RÛ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR”    s    c         C   s9  |  j  t j d ƒ j ƒ  j ƒ  } t |  j ƒ d k rS | d k rF d  S|  j ƒ  n2 t |  j ƒ d k r… | d k rx d  S|  j ƒ  n  | d k rž |  j ƒ  n | d k r· |  j ƒ  n  |  j	 ƒ  |  j  t j
 d ƒ } | rû | j t |  j ƒ d k ƒ n  |  j  t j
 d ƒ } | r5| j t |  j ƒ d k ƒ n  d  S(   NR5  i   R8  i   R6  R9  R:  (   t	   findChildR    t   QActionGroupt   checkedActiont
   objectNameR3  R›   t   handleThreeWayViewt   handleSideBySideR�  t   QActiont
   setChecked(   RO   t   newR»  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR“  %  s(    !
  c         C   sL  t  |  j ƒ d k ré x0t  |  j ƒ d k rå |  j j ƒ  } |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ | j	 g  d ƒ | j
 ƒ  |  j j | ƒ | j ƒ  q Wn_t  |  j ƒ d k rÒxÑ t  |  j ƒ d k rÎ|  j j ƒ  } |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ | j	 g  d ƒ | j
 ƒ  |  j j | ƒ | j ƒ  qWn  d d  l } | j |  |  j d |  j j ƒ  ƒ} | j |  j j ƒ  ƒ | j |  j j ƒ  ƒ |  j j | ƒ |  j j | d d ƒ xO d	 d
 d d d d d d d d d g D]& } t | | t |  j d | ƒ ƒ q|W|  j d j ƒ  \ } } } | j | | | ƒ | j |  j ƒ | j |  j ƒ | j |  j  ƒ |  j! | t j d ƒ |  j" ƒ |  j! | t j d ƒ |  j# ƒ |  j! | t j d ƒ |  j$ ƒ |  j! | t j d ƒ |  j% ƒ |  j! | t j d ƒ |  j& j' ƒ t( j) d d d d d ƒ | _* | j+ d  ƒ | j- ƒ  |  j j. r| j	 |  j j. d ƒ | j/ |  j j0 d ƒ n  | j |  |  j d |  j j ƒ  ƒ} | j |  j j ƒ  ƒ | j |  j j ƒ  ƒ |  j j | ƒ |  j j | d d ƒ xO d	 d
 d d d d d d d d d g D]& } t | | t |  j d | ƒ ƒ q±W|  j d j ƒ  \ } } } | j | | | ƒ | j |  j ƒ | j |  j ƒ | j |  j  ƒ |  j! | t j d ƒ |  j" ƒ |  j! | t j d ƒ |  j# ƒ |  j! | t j d ƒ |  j$ ƒ |  j! | t j d ƒ |  j% ƒ |  j! | t j d ƒ |  j& j' ƒ xy t1 d d g ƒ D]e }	 t2 |	 d ƒ rë|	 j3 rë| j! | t j d ƒ |	 j3 j4 ƒ | j! | t j d ƒ |	 j3 j4 ƒ qëqëW| j- ƒ  |  j j. r™| j	 |  j j. d ƒ | j/ |  j j0 d ƒ n  t( j) d d d d d ƒ | _* | j+ d  ƒ |  j5 ƒ  t2 |  j d d  ƒ s<yK |  j d j6 ƒ  }
 d d  l7 } | j8 i d d! 6ƒ |  j d j |
 ƒ Wq<q<Xn  | j9 |  j d ƒ | j9 |  j d ƒ |  j! |  j d t j d ƒ | j ƒ |  j! |  j d t j d ƒ | j ƒ |  j! |  j d t j d ƒ | j ƒ |  j! |  j d t j d ƒ | j ƒ |  j! |  j d t j d ƒ | j ƒ |  j! |  j d t j d ƒ | j ƒ d  S("   Ni   i   i    t   ShadowStateChangedt   AmbientOcclusionStateChangedt   ShaderStateChangediÿÿÿÿR[  Rr   R\   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rç  Ræ  Rã  t   ViewChangedt   TransformObjectg      ð?g        iZ   t   object_typet   MapDispt   graphmodi¦ÿÿÿt   circleShadert   use_shaders(:   R3  R›   R°  t
   disconnectR   RI   t   setShadowStatet   setAmbientOcclusionStatet   setShaderStateRœ   t   closet
   box_layoutt   removeWidgetRä   t
   MGGLWidgetR^   R[  RÌ   RP  t   setDoZalmanStereoRQ  R   R@   Rs   Rt   R¼   RÄ   t   setDoubleClickHandlert   pickEventRecentret   setLeftClickHandlert   labelPickedObjectt   setContextMenuHandlert   contextMenuHandlerRH   Rç  Ræ  Rã  t   GLLeftMouseReleasedt   MGDisplayTablet   handleObjectMovingRk   R_   t
   extra_quatt   setExtraMatrixRX   R­   R�   Rà  Ro   t   get_dispobjt   hasattrRø  t   handleGLWidgetChangePostiont   applyGLLightingt   getShaderStatet   Shaderst   handleShaderst   copyShaders(   RO   Râ  R  t
   y_glWidgetRu   RÇ   RÈ   RÉ   t
   x_glWidgett   mapdispt   oldStateR  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRì  A  s°    &&&
&&&
$.$"
$.$"")

&&&&&c         C   s„  t  |  j ƒ d k rxÎ t  |  j ƒ d k rå |  j j ƒ  } |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ | j	 g  d ƒ | j
 ƒ  |  j j | ƒ | j ƒ  q Wt j d d d d ƒ |  j d _ |  j d j d  ƒ nat  |  j ƒ d k rxÑ t  |  j ƒ d k r|  j j ƒ  } |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ |  j |  j d t j d ƒ | j ƒ | j	 g  d ƒ | j
 ƒ  |  j j | ƒ | j ƒ  q7Wn  d d  l } | j |  |  j d	 |  j j ƒ  ƒ} | j |  j j ƒ  ƒ | j |  j j ƒ  ƒ |  j j | ƒ |  j j | d d ƒ xO d
 d d d d d d d d d d g D]& } t | | t |  j d | ƒ ƒ q²W|  j d j ƒ  \ } } } | j | | | ƒ | j  |  j! ƒ | j" |  j# ƒ | j$ |  j% ƒ |  j& | t j d ƒ |  j' ƒ |  j& | t j d ƒ |  j( ƒ |  j& | t j d ƒ |  j) ƒ |  j& | t j d ƒ |  j* ƒ |  j& | t j d ƒ |  j+ j, ƒ xW t- d d g ƒ D]C } t. | d ƒ rì| j/ rì| j& | t j d ƒ | j/ j0 ƒ qìqìW| j1 ƒ  |  j j2 rx| j	 |  j j2 d ƒ | j3 |  j j4 d ƒ n  |  j5 ƒ  |  j6 ƒ  t. |  j d d ƒ súyK |  j d j7 ƒ  }	 d d  l8 }
 |
 j9 i d d 6ƒ |  j d j |	 ƒ WqúqúXn  | j: |  j d ƒ |  j& |  j d t j d ƒ | j ƒ |  j& |  j d t j d ƒ | j ƒ |  j& |  j d t j d ƒ | j ƒ d  S(   Ni   i   i    Rñ  Rò  Ró  g        iÿÿÿÿR[  Rr   R\   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rç  Ræ  Rã  Rô  Rõ  Rö  R÷  Rø  Rù  Rú  (;   R3  R›   R°  Rû  R   RI   Rü  Rý  Rþ  Rœ   Rÿ  R   R  Rä   Rk   R_   R  R  RX   R  R^   R[  RÌ   RP  R  RQ  R   R@   Rs   Rt   R¼   RÄ   R  R  R  R  R  R	  RH   Rç  Ræ  Rã  R
  R  R  R  R  Rø  R  R­   R�   Rà  Ro   R”   R  R  R  R  R  (   RO   Râ  R  t   sideStereo_glWidgetRu   RÇ   RÈ   RÉ   R  R  R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRí  ¢  sz    &&&
"&&&
$.$")


&&c         C   sì  t  |  j ƒ d k r d  S|  j d k rFt j d d d d d d d d d d |  j d d d d d d d g ƒ } t j d d d d d d d d d d |  j d d d d d d d g ƒ } | j ƒ  } | j ƒ  } |  j d j | ƒ |  j d j | ƒ t j d d d d d ƒ |  j d _	 t j d d d d d ƒ |  j d _	 n€ |  j d j d  ƒ |  j d j d  ƒ t j d d d d d |  j ƒ |  j d _	 t j d d d d d	 |  j ƒ |  j d _	 |  j d j ƒ  |  j d j ƒ  d  S(
   Ni   Rˆ   i   i   i    g        g      ð?g      à?g      à¿(   R3  R›   R‡   Rk   t   matrixR�   t   to_dpR  R_   R  RX   R‘   R­   (   RO   t
   shear_plust   shear_minust   matpt   matm(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR”   ê  s.     %(,,c         C   si   | j  ƒ  rb t ƒ  j | ƒ } | r= d d  l } | j ƒ  n  t ƒ  j ƒ  j | j d d ƒ ƒ n  ~ d  S(   NiÿÿÿÿR[  t   full(	   t   getPickedAtomsR¯   t   addLabelt   rebuildt   UpdateDisplayt   MGAPPLICATIONt	   clipboardR>   Rè   (   RO   Rß   t   retR%  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR    s    %c         C   s   t  |  d d  ƒ S(   Nt   lastPickEvent(   Rt   RX   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getLastPickEvent  s    c         C   sO   | j  ƒ  } | rK | j ƒ  } | rK x! |  j D] } | j | ƒ q. WqK n  d  S(   N(   R#  Rê   R›   Ré   (   RO   Rß   t   atomsR[   Râ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR    s     c   	   	   C   sˆ  | j  ƒ  } | s d GH~ d  S| j ƒ  |  j d d | ƒ} | rl t j |  | | |  j d i | d 6ƒn  g  } g  } | j ƒ  } | r¢ | j d d | ƒ} n  | j ƒ  } | rê |  j j | j	 ƒ } | rê | j d d | ƒ} qê n  | r)| j
 d d ƒ t j | | | | j d i | d 6ƒn  | rh| j
 d d ƒ t j | | | | j d i | d 6ƒn  |  j t j d ƒ | ƒ ~ d  S(   Ns	   not menu!R¾  Rß   Rì   i    RÅ  t   atomContextMenu(   t   getContextMenut   clearRÜ  Rv  t   populateMenuRî   t   getGuiObjectRç   R  R   t   insertt   emitR   RI   (	   RO   Rß   R1   t   menudeft   dispobj_menudeft   dataobj_menudeft   gui_dispt   pick_dataobjt   gui_data(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR	    s6    
)))	c   	      C   s*  | d k r t  ƒ  j d ƒ n| d k r> t  ƒ  j d ƒ nè| d k r¢ x< t ƒ  D]1 } t | d d  ƒ } | rT | j d d ƒ qT qT Wd	 d  l } | j ƒ  n„| d
 k rÒ xut ƒ  D] } | j d ƒ q¸ WnT| d k rx t ƒ  D] } | j	 d ƒ qè Wd	 d  l } | j ƒ  n| d k rõt
 j j d  d d t
 j j t
 j j ƒ } | t
 j j k r&t } t } t |  j ƒ d k r”|  j ƒ  t } n( t |  j ƒ d k r¼|  j ƒ  t } n  t  ƒ  j ƒ  | rÜ|  j ƒ  qò| rò|  j ƒ  qòq&n1 | d k r&d	 d  l } | j d |  d d ƒ n  d  S(   NR  i   R  i    R  R"   t   label_selectt   label_noiÿÿÿÿR  R  g      ð?R   s
   Close datas   Close all files?i   i   R!  RP   t   moldata_namet   ALL(   R   t   showAllDataObjR  Rt   RX   t	   setparamsR%  R&  t   set_flashingt   set_opacityR    t   QMessageBoxt   questionRF   RG   t   FalseR3  R›   Rí  RR  Rì  t   deleteAllDataObjt   pictureWizardGui(	   RO   R»  RÜ   R"   R%  t   rvt   doSideBySidet   doThreeWayViewRF  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR‡  M  sP     
	
	c         C   s"   d d  l  } | j |  ƒ |  _ d  S(   Niÿÿÿÿ(   t   mgPreferencest   preferencesBrowsert   wPreferences(   RO   RJ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   createPreferencesWindowsy  s    c         C   sñ   |  j  s |  j ƒ  n  |  j  j ƒ  |  j  j ƒ  |  j  j j |  j d ƒ t j j	 ƒ } t
 | ƒ d k rí | d j t ƒ xp t | d j ƒ  ƒ D]U } | d j | ƒ j d ƒ |  j | ƒ k r‘ |  j  j j | d j | ƒ ƒ Pq‘ q‘ Wn  d  S(   Ns   Plugins preferencesi    (   RL  RM  R{   t   raise_t   treet	   findItemsR?   R   t   Qtt   MatchContainsR3  t   setExpandedRR  t   ranget
   childCountt   childRà   t   setCurrentItem(   RO   t   paneTextt   itemst   i(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   showPrefsPane}  s    	'+ c         C   s4   |  j  s |  j ƒ  n  |  j  j ƒ  |  j  j ƒ  d  S(   N(   RL  RM  R{   RN  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR‰  Š  s    	c         C   s)   d d  l  } | j |  ƒ } | j ƒ  d  S(   Niÿÿÿÿ(   R  t   screenShotGUIt   exec_(   RO   R  t   screenShotGui(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRƒ  �  s    c         C   s   t  j j ƒ  j ƒ  d  S(   N(   R    t   QApplicationt   instancet   quit(   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR…  •  s    c         C   s?   x8 |  j  j | ƒ d k r: |  j  j |  j  j | ƒ ƒ q Wd  S(   Ni    (   t   extra_filtersR®  R°  R¯  (   RO   R„   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   removeFileTypeFilter™  s    c         C   s&   | |  j  k r" |  j  j | ƒ n  d  S(   N(   Rb  R   (   RO   R„   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addFileTypeFilter�  s    c         C   s   d G| GHd S(   Ns   Don't know what to do with filei   (    (   RO   Rá  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   defaultFileTypeHandler¡  s    	c         C   s:   x0 |  j  j ƒ  D] \ } } | j | ƒ r | Sq W|  j S(   N(   t   extra_save_handlersRY  t   endswithRe  (   RO   t   fnt   keyt   val(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt    getSaveFileTypeHandlerByFullName¥  s    c         C   sW   x) |  j  D] } y | | ƒ SWq
 q
 Xq
 Wd G| GHt j j |  d d | d ƒ d  S(   Ns   No directory handler fors   Unknown directory/folder types   Directory/folder s"    is not a recognised CCP4MG input.(   t   directory_handlersR    RB  t   warningRX   (   RO   t   fnamet
   dirHandler(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   directoryHandlers«  s    	c         C   s4   |  j  j | j ƒ  ƒ r) |  j  | j ƒ  S|  j Sd  S(   N(   t   extra_handlersRŽ   t   lowerRe  (   RO   R„   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getFileTypeHandlerµ  s    c         C   s   | |  j  | <d  S(   N(   Rq  (   RO   R„   t   handler(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addFileTypeHandler»  s    c         C   s   | |  j  | <d  S(   N(   Rf  (   RO   R„   Rt  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addSaveFileTypeHandler¾  s    c         C   s[   t  j ƒ  } t  j | ƒ } | j ƒ  } | t  j j k rW d d  l } | j | ƒ } n  d  S(   Niÿÿÿÿ(   R    t   QPrintert   QPrintDialogR]  R:   t   AcceptedR  t   makePDF(   RO   t   printerRÎ   t   pdretR  RG  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR‚  Á  s    c         C   s[   d d  l  } |  j | j  ƒ } | r; | j ƒ  | j ƒ  n | j  d |  ƒ } | j ƒ  d  S(   NiÿÿÿÿRP   (   t   downloadPdbRè  t   resetSelectionR{   (   RO   R}  Rð   t   download_open(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRr  É  s    
c         C   s^   t  d |  ƒ } t |  d ƒ r1 | j |  j ƒ n  |  j | t j d ƒ |  j ƒ | j ƒ  d  S(   NRP   Rb  t   filesSelected(	   t   guiOpenR  t
   addFiltersRb  RH   R   RI   t   openFileR]  (   RO   t   gui_open(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRu  Ó  s
    c         C   s!   t  ƒ  } | j ƒ  | j ƒ  d  S(   N(   t
   FILEVIEWERR{   RN  (   RO   t   viewer(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRx  Ú  s    	

c         C   sN   t  |  d ƒ s0 d d  l } | j |  ƒ |  _ n |  j j ƒ  |  j j ƒ  d  S(   NRø   iÿÿÿÿ(   R  t   superposeGuit   superposeWindowRø   Rš  R{   (   RO   R‡  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRy  æ  s
    c         C   sL   t  |  d ƒ s |  j r; d d  l } | j |  ƒ |  _ n  |  j j ƒ  d  S(   Nt   transparencyGuiiÿÿÿÿ(   R  R‰  t   TransparencyDialogRš  (   RO   RŠ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRz  î  s    c         C   sY   t  |  d ƒ s |  j r; d d  l } | j |  ƒ |  _ n  |  j j ƒ  |  j j ƒ  d  S(   Nt   animationGuiiÿÿÿÿ(   R  R‹  R{   RN  (   RO   RÛ   R‹  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR{  õ  s
    c         C   sî   | d k rL t  |  d ƒ sA |  j sA |  j j d d ƒ d k  rE d Sd Snž | d k r† t  |  d ƒ sr |  j rv d S|  j j j Snd | d k rê t  |  d ƒ s¬ |  j r° d  S|  j t j d ƒ } | rê |  j j j | j	 ƒ  ƒ qê n  d  S(	   NRÿ   R‹  t   selectedi   i   i    Rü   R  (
   R  R‹  t   numberOfFramest   presentationt   animation_onRè  R    Rî  R  t	   isChecked(   RO   RÛ   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRý   ý  s     Rô   c         C   sl   d d  l  } | j | d ƒ \ } } t d |  d | d | ƒ } |  j | t j d ƒ |  j ƒ | j ƒ  d  S(   NiÿÿÿÿRÝ  RP   RÛ   R�   R€  (   t   stringt   splitt   guiOpenPresentationRH   R   RI   t   openPresentationR]  (   RO   RÛ   R‘  R�   R„  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRw    s
    RŽ  c         K   sŒ  | j  d ƒ r- | j  d ƒ r- | d } n  d d  l } d d  l } | j | ƒ } | s^ d  Sx7 |  j | j ƒ D]# } | j | k rq | j ƒ  d  Sqq Wx! |  j t ƒ D] } | j ƒ  q¨ Wt j	 j
 t j	 j | d ƒ ƒ r`y  t j t j	 j | d ƒ ƒ Wq`t j ƒ  d  \ }	 }
 } d G| GHt j j t |	 ƒ d ƒ t j j t |
 ƒ d ƒ q`Xn  | d k réd d  l } | j |  d	 | ƒ} t j	 j
 t j	 j | d ƒ ƒ s~t t j	 j | d ƒ d
 ƒ } | j d ƒ | j ƒ  q~n•| d k rrd d  l } | j |  d	 | ƒ} t j	 j
 t j	 j | d ƒ ƒ s~t t j	 j | d ƒ d
 ƒ } | j d ƒ | j ƒ  q~n| j |  d	 | ƒ} t j	 j | ƒ rõt j	 j
 t j	 j | d ƒ ƒ s~t t j	 j | d ƒ d
 ƒ } | j d ƒ | j ƒ  q~n‰ | j  d ƒ r~t j	 j
 | d  ƒ r~t j	 j
 t j	 j | d  d ƒ ƒ s~t t j	 j | d  d ƒ d
 ƒ } | j d ƒ | j ƒ  q~n  | j ƒ  d  S(   Ns   .ccp4mg_presentations   .ccp4mg_presentation.zipiÿÿÿÿt   PRESENTATION_TYPEi   s>   Do not seem to have write permission on presentation directorys   
t   movieRŽ  t   wbs   movie
t	   animations
   animation
s   presentation
s   .zipiüÿÿÿ(   Rg  RŽ  t   mgPresentationRô   RÖ   R{   R“  Rÿ  t   ost   patht   existst   joint   unlinkR’   R“   t   stderrt   writeR*   t   movieGuiRó   R‹  t   isdir(   RO   t   fileR�   t   kwRŽ  R™  t   pR   Ru   R–   R—   R˜   R¡  t   ptfR‹  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR”    s\      
! 	!!!!%%"c         C   s(  | d k rt d d  l  } | j  d t ƒ  d d ƒ } |  j j d d d | j d t ƒ  j ƒ d d  l } | j ƒ  n° | d k rº d d  l } t ƒ  j	 ƒ  } |  j j d d	 d | j ƒ nj | d
 k r$d d  l
 } | j ƒ  } | j
 d | j d d ƒ }	 |  j j d d d | j ƒ }
 |
 j ƒ  n  d  S(   NRC  iÿÿÿÿRP   R   RB  Rö  t   parent_nameRF  RE  RI  t   visiblei   t   VectorsData(   RB  t   GL2DMANAGERR  t
   addDispObjR   R%  R&  RE  t   CRYSTALMANAGERt
   add_objectt   VectorsDispobjR©  t
   addDataObjt
   editVector(   RO   Rö  RB  RC  R%  RE  t   xtlR®  Rí   t   dispt   gui_obj(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR›  U  s     (c
   2   	   C   sI  | r! t  j j | ƒ t j _ n  d d  l }
 d d  l } t  j j | ƒ sO d St  j j	 | ƒ d d j
 ƒ  } d  } | d k rÑ t  j j	 t  j j	 | ƒ d ƒ d } | d k rÑ | d | d j
 ƒ  } qÑ n  | j d ƒ rô |  j | d	 ƒ d  S| j d
 ƒ r	t  j j t  j j | d ƒ ƒ r£t t  j j | d ƒ ƒ } | j ƒ  j ƒ  } | j ƒ  | dS k r£d d	 d g j | ƒ } |  j | d d	 d g | ƒ d  Sn  d GHt |  ƒ } | j d ƒ | j ƒ  } | d k r| d k  r|  j | d d	 d g | ƒ n  d  S| j d ƒ s'| j d ƒ rD|  j | d d d d ƒd  Sd } | dT k rBt d d ƒ } d } xn | D]f } t | d ƒ rr| j rØxB | j d ƒ D]. } t | d ƒ r | j rÎ| d } qÎq q WqØqrqrWt d d g ƒ } xQ | D]F } t | j d ƒ rõ| j j rõ| j rõ| j j rõ| d } qõqõWn  | dU k sZ| dV k rï| rrt j | ƒ } n  | r•| r•| r•t  ƒ  j! } n  | rÁ| rÁt  ƒ  j" d$ | ƒ \ } } n  t d d ƒ } d } xn | D]f } t | d ƒ rÝ| j rCxB | j d ƒ D]. } t | d ƒ r| j r9| d } q9qqWqCqÝqÝWt d d g ƒ } xN | D]F } t | j d ƒ r`| j j r`| j r`| j j r`| d } q`q`Wd d  l# } | j$ | d% |	 ƒ\ } } d& G| G| GH| r| | j% j& k rd' G| GHd S| | j% j& k rw| j
 ƒ  j d( ƒ s?| j
 ƒ  j d) ƒ rwd* GH| | j' d ƒ d } t( ƒ  j) | ƒ } | | ƒ S|  j* | ƒ | rÀd d  l+ } | j+ t( ƒ  d$ | d+ | j, d, t- ƒ}  n | j. d$ | d- | ƒ t/ ƒ  j0 t1 j2 d. ƒ ƒ t/ ƒ  j3 d d d/ | j, d0 | j4 ƒ }! t |! d1 ƒ rG|  j5 d2 k rG|! j6 d3 d ƒ n  t/ ƒ  j0 t1 j2 d4 ƒ ƒ |
 j7 ƒ  | d k rEt( ƒ  j8 d5 d ƒ d6 }" | j9 d7 |" ƒ } | d d k rì| d d k rì| d }# t: j; d ƒ }$ |$ j< t= j> | j? j@ |# ƒ ƒ ƒ }% |% d |% d |% d f |% d |% d8 |% d9 f }& }' |& d |' d d: |& d |' d d: |& d |' d d: f }( tA tB |& d |' d ƒ tB |& d |' d ƒ tB |& d |' d ƒ ƒ }) t |  d; ƒ ré|  jC jD |) d< d= ƒ qéqìqEnVd g jE | ƒ sd> g jE | ƒ rˆ	| r+t j | ƒ } n  d d  lF }* |* jG d? | d@ dA ƒ } tH }+ tI jJ jK |  dB dC dD tI jJ jL tI jJ jM BƒtI jJ jL k r�dE GHt- }+ n  | jN dF |+ ƒ | jO ƒ  t/ ƒ  j3 d dG d/ | j, d0 | j4 ƒ }! tP ƒ  jQ ƒ  }, |, jR | j, ƒ t/ ƒ  jS dH tP ƒ  j, d dI d/ |, j, ƒ |
 j7 ƒ  |  j* | ƒ | d k rEt( ƒ  j8 d5 d ƒ | jT jU ƒ  }- |  jC jD |- d< d= ƒ qEn½dJ g jE | ƒ rò	d d  lV }. |. jW | ƒ } | rEt/ ƒ  j3 d dK d/ | j, d0 | j4 ƒ }! |
 j7 ƒ  qEnS| jX ƒ  jE | ƒ rÁ
| dL k rÁ
| rc
|  jY ƒ  \ }/ }0 | jZ d? t[ | ƒ dM t\ ƒ  dN i |/ dO 6|0 dP 6ƒ } n! | jZ d? t[ | ƒ dM t\ ƒ  ƒ } | j] rEt/ ƒ  jS d dQ d/ | j, dH dR ƒ }! |
 j7 ƒ  qEn„ t  j j^ | ƒ rà
|  j_ | ƒ S| j` d ƒ d k rAta | ƒ }1 x3 |1 D]+ } t( ƒ  j) | ƒ } | |  jb k sPqqW| | ƒ Sd Sd S(W   Niÿÿÿÿi   i   t   gzi    R  R   s   .ccp4mg_presentation.zipRŽ  s   .ccp4mg_presentationR•  R–  R˜  s-   Maybe a presentation, animation or movie ....s!   Open presentation/movie/animationi   s	   .mgpic.pys   .pklt   restore_statust   restore_viewt   mapRö  t   MolDataR¨  t   MolDispR÷  t	   is_em_mapt   entt   brkt   pdbt   cifs   ent.gzs   brk.gzs   pdb.gzs   cif.gzt   drawing_stylet   customResCIFFiless   openpdbfile rets   Error opening files   .cifs   .cif.gzs;   This is not a coordinate cif file, maybe a reflection list?R<  t   recentreIfOnlyOnet
   mgpic_filet   applyWizardR   R"   RÙ   R}   RÓ   t   finishedApplyWizardt   glideR   t   commandi   i   g       @R^   g      @g      ô?s   map.gzt   filenamet   filetypet   MAPs   EM or Xtal maps   Is this an EM map?t   buttonss   EM map!!t   emMapt   MapDataR§  RE  t   vectorR©  t   svgRP   R•   t   xt   yt   Images   Legends&Images(   s   movies   presentations	   animation(   s   map(   R»  R¼  R½  R¾  (   s   ent.gzs   brk.gzs   pdb.gzs   cif.gz(c   Rš  R›  t   dirnameRÁ   RÂ   R»   R%  t	   MGGLImageRœ  t   splitextRr  RX   Rg  R”  R�  Ró   t   readt   stripRÿ  R¯  R6   t   setWindowTitleR]  t   loadStatusFilet   get_dataobjR  R¨  R  RP   Rº  t   utilst   gunzipToNamedFilet   PICTUREWIZARDt   default_drawing_stylet   read_mgpic_file_choicest   modelt   openpdbfileR¸  t   NO_ATOMS_IN_CIF_FILEt   rfindt
   MAINWINDOWRs  t   addToRecentListRF  R   RR  t   applyDrawingStyleR   R3  R   RI   R¯  t
   name_labelR€   RÙ   R&  R�  t   parse_selectionRk   t   doubleat   frompointert   mmdbt   realtype_to_doublet   molHndt   Extentt   maxt   absR^   Rx   R®  R·  RÌ  RD  R    RB  RC  t   Yest   Not   loaddatat   create_contoursR¬  R­  t
   set_sourceR«  t   clipper_mapt	   GetMaxDimR®  t   openvectorfilet   supportedReadFormatst#   getGLWidgetFractionalCursorPositionRÑ  R*   Rª  t   isValidR¢  Rp  R   R
   Re  (2   RO   R£  R¿  t   use_current_stylet   show_wizard_choicesR„   t   pasteAtCursort   setDefaultDirectoryRÂ  RÀ  R%  RÓ  t   extt   extgzt   ext2R¦  t	   pres_typeR³  t   dialogt   rtt   nvist   theDataobjsRÜ   t   dispobjt   mapdispobjst   choicesRß  RG  t   mt   suffixRt  RF  R   t   m_guit	   selectiont   selHndt   tmpt   rtdet   minet   maxet   midet   theSizeR·  RË  R±  t   radiusR®  t   xfract   yfracR   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRƒ  m  s*     &!
 		3		3	<
*'
 
$7?H$$:	
'(
'!8!	$
c         C   s~   t  j d d ƒ } | j d ƒ j ƒ  } | | k rC | j | ƒ n  | d  } | j d t  j | ƒ ƒ | j ƒ  |  j ƒ  d  S(   Nt   CCP4t   CCP4MGt   recentFileListi   (	   R   t	   QSettingst   valuet   toStringListt   prependt   setValuet   QVariantt   synct   setupRecentList(   RO   t   ft   settingst   recentFiles(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRä  -  s    

c         C   s¿  t  j d d ƒ } | j d ƒ j ƒ  } t t t | ƒ ƒ ƒ } t | ƒ } d g |  _ x9| D]1} t j	 j
 t | j ƒ  ƒ ƒ } t j	 j t | j ƒ  ƒ ƒ t k r¬ q^ n  t j d k rî d d  l } d  | _ d  | _ | j ƒ  j ƒ  } n6 d d  l } | j ƒ  j d ƒ j d ƒ j d	 d
 ƒ } t d t | j ƒ  ƒ d d
 d d d t j |  j t | j ƒ  ƒ d d d d ƒƒ |  j | <|  j j  | ƒ q^ Wd |  j d d d d d g g |  j! d <d  S(   NR  R  R  s   Recent filest   win32iÿÿÿÿt   {t   }t   -R  Rà   Rñ   Râ   s   triggered()Rã   Rû  i   Rü  i    Ró   R¿  s   Edit/show presentationRö   Rô   Rõ   RÀ  ("   R   R  R  R  R·  t   sett   sortedRÖ  Rš  R›  t   basenameR*   t   toUtf8t   isfileRD  R’   R×  t   uuidRX   t   _uuid_generate_timet   _uuid_generate_randomt   uuid4t   get_hext   msilibt   gen_uuidRÖ  t   replaceR)   RK   RL   Rƒ  Rë   R   R­  (   RO   R$  R%  t   fnewt   bnR/  t   uuid_strR4  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR"  7  s&    $		*[c         C   sg  | s
 d  St  j j | ƒ d d } t d d ƒ } t j ƒ  } t j d k r� d d  l } d  | _
 d  | _ | j ƒ  j ƒ  } n6 d d  l } | j ƒ  j d ƒ j d ƒ j d d	 ƒ } t  j j | | ƒ }	 d
 }
 xä | D]Ü } t | d ƒ rR| j rRt | j ƒ d k rR| j d
 rR| j d rR| j d rR| j GH| j | j d ƒ nY d GHy t  j |	 ƒ Wn n Xt  j j |	 d t |
 ƒ d ƒ } d G| GH| j | ƒ |
 d }
 qÙ W| d k r"| rt ƒ  j d | d | ƒ } | rt j j |  d d | ƒ qqct ƒ  j d | ƒ nA | j d ƒ rGt  ƒ  j! d | ƒ n t" ƒ  j# | ƒ } | | ƒ d  S(   Ni   Rö  R©  R&  iÿÿÿÿR'  R(  R)  R  i    RÇ  i   s   vectors have no filename!t   Vectors_s   .vectors   Trying to savet   pklt   statuss   Error saving status files   Error writing file s	   .mgpic.py($   Rš  R›  RÔ  RÙ  RÚ  t
   get_CCP4MGR’   R×  R/  RX   R0  R1  R2  R3  R4  R5  RÖ  R6  R�  R  RÇ  R3  t	   save_filet   makedirsR*   R  t   write_pickle_fileR    RB  Rm  R	  Rg  t   PICTUREDEFINITIONt   save_picture_definitionRã  Rk  (   RO   R£  t   saved_statusRÿ  t   vecst
   ccp4mg_dirR/  R9  R4  t   newDirt   ivect   vect   newFNameRG  Rt  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   saveStatusFileQ  sJ     		*T#		 iÿÿÿÿc      	   C   sˆ  t  j j | ƒ d d k râd G| G| G| GHt ƒ  j d | ƒ } | d d k  rp t j j |  d | d ƒ d  S| d rât j	 ƒ  g } | r¯ | j
 t  j j | ƒ d ƒ n  t ƒ  j | | ƒ \ } }	 }
 } | | k r�t ƒ  j | d |	 |
 ƒ } | rt ƒ  j ƒ  n  g  } | s%d g } n  t ƒ  j d d d d	 d
 | d | ƒ } | rxt ƒ  j ƒ  d d  l } | j ƒ  n  t ƒ  j d d ƒ d  Sd d  l } | j |  | ƒ } | j ƒ  } | t j j k rØ| j ƒ  \ }	 } t ƒ  j | d |	 | ƒ } | rt ƒ  j ƒ  n  g  } | s&d g } n  t ƒ  j d d d d	 d
 | d | ƒ } | rÔt ƒ  j ƒ  d d  l } | j ƒ  t d d ƒ } x„ | D]| } t | d ƒ rŒt  j j t  j j | j d ƒ d ƒ } | rt ƒ  j | j ƒ } | j  | | j ƒ | j! ƒ  qqŒqŒWt ƒ  j d d ƒ t j j" |  d d t j j# t j j$ Bƒ } | t j j$ k r`d  S| j% |  ƒ } d t  j j | ƒ d } | j& | ƒ | j' j( | ƒ |  j) | t* j+ d ƒ |  j, ƒ | j ƒ  } n  d  Sd  Sqân  | rt ƒ  j ƒ  |  j- t* j+ d ƒ ƒ n  t  j j | ƒ d d k s0| ró| rxg  } | sNd g } n  t ƒ  j d d d | d
 | d | ƒ } qB| rBt ƒ  j. d | d
 | ƒ } | d k rÃt j j |  d d | ƒ d  S| d k rðt j j |  d d | ƒ d  SqBnO t  j j | ƒ d d k r+t/ ƒ  j0 d | d d ƒ n |  j1 | d d ƒd  S| r„t ƒ  j ƒ  d d  l } | j ƒ  |  j- t* j+ d ƒ ƒ n  d  S(   Ni   s   .pklRØ  RÇ  i    s   Error reading status filet   viewt   restore_dataR  R<  t   exclude_listiÿÿÿÿR   Rö  R¸  i   s   Save status files*   Save the status with new data file names?
s   Save updated status from file: R€  t   RestoringFiles   Error reading s   No data in file s   .pyt   keep_currentRû  t   RestoredFile(2   Rš  R›  RÔ  R  t   get_status_data_filesR    RB  Rm  RÚ  t   get_HOMER   R’  t   edit_status_data_filesR   RE  Rµ  t   loadAllDataObjR%  R&  R   t	   statusGuit   lostFilesGuiR]  R:   Ry  t   getFilesRÙ  R  R,  RÇ  Rç   R   t   renameuniquenamet   updateLabelRC  R~  RG   t   guiSaveStatusR×  t
   fileDialogt
   selectFileRH   R   RI   RJ  R3  R¶  RA  t   restore_picture_definitionRƒ  (   RO   R£  R<  Rµ  R¶  t   removeRG  t   hintst   nLostt   objListt   fileDeft   nFoundt
   status_newRM  t   rv3R%  RU  t   lostGuit   rv2t   fileDefnR  t   theDOt   theNamet   gdot   retvalt   saveGuiR   t   rv4(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRØ  ‹  s´    
 ! ' '
) 
" *

c         C   sK   d d  l  } | j d |  ƒ } |  j | t j d ƒ |  j ƒ | j ƒ  d  S(   NiÿÿÿÿRP   R€  (   RU  t
   guiRestoreRH   R   RI   RØ  R]  (   RO   RU  R„  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR|  ì  s    c         C   sK   d d  l  } | j d |  ƒ } |  j | t j d ƒ |  j ƒ | j ƒ  d  S(   NiÿÿÿÿRP   R€  (   RU  RZ  RH   R   RI   RJ  R]  (   RO   RU  R„  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR}  ò  s    c      	   C   sÝ  d d  l  } d GHt j j ƒ  j ƒ  j ƒ  d d  l } | j ƒ  } | j ƒ  } t	 | d ƒ r¼ t
 | j ƒ r¼ | j ƒ  r¼ t	 | d ƒ r¼ t
 | j ƒ r¼ t j j ƒ  j ƒ  j | j ƒ  ƒ d  S|  j j ƒ  j ƒ  |  j j ƒ  j ƒ  g } d } t d ƒ } t j d d d	 d
 t t j ƒ  ƒ d t ƒ } | j }	 | j ƒ  t j |	 ƒ t j d k r�t j j  ƒ  r�d GH| j! d |	 d | d | d t" ƒ }
 n | j! d |	 d | d | ƒ }
 t j# |	 ƒ } t j j ƒ  j ƒ  j$ | ƒ d  S(   NiÿÿÿÿRp   t   hasSelectedTextt   selectedTextiH   t   screenshot_preferencesR  s   .pngt   prefixt   ccp4mgt   deleteRÇ  s
   Using FBOsRÇ  R$   t   dpit   use_pbuffer(%   R  R    R_  R`  R(  R/  t   MGApplicationt   QtAppt   focusWidgetR  t   callableRp  Rq  R>   R^   R$   R¥   R¦   RŒ   t   tempfilet   NamedTemporaryFileR*   Rš  t   getpidRD  R   Rÿ  Rž  R’   R×  R   t   QGLFramebufferObjectt   hasOpenGLFramebufferObjectst   makeScreenshotRR  t   QPixmapt	   setPixmap(   RO   R  Rx  t   appt   fwR$   Rv  R+   t   tfileR   RG  t   pix(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR�  ù  s,    H"*.	
'c         K   sÁ  y t  d ƒ j ƒ  d |  _ Wn |  j |  _ n Xd } d d d g } d d d g } xc|  j d d !D]Q} t j ƒ  } t d d	 g ƒ } t d d
 g ƒ }	 xd|	 D]\}
 t |
 j	 d ƒ r¥ |
 j	 j
 r¥ |
 j r¥ |
 j	 j r¥ |
 j	 j j ƒ  } | j ƒ  | j ƒ  | j ƒ  f } |
 j	 j j ƒ  } |  j |  j k r—|  j |  j k rZd } | | } n) |  j |  j k rd } | | } n d  S| j | | ƒ n  |  j |  j k r| t j | | | ƒ } | t j | | | ƒ } | j ƒ  | j ƒ  | j ƒ  f } | j ƒ  | j ƒ  | j ƒ  f } | d | d k  rB| d | d <n  | d | d k  rg| d | d <n  | d | d k  rŒ| d | d <n  | d | d k r±| d | d <n  | d | d k rÖ| d | d <n  | d | d k rþ| d | d <qþqq¥ q¥ WxÆ| D]¾}
 t |
 d ƒ rt |
 d ƒ rt |
 j	 d ƒ r|
 j r|
 j	 j rt |
 d ƒ rÊt |
 j d ƒ rÊt |
 j j ƒ rÊt |
 j	 d ƒ rÊt |
 j	 j d ƒ rÊt |
 j	 j j ƒ rÊ|  j |  j k r½|  j |  j k r2t j |
 j	 j j |
 j j ƒ  ƒ ƒ } |
 j	 j j |
 j j ƒ  ƒ } n^ |  j |  j k rŒt j |
 j	 j j |
 j j ƒ  ƒ ƒ } |
 j	 j j |
 j j ƒ  ƒ } n d  S| | } t j | ƒ | } | j | ƒ n  |  j |  j k rÇt j  d ƒ } | j! t j |
 j	 j j" |
 j j ƒ  ƒ ƒ ƒ } | d | d | d f | d | d | d f } } t |
 d ƒ rã|
 j# rãt |
 j	 d ƒ rã|
 j	 j j$ d d ƒ } | d | d d | d | d d | d | d d f } xø| D]} | t j | ƒ } | j ƒ  | d k  r| j ƒ  | d <n  | j ƒ  | d k  r8| j ƒ  | d <n  | j ƒ  | d k  ra| j ƒ  | d <n  | j ƒ  | d k rŠ| j ƒ  | d <n  | j ƒ  | d k r³| j ƒ  | d <n  | j ƒ  | d k rÍ| j ƒ  | d <qÍqÍWqÄ| d | d k  r| d | d <n  | d | d k  r-| d | d <n  | d | d k  rR| d | d <n  | d | d k rw| d | d <n  | d | d k rœ| d | d <n  | d | d k rÄ| d | d <qÄqÇqÊqqW|  j |  j k r6| d | d d | d | d d | d | d d f } | j% | d | ƒd  St& | ƒ d k rh t j d d d ƒ } x | D] } | | } qdW| t' | ƒ } | j% | j ƒ  | j ƒ  | j ƒ  g d | ƒqh qh Wd  S(   NR-   R.   g        g    ÐcÁg    ÐcAi    i   Rö  R¹  R÷  Rº  g      ð?i   R¨  RP   t	   SelHandlet	   getSelHndRì  t   CentreOfMassi   i   i   t   doBiomoleculeg       @RÅ  ((   RŒ   R�   R-   R2   R›   Rk   t   CartesianVectorR  R  RP   Rº  R¨  Rõ  t	   GetOrigint   get_xt   get_yt   get_zRö  R3   R4   R   t	   CartesianRˆ  R{  R‰  Rì  RŠ  Rê  Rë  t   CentreOfCoordinatest   NumberOfAtomst   MassRè  Ré  Rí  R‹  t   GetBiomoleculeAsMatricesRé   R3  R�   (   RO   RÅ  Rá  t
   total_masst
   total_maxet
   total_mineRŸ   t   originst   dispobjsR  R  t   map_orig_cartt   map_origR  t   masst   mine_ct   maxe_cR  R  t   rtdt   cartR  R  t   matricesR  t   matt   midett   total_ot   ot   mid(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR�  	  sÆ    3!!!      Eo'!'!
07*?            ?c         C   sW   |  j  t ƒ } | r' d GH| j ƒ  n, t d d ƒ } | rN t d |  ƒ } n d GHd  S(   Ns   CentreOn gui already openRö  R¸  RP   s   No loaded PDB(   Rè  t   guiCentreOnR{   RÙ  (   RO   R   t   MolData_list(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR’  s	  s    c         C   s  d d  l  } d d  l } | r0 | \ } } } nÌ t j ƒ  }	 | j ƒ  }
 | j | | |	 ƒ }
 |	 j ƒ  } | d k ry d  Sd } d } d } xP t d | ƒ D]? } | j |
 | ƒ } | | j	 } | | j
 } | | j } q› W| | } | | } | | } |  j j | | | g ƒ d  S(   Niÿÿÿÿi    g        (   t   mmdb2t   mmutRk   t   intpt
   newPPCAtomt   GetAtomSelIndexR  RT  t	   getPCAtomRÏ  RÐ  t   zR^   Ré   (   RO   t   positionRì  R  Rê  R«  t   xxt   yyt   zzt	   selindexpt   SelAtomst	   nSelAtomst   nt   pAtom(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRé   ‚	  s,     


c         C   s   | j  ƒ  d  S(   N(   t   accept(   RO   Rä  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   dragEnterEvent£	  s    c         C   s   | j  ƒ  d  S(   N(   Rº  (   RO   Rä  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   dragMoveEvent¦	  s    c         C   s#   |  j  t | j ƒ  ƒ d d ƒd  S(   NRû  i   (   Rƒ  R*   t   toAscii(   RO   R£  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   DealWithOpenFileEvent©	  s    c         C   sÍ   |  j  j t j j ƒ  ƒ } |  j  j ƒ  } t | j ƒ  ƒ | j ƒ  } d t | j	 ƒ  ƒ | j
 ƒ  } | d k s– | d k  s– | d k s– | d k  r¥ d } d } n  t d | ƒ } t d | ƒ } | | f S(   Ng      ð?i   i    gÍÌÌÌÌÌì?(   R^   t   mapFromGlobalR    t   QCursorR[   R$   R�   RÏ  R¥   RÐ  R¦   t   min(   RO   t	   widgetPost
   widgetSizeR  R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRù  ³	  s     0	c      	   C   s$  | j  ƒ  rò t j ƒ  } | d k r[ t j d d d d t t j ƒ  ƒ d t d | ƒ } n. t j d d d d t t j ƒ  ƒ d t ƒ } | j	 } | j
 ƒ  t j | ƒ t j | j ƒ  ƒ } | j | ƒ |  j | d d	 d
 | ƒ} d G| GHn  | j ƒ  rð| j ƒ  rðd d  l } | ra|  j ƒ  \ }	 }
 | j d t ƒ  d d d i |	 d 6|
 d 6ƒ } n | j d t ƒ  d d ƒ } |  j j d d d | j	 d t ƒ  j	 ƒ | j d t | j ƒ  j ƒ  ƒ j d d ƒ d ƒ d d  l } | j ƒ  n  d } x' | j ƒ  D] } |  j | d
 | ƒqW| S(   NR  R  s   .pngRs  Rt  Ru  t   dirRû  i   Rý  s   Save clipboard image toiÿÿÿÿRP   R   RB  R•   RÏ  RÐ  Rö  R§  s   <p>s   
s   </p><p>s   </p>i    (    t   hasImageRÚ  R=  R|  R}  R*   Rš  R~  RD  R   Rÿ  Rž  R    t   QImaget	   imageDataR¨   Rƒ  t   hasTextt   hasUrlsRB  Rù  Rª  R  R«  t   set_textRà   R-  R6  R%  R&  t   urlst   DealWithUrl(   RO   t   mimeDataRý  RE  R†  R   t   imageRG  RB  R  R  RC  R%  t   url(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   DealWithMimeData¿	  s4    7.	
2(3c   	         sB  | GHd  d  ‡  f d † } t | j ƒ  ƒ d k rh ˆ  j t | j ƒ  j ƒ  ƒ d d d | d t ƒ} nÖ d d  l } d d  l } | j	 ƒ  } ˆ  j
 | t j d ƒ t j | t j j t | j ƒ  ƒ ƒ ƒ ƒ | j t j | j t | j ƒ  ƒ ƒ ƒ } ˆ  j j | ƒ ˆ  j
 | t j d	 ƒ t j ˆ  j j | ƒ ƒ | j ƒ  d  S(
   Nc            sÆ   | s
 d  Sd  d  ‡  f d † } d g } | j ˆ  j ƒ t j ˆ  d | d |  ƒ} | j d |  ƒ ˆ  j | t j d ƒ t	 j
 | | ƒ ƒ ˆ  j | t j d ƒ | j ƒ | j t ƒ | j ƒ  d  S(   Nc            s'   t  j |  | ƒ ˆ  j | d d ƒd  S(   NRû  i   (   t   shutilt   copy2Rƒ  (   t   dlfnameRn  (   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRt  ä	  s    sT   Model coordinate files (*.pdb *.cif *.ent *.brk *.pdb.gz *.cif.gz *.ent.gz *.brk.gz)t   filterst   defaultFileNames   Save R¨   (   RX   Rn   R   RÁ   t   MGSaveFileDialogR×  RH   R   RI   Rv  t   partialWithSignalRÿ  t   setModalRR  R{   (   Rn  RÓ  Rt  RÔ  t   fd(   RO   (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt
   downloadedá	  s    	(R£  Rû  i   Rý  Rþ  iÿÿÿÿt   DownloadFinisheds
   finished()(   RX   R*   t   schemeRƒ  t   toLocalFileR-  RR  R}  t   UtilityThreadt   downloadPdbCoreRH   R   RI   Rv  R×  Rš  R›  R,  RK   RL   t   downloadMaint   toStringR~   R   R^  t   start(	   RO   RÏ  Rý  RÚ  RG  R}  RÞ  t   dpdbt   downloadThread(    (   RO   s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÌ  ß	  s    6@*.c         C   s   t  ƒ  j d ƒ d  S(   Ns
   index.html(   t   HELPBROWSERt
   loadMgHelp(   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR˜  ú	  s    c         C   s    t  j j t j j | ƒ ƒ d  S(   N(   R    t   QDesktopServicest   openUrlR   t   QUrlt   fromLocalFile(   RO   R#  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   openPDFý	  s    c         C   sì   t  |  d ƒ sË d d  l } | j ƒ  |  _ |  j |  j t j d ƒ |  j ƒ |  j j d d d d d g ƒ |  j	 d |  j
 ƒ t j d	 t j j d
 t ƒ |  _ |  j j j |  j ƒ |  j j j d ƒ n  |  j j ƒ  |  j j ƒ  |  j S(   Nt   helpGuiiÿÿÿÿt   CustomMimeTypeRequestedR½  t   mtzR»  t   zipt   pdft   defaultDockAreat   tabifys   CCP4mg Browser(   R  t   MGWebBrowsert   MGBrowserWindowRì  RH   R   RI   RÌ  t   setCustomMimeTypesRu  Rë  t   MGSimpleDialogt   MGSimpleDockDialogRQ  t   RightDockWidgetAreaRD  t   helpGuiDt
   dockWidgett	   setWidgetR×  R{   Rš  (   RO   Ró  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getHelpBrowser 
  s    "!c         C   sQ   t  |  d ƒ r, |  j r( |  j j ƒ  n  d  Sd d  l } | j d |  ƒ |  _ d  S(   NR@  iÿÿÿÿRP   (   R  R@  Rš  t   HelpAboutDialog(   RO   Rý  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR™  
  s    	c         C   sA   d d  l  } | j ƒ  } | j ƒ  } |  j | j ƒ  d t ƒd  S(   NiÿÿÿÿRý  (   Rx  Ry  R(  RÐ  RÍ  RR  (   RO   Rx  R„  R(  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR†  
  s    c         C   sI   |  j  | j ƒ  ƒ } | s; | j t j j ƒ | j ƒ  n
 | j ƒ  d  S(   N(   RÐ  RÍ  t   setDropActionR   RQ  t   IgnoreActionRº  t   ignore(   RO   Rä  RG  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt	   dropEvent!
  s
    c         C   sP   t  |  j t j d ƒ j ƒ  ƒ } x |  j D] } | j | ƒ q+ W|  j ƒ  d  S(   NR³   (   t   intRè  R    Rî  R�  R›   RÅ   R®   (   RO   t   stateRŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR�  )
  s    ! c         C   s}   t  |  j t j d ƒ j ƒ  ƒ } xK t t t |  j ƒ ƒ |  j ƒ D]( \ } } | d k rC | j	 | ƒ qC qC W|  j
 ƒ  d  S(   NR´   i    (   R  Rè  R    Rî  R�  Rï  RT  R3  R›   RÆ   R®   (   RO   R  t   iwidgetRŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRž  .
  s
    !.c         C   s1   t  |  j t j d ƒ j ƒ  ƒ } | |  j _ d  S(   NRY  (   R  Rè  R    Rî  R�  R^   RX  (   RO   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¢  5
  s    !c         C   s1   | d |  j  _ |  j  j ƒ  |  j |  j  ƒ d  S(   Ng      N@(   R^   Rr   R­   Ræ  (   RO   Rj  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   handleZoomSpinChanged9
  s    c         C   s>   |  j  j t ƒ |  j  j |  j j d ƒ |  j  j t ƒ d  S(   Ng      N@(   t	   zoom_spint   blockSignalsRR  R  R^   Rr   RD  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   handleZoomChanged>
  s    c         C   s¥  t  |  j t j d ƒ j ƒ  ƒ } t |  d ƒ s_t j ƒ  |  _ |  j j d ƒ |  j j	 d ƒ |  j j
 d ƒ |  j |  j t j d ƒ |  j ƒ |  j j |  j j d ƒ |  j |  j t j d ƒ |  j ƒ t j ƒ  |  _ t j ƒ  } |  j j d	 d	 d	 d	 ƒ | j d	 d	 d	 d	 ƒ t j |  j d
 ƒ ƒ } | j | ƒ | j |  j ƒ |  j j | ƒ n  | r‹|  j ƒ  j |  j ƒ |  j j ƒ  n |  j ƒ  j |  j ƒ d  S(   NRZ  t   zoom_spin_allg{®Gáz„?i † gš™™™™™¹?Ræ  g      N@s   valueChanged(double)i    s   Zoom:(   R  Rè  R    Rî  R�  R  t   QDoubleSpinBoxR  t
   setMinimumt
   setMaximumt   setSingleStepRH   R^   R   RI   R  R  Rr   R  t   QWidgetR	  t   QHBoxLayoutt   setContentsMarginsR=   R?   R@   RN   RÞ  t   addPermanentWidgetR{   R  (   RO   R  RQ   t
   zoom_label(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR£  C
  s*    !""c         C   sª   t  |  j t j d ƒ j ƒ  ƒ } d d  l } | j ƒ  } | j | ƒ | j t  |  j t j d ƒ j ƒ  ƒ ƒ |  j	 | d | ƒx t
 ƒ  D] } | j ƒ  q‹ Wt ƒ  d  S(   NRT  iÿÿÿÿR]  t   stereoState(   R  Rè  R    Rî  R�  R  t   getMaxSampleBuffersFormatRÌ   t   setSampleBufferst   setGLWidgetFormatsR  t   set_redraw_textt   UPDATEDISPLAY(   RO   R  R  RÐ   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¤  [
  s    !( c         C   s£   t  |  j t j d ƒ j ƒ  ƒ } | se |  j |  j ƒ  t j j	 @ƒ |  j
 j ƒ  |  j ƒ  j ƒ  n: |  j |  j ƒ  t j j	 Bƒ |  j
 j ƒ  |  j ƒ  j ƒ  d  S(   NRW  (   R  Rè  R    Rî  R�  t   setWindowStatet   windowStateR   RQ  t   WindowFullScreenR¿   R{   RÞ  R|   (   RO   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¡  e
  s    !c         C   s]   t  |  j t j d ƒ j ƒ  ƒ } x5 |  j D]* } | j | ƒ | j | ƒ | j ƒ  q+ Wd  S(   NRU  (	   R  Rè  R    Rî  R�  R›   R  RÌ   R­   (   RO   R  RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR   p
  s
    !c         C   sª   t  |  j t j d ƒ j ƒ  ƒ } d d  l } | j ƒ  } | j | ƒ | j t  |  j t j d ƒ j ƒ  ƒ ƒ |  j	 | d | ƒx t
 ƒ  D] } | j ƒ  q‹ Wt ƒ  d  S(   NRT  iÿÿÿÿR]  R  (   R  Rè  R    Rî  R�  R  R  RÌ   R  R  R  R  R  (   RO   R  R  RÐ   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRŸ  w
  s    !( c         C   s[  d d  l  } g  } d } g  } x|  j D]} |  j | t j d ƒ |  j j ƒ | j  |  |  j d | ƒ}	 | j rŠ |	 j	 | j d ƒ n  |	 j
 | j d ƒ | j |	 _ | j |	 _ | j |	 _ | j |	 _ |	 j | j ƒ  ƒ | j ƒ  \ }
 } } |	 j |
 | | ƒ |	 j |  j ƒ |	 j |  j ƒ |	 j |  j ƒ |	 j | ƒ |	 j | ƒ |  j |	 t j d ƒ |  j ƒ |  j |	 t j d ƒ |  j ƒ |  j |	 t j d ƒ |  j ƒ |  j |	 t j d	 ƒ |  j  ƒ |  j |	 t j d ƒ |  j j ƒ | j! |	 ƒ | j! |  j" j# | ƒ ƒ |	 j$ |  j d ƒ | d } q( WxY t% |  j ƒ d k r“|  j j& ƒ  } | j' ƒ  | j( ƒ  | j) ƒ  |  j" j* | ƒ ~ q;W| |  _ | d |  _ d } xš |  j D]� } |  j" j+ | | | d | | d | | d
 | | d ƒ | j, ƒ  | j- d ƒ | j' ƒ  |  j | t j d ƒ |  j j ƒ | d } qºW|  j. ƒ  d  S(   Niÿÿÿÿi    Rõ  R[  i   Rç  Ræ  Rã  Rô  i   i   (/   R  R›   Rû  R   RI   R  R  R^   R�   Rœ   Rà  Ro   Rr   R\   R³   R  R  t   getExtraMatrixR¼   RÄ   R  R  R  R  R  R	  RÌ   R  RH   Rç  Ræ  Rã  R
  R   R   t   getItemPositionR  R3  R°  R­   Rÿ  t   removeMouseBindingsR  R@   t   reInitializeTextPrimst   rebuildAllDisplayObjectsR  (   RO   RÐ   R  t   doZalmanStereoR  t
   newWidgetsRZ  t	   positionsRŸ   t	   newWidgetRÇ   RÈ   RÉ   Râ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR  �
  sb    "	"



	<

"c         C   sP   t  |  j t j d ƒ j ƒ  ƒ } x |  j D] } | j | ƒ q+ W|  j ƒ  d  S(   NR^  (   R  Rè  R    Rî  R�  R›   t   setFogR®   (   RO   R  RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¥  ¾
  s    ! c         C   sP   t  |  j t j d ƒ j ƒ  ƒ } x |  j D] } | j | ƒ q+ W|  j ƒ  d  S(   NR_  (   R  Rè  R    Rî  R�  R›   t   setSlabR®   (   RO   R  RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¦  Ã
  s    ! c         C   sÖ   | d k rh d d  l  } | j d d ƒ |  _ |  j |  j t j d ƒ |  j ƒ |  j j t j j	 ƒ nj t
 ƒ  j | ƒ } x0 |  j D]% } | j | d | d | d ƒ q„ Wx t ƒ  D] } | j ƒ  q· Wt ƒ  d  S(	   NRg  iÿÿÿÿt   selected_colourRe  t   ColourSelectedi    i   i   (   RÁ   t   mgColourBrowsert   backgroundGuiRH   R   RI   R¨  t   setAttributeRQ  t   WA_DeleteOnCloset   MGCOLOURt   RGB255R›   RÄ   R  R  R  (   RO   RÛ   RÁ   t   rgbRŸ   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¨  È
  s    "# c         C   sE   d d  l  } | d } d G| GH| j j | i  ƒ } |  j | ƒ d  S(   Niÿÿÿÿi   s   MGMainWindow.setLighting(   t   LightingGuit   CUSTOM_STYLE_DEFINITIONSRæ   t   setLightParams(   RO   R#   R0  R•   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR©  Ö
  s
    
	c         C   sH  t  j |  ƒ } | j d ƒ | j t j j ƒ t  j ƒ  } t  j d ƒ } | j	 | ƒ t  j
 |  ƒ } | j d ƒ | j d d ƒ | j	 | ƒ t  j d ƒ } | j	 | ƒ t  j
 |  ƒ } | j d ƒ | j d d ƒ | j	 | ƒ | j | ƒ |  j | t j d ƒ |  j ƒ |  j | t j d ƒ |  j ƒ |  j ƒ  | j ƒ  d  S(	   Ns   Main window sizes   Window heightt   window_heighti    iˆ  R¥   t   window_widths   valueChanged(int)(   R    R:   R×  R+  R   RQ  R,  R  R=   R@   t   QSpinBoxt   setObjectNamet   setRangeRN   RH   RI   t   setWindowHeightt   setWindowWidtht   setWindowSizeGuiR{   (   RO   t   windowRQ   R"   R¦   R¥   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR•  Ý
  s*    
c         C   s€   |  j  t j d ƒ } | r> | j |  j d j ƒ  j ƒ  ƒ n  |  j  t j d ƒ } | r| | j |  j d j ƒ  j ƒ  ƒ n  d  S(   NR3  i    R4  (   Rè  R    R5  R  R›   R$   R¦   R¥   (   RO   R¦   R¥   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR:  ø
  s     # c         C   s4   x- |  j  D]" } | j | | j ƒ  j ƒ  ƒ q
 Wd  S(   N(   R›   R¤   R$   R¥   (   RO   R¦   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR8  þ
  s    c         C   s4   x- |  j  D]" } | j | | j ƒ  j ƒ  ƒ q
 Wd  S(   N(   R›   R¤   R$   R¦   (   RO   R¥   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR9    s    c         C   sU   yF d d  l  } | j ƒ  } x' | D] } | j d ƒ d k r" t Sq" WWn t SXt S(   Niÿÿÿÿs   ZM-M220(   t   MonitorInfot   getMonitorNamesR   RR  RD  (   RO   R<  t   monsR
  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   checkIfZalmanStereo  s    c         C   sb   |  j  t j | ƒ } | s d  S| j ƒ  |  j | ƒ } t j |  | | |  j ƒ |  j j	 ƒ  d  S(   N(
   Rè  R    t   QMenuR/  RÜ  Rv  R0  Rî   R¿   t   updateToolBar(   RO   t   menuNamet
   menuWidgetR4  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¸  $  s    
c         C   sQ   t  j |  ƒ |  _ |  j j d ƒ |  j |  j t  j d ƒ |  j ƒ i  |  _ d  S(   Nid   s	   timeout()(   R   t   QTimert   animation_timert   setIntervalRH   RI   t   handle_animationt   animation_handlers(   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initialiseAnimation3  s    "c         C   s0   | |  j  | <|  j j ƒ  s, |  j j ƒ  n  d  S(   N(   RH  RE  t   isActiveRâ  (   RO   R   Rt  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addAnimationHandler=  s    c         C   sQ   |  j  j | ƒ rI |  j  | =|  j  rE |  j j ƒ  rE |  j j ƒ  n  d Sd Sd  S(   Ni    i   (   RH  RŽ   RE  RJ  t   stop(   RO   R   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   removeAnimationHandlerE  s    
c         C   sƒ   d } |  j  r xK |  j  j ƒ  D]: \ } } | rR y | ƒ  WqY d G| GHqY Xq | ƒ  q W| r d d  l } | j ƒ  q n  d  S(   Ni    s*   Error in animation_handler for applicationiÿÿÿÿ(   RH  RY  R%  R&  (   RO   t   trap_errorst   redrawR   Rt  R%  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRG  P  s    	c         C   sD   | d k r@ | d k r@ | |  j  j ƒ  k r@ |  j  j | ƒ n  d  S(   Ni    i'  (   RE  t   intervalRF  (   RO   t   delay(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   setAnimationIntervalb  s    -c         C   s   t  |  j j ƒ  ƒ S(   N(   R  RE  RP  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   animationIntervalf  s    c         C   s   | |  _  |  j ƒ  d  S(   N(   t   lightsR  (   RO   RT  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   setGLLightsi  s    	c         C   s>   x! |  j  D] } | j |  j ƒ q
 W|  j t j d ƒ ƒ d  S(   Nt   LightingChanged(   R›   t	   setLightsRT  R3  R   RI   (   RO   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR  m  s    c         C   sž  d d  l  } | j ƒ  } | j  d | d |  ƒ |  _ |  j g |  _ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j	 ƒ |  j j
 |  j ƒ  ƒ |  j j |  j ƒ |  j j |  j ƒ |  j j |  j ƒ d |  _ d |  _ | j d d	 ƒ |  _ | j d
 d	 ƒ |  _ | j d d ƒ |  _ | j d d ƒ |  _ t j |  ƒ |  _ |  j |  j t j d ƒ |  j ƒ d  |  _ d  S(   NiÿÿÿÿR[  RP   Rç  Ræ  Rã  i    R·   g      à?R¶   R¹   RÐ  R¸   i   s	   timeout()(   R  R  R^   R›   RH   R   RI   Rç  Ræ  Rã  t   setMouseBindingst   mouseBindingsR  R	  R  R  R  R  R<  t   rockcounterRæ   R·   R¶   R¹   R¸   RD  t
   roll_timert   roll_handlerRX   R£   (   RO   Rº   R  RÐ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initialiseGLWidgetsr  s(    """		"c         C   s  |  j  s t |  j  ƒ d k r# d  S|  j d k r� |  j d k r_ t j d |  j d d ƒ } qŒ|  j d k rŒt j |  j d d d ƒ } qŒný t t |  j	 |  j
 ƒ ƒ } |  j d |  _ |  j | d k rÚ d |  _ n  |  j | d k rt |  j | d ƒ | |  j
 d } n" t | |  j ƒ | |  j
 d } |  j d k rbt j d | d d ƒ } n* |  j d k rŒt j | d d d ƒ } n  |  j  d j j | ƒ |  j  d j ƒ  t |  j  ƒ d k rô|  j  d j j | ƒ |  j  d j ƒ  n t |  j  ƒ d k rn  d  S(   Ni   i   RÐ  i    RÏ  i   i   (   R›   R3  R<  R¹   Rk   R_   R¶   R�   R  R¸   R·   RZ  R\   t   postMultR­   (   RO   t   rotQt   nstepst   speed(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR\  ”  s2     ! )"c         C   sÏ   | |  j  k r d |  _  n	 | |  _  |  j  r@ |  j j d ƒ n |  j j ƒ  d |  _ |  j t j d ƒ j |  j  d k ƒ |  j t j d ƒ j |  j  d k ƒ |  j t	 ƒ } | rË | j
 d |  j  ƒ n  d S(	   sB   
      mode == 1 : toggle roll
      mode == 2: toggle rock
      i    i   iÿÿÿÿR=  R>  i   R<  N(   R<  R[  Râ  RL  RZ  Rè  R    Rî  Rï  t   rockAndRollGUIRÊ   (   RO   RÛ   R   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR–  µ  s    			%% c         C   s¡   |  j  t ƒ } | s$ t |  ƒ } n  i  } x0 d d d d d g D] } t |  | ƒ | | <q@ W| j | ƒ |  j | t j d ƒ |  j ƒ | j ƒ  | j	 ƒ  d  S(   NR<  R·   R¶   R¸   R¹   t   changed(
   Rè  Rb  Rt   RÊ   RH   R   RI   t   handleRockAndRollR{   RN  (   RO   R   RÃ   Ri  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR—  Ï  s    
c         C   sÞ   |  j  t ƒ } | s d  S| j ƒ  } x6 d d d d d g D] } t |  | | j | ƒ ƒ q; W|  j  t j d ƒ j |  j d k ƒ |  j  t j d ƒ j |  j d	 k ƒ |  j rÄ |  j	 j
 d ƒ n |  j	 j ƒ  d
 |  _ d  S(   NR<  R·   R¶   R¸   R¹   R=  i   R>  i   iÿÿÿÿ(   Rè  Rb  RÀ   Rs   Ræ   R    Rî  Rï  R<  R[  Râ  RL  RZ  (   RO   R   R•   Ri  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRd  Þ  s     %%	c         C   sp   |  j  t |  j ƒ d k  r0 |  j |  j  d 3n  |  j j t d |  j ƒ ƒ t |  j ƒ d |  _  |  j ƒ  d  S(   Ni   R^   (   t   autoSavePositionR3  t   autoSaveViewR   RY   R^   t   setViewActionsEnabled(   RO   t   arg(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR
  ï  s
    c         C   sˆ   g  |  _  d |  _ |  j  j t d |  j ƒ ƒ t j d |  ƒ |  _ t j d |  ƒ |  _ |  j	 |  j t
 j d ƒ |  j ƒ |  j ƒ  d  S(   Ni    R^   R%  R&  Rô  (   Rf  Re  R   RY   R^   Rv  R¶  t   forwardActiont
   backActionRH   R   RI   R
  Rg  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initialiseAutoSaveView÷  s    		"c         C   sW   |  j  t |  j ƒ d k  rS |  j  d |  _  |  j |  j  j |  j ƒ |  j ƒ  n  d  S(   Ni   (   Re  R3  Rf  Ry   R^   Rg  (   RO   Rh  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR‹    s    c         C   sJ   |  j  d k rF |  j  d |  _  |  j |  j  j |  j ƒ |  j ƒ  n  d  S(   Ni    i   (   Re  Rf  Ry   R^   Rg  (   RO   Rh  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR�    s    c         C   sŸ   t  |  j ƒ d k rD |  j t  |  j ƒ d k  rD |  j j t ƒ n |  j j t ƒ t  |  j ƒ d k r‹ |  j d k r‹ |  j j t ƒ n |  j j t ƒ d  S(   Ni    i   (   R3  Rf  Re  Ri  t
   setEnabledRR  RD  Rj  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRg    s    1$c         C   s�  t  ƒ  j | ƒ t } t } t |  j ƒ d k rD |  j ƒ  t } n( t |  j ƒ d k rl |  j ƒ  t } n  d d  l } | j	 d d ƒ |  j
 ƒ  |  j ƒ  |  j j ƒ  x« t  ƒ  j D]� } | d d k r|  j t j | d ƒ } | rS| j t | d ƒ j ƒ  ƒ qSq¶ | d d k r¶ |  j t j | d ƒ } | rS| j ƒ  j ƒ  qSq¶ q¶ Wg  t  ƒ  _ | rv|  j ƒ  n | r‰|  j ƒ  n  d  S(	   Ni   i   iÿÿÿÿt	   auto_savei    t	   update_PMi   t	   delete_PM(   R  t   autoRestoreRD  R3  R›   Rí  RR  Rì  R%  R&  R®   t   setDisplayActionsEnabledR  R   t
   update_guiRè  R    R  RÊ   RŒ   R�   R;  Rÿ  (   RO   t	   incrementRH  RI  R%  Ru   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRœ    s8    
	
	

 # c         C   sè   d } d } d } | d k r' d } ni | d k r< d } nT | d k rQ d } n? | d k rf d } n* | d k r{ d	 } n | d
 k r� d	 } n  t  |  j ƒ d k r© d  Sx$ |  j D] } | j | | | ƒ q³ W|  j ƒ  |  j ƒ  d  S(   Ng        R(  g     €V@R*  g     €VÀR,  R.  s   back-xg     €f@s   back-yi   (   R3  R›   t   setRotationR®   R
  (   RO   t	   view_fromt   rotate_xt   rotate_yt   rotate_zRŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRŽ  >  s*    						 
c         C   s¬   t  j j ƒ  } | r¨ | j ƒ  } x„ | D]y } | |  k r( t | d ƒ r( t | j ƒ r( | j ƒ  r( t  j t  j d ƒ | ƒ } |  j	 | t
 j d ƒ |  j ƒ q( q( Wn  d  S(   Nt   isWindows   Ctrl+Gs   activated()(   R    R_  R`  t
   allWidgetsR  R{  Ry  t	   QShortcutRs  RH   R   RI   Rš  (   RO   R„  t   widgetsRŸ   t   graphicsWindowShortcut(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   addGraphicsWindowShortcutZ  s    6c         C   s¾   t  j j ƒ  } | r° | j ƒ  } xŒ | D]� } | |  k r( t | d ƒ r( t | j ƒ r( | j ƒ  r( t | d ƒ r( t | j ƒ r( | j ƒ  s© | j ƒ  |  j	 ƒ  d  Sq( q( Wn  | j
 ƒ  d  S(   NRy  t   isHidden(   R    R_  R`  Rz  R  R{  Ry  R  R   R|   Rº  (   RO   Rä  R„  R|  RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt
   closeEventd  s    T

c         C   s   |  j  ƒ  |  j ƒ  d  S(   N(   R{   RN  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRš  r  s    
c         C   sA   t  |  d ƒ s: d d  l } i  |  _ |  j j | j ƒ n  |  j S(   Nt   mouse_bindingsiÿÿÿÿ(   R  t   MouseBindingsR�  R   t   DEFAULT(   RO   R‚  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRY  x  s
    	c         C   sA   i  |  _  |  j  j | ƒ x! |  j D] } | j |  j  ƒ q# Wd  S(   N(   R�  R   R›   RX  (   RO   R•   RŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRX  ‚  s    	c         C   s,  d d  l  } d d  l } | r8 d g j | j ƒ r8 d  S| j ƒ  } |  j } | r� t |  d ƒ sf d  Sx |  j D] } | j ƒ  qp W|  ` n›|  j	 t
 j d ƒ } t |  d ƒ s½ g  |  _ n  x| D]} | |  g j | ƒ rÄ t | d ƒ rÄ t | j ƒ rÄ t | d ƒ rÄ t | j ƒ rÄ t | d ƒ rÄ t | j ƒ rÄ | j ƒ  rÄ t | t
 j ƒ rÄ | j ƒ  sÊ| j t ƒ | j ƒ  | j t j j ƒ | j ƒ  t |  d ƒ s´g  |  _ n  |  j j | ƒ qÊqÄ qÄ Wx> t d d	 ƒ D]- }	 | j ƒ  | j t j j ƒ | j ƒ  qÞWd d  l }
 |
 j d	 ƒ d  S(
   NiÿÿÿÿRÇ  t   hiddenWindowsR  R  t
   setVisibleRy  i    i   (   Rx  R’   R®  R×  Ry  R^   R  R„  R{   RÖ   R    R:   R{  R  R…  Ry  t
   isinstancet   QProgressDialogRD  t   sendPostedEventst   processEventsR   t
   QEventLoopt	   AllEventst   flushR   RT  t   timet   sleep(   RO   Ró   t   all_systemsRx  R’   R„  R^   RŸ   R|  t   repeatR�  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   hideWindowsŠ  sD     	 	 *

 
c      	   C   s$  |  j  s i  Si  } |  j  j j ƒ  } t j d ƒ } | j | ƒ } g  | d <x, t d d ƒ D] } | d j | | ƒ q] Wg  | d <x2 t d d ƒ D]! } | d j |  j  j | ƒ q– W|  j  j	 | d <x? d d	 d
 d d d d d d g	 D] } t
 |  j  | ƒ | | <qí W|  j  j ƒ  | d <| S(   Ni   R\   i    i   R[   i   R]   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rù   (   R^   R\   Rm   Rk   Rè  Ré  RT  R   Ro   Rr   Rt   Rù   (   RO   R•   t   qPtrR  t   quatpt   iiRu   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getViewParams´  s"    	 
 
 (c   #      C   s˜	  |  j  s d  S| j d ƒ r$t | d ƒ t k r| d j d ƒ r| d j d ƒ rt d d d t | d d ƒ j d d ƒ ƒ } t | ƒ d	 k rú| d	 } | d d } | j d
 | ƒ } | d	 d	 k rá| d d	 k rá| d } | j	 j
 | ƒ } t j d d	 d	 ƒ } t j | d j ƒ  | d j ƒ  | d j ƒ  ƒ }	 t j | d	 j ƒ  | d	 j ƒ  | d	 j ƒ  ƒ }
 d GH|	 j ƒ  Hd GH|
 j ƒ  Ht j t j j |
 | ƒ ƒ d t j } d G| Gt j j |
 | ƒ GHt j j |
 | ƒ d	 k r| d 8} n  t | ƒ d k rÈt j j |
 | ƒ } | j ƒ  t j | j ƒ  | j ƒ  | j ƒ  d | ƒ } | j ƒ  } | d	 | d | d | d g | d <| j ƒ  } t j d	 d d	 ƒ } | |	 }	 t j t j j |	 | ƒ ƒ d t j } t | ƒ d k rÞd G| Gt j j |	 | ƒ GHt j d d	 d	 ƒ } t j j |	 | ƒ d	 k rV| d 8} n  t j | j ƒ  | j ƒ  | j ƒ  d | ƒ } | j | ƒ | j ƒ  } | d	 | d | d | d g | d <qÞq÷d d	 d	 d	 g | d <qd d	 d	 d	 g | d <q!d d	 d	 d	 g | d <q$| d | d <n  | j d ƒ rD| d | d <n  d  } | j d ƒ r t d d d t | d ƒ j d d ƒ ƒ } t | ƒ d	 k rr| d	 } | j d ƒ r¼| d } n d } | j d
 | ƒ } | d	 d	 k r| d d	 k r| d } t j d ƒ } | j t j  | j	 j! | ƒ ƒ ƒ } | d	 | d | d f | d | d | d f } } | d	 | d	 d | d | d d | d | d d f } t" t | d	 | d	 ƒ t | d | d ƒ t | d | d ƒ ƒ } t# |  d ƒ r|  j$ j% | d d	 ƒqqqrnR | j d ƒ r2n@ | j d  ƒ rR| d  | d <n  | j d! ƒ rr| d! | d <n  | j d ƒ rùt j d ƒ } t j ƒ  } x) t& d	 d ƒ D] } | d | | | <q¬W| j' | ƒ x! |  j  D] } | j( | ƒ qßWn  x˜|  j  D]�} | j d ƒ r,| j) | d ƒ n  | j d" ƒ r€y8 t* | d" ƒ } | d# k rr| j+ d$ | d% ƒ n  Wq€q€Xn  | j d ƒ r>	t | d ƒ t k r÷d& | d k r÷y5 | d j, ƒ  d	 } t* | ƒ } | j+ | d' ƒ Wq;	q;	Xq>	| d d( k r5| r%| j+ | d' d) ƒ q;	| j+ d% ƒ q>	| d d* k r	| r	d+ d  l- } t j ƒ  } t j | j. d	 | j. d | j. d ƒ }  | j/ | j	 | |  | | | | d	 d	 d	 d	 d, d ƒ } | j0 ƒ  }! |! | k rï| j+ |! d' ƒ q	| j+ | d' d ƒ q;	| j+ d% ƒ q>	| d d# k r>	| j+ | d ƒ q>	n  xO d- d. d/ d0 d1 d2 d3 d4 d5 g	 D], }" | j |" ƒ r`	t1 | |" | |" ƒ q`	q`	WqWd  S(6   Nt   orientationt   molDataR  Rö  R¸  R   R)  RÝ  i    RÆ  i   t   minpcat   maxpcai´   s   first angleg:Œ0âŽyE>i   i   R\   s   second angleRr   R]   t   centre_MolDatat   centre_selectionR   i   i   g       @R^   RÅ  R[   t
   centre_xyzRo   t   zoomg�íµ ÷Æ°>g      ð?i<   t   angg      @t   autog      ô?t   auto_contactsiÿÿÿÿi2   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   (2   R›   RŽ   R!   R)   RÙ  R*   R6  R3  Rç  Rì  t   GetPrincipalComponentsRk   R‘  RŽ  R�  R�  R�  t   matht   acost
   DotProductt   piRï  t   CrossProductt	   normalizeR_   t   dvalst	   getMatrixR^  RX   Rè  Ré  Rê  Rë  Rí  Rî  R  R^   Ré   RT  Rl   Rv   Rw   R�   Rx   R’  t   symmetryRo   t   Symmetryt
   ExtentSizeRs   (#   RO   R•   t   dataobjst   dataobjR  RG  R  t   pcat   xcartR˜  R™  t   anglet   axisR\   R¨  R£  t   screenyt   quat2R  R  R  R  R  R  R’  R”  R^   R�  t   sct   scfRª  t   dumt   pointt   symmSizeRu   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   setViewParamsÊ  sð    	 </
 
33 
  
 )
-&
)-, +
 
$7?H"  &*6(c         C   s‚   i  } t  |  j ƒ | d <d } x\ |  j D]Q } | d } i  | | <x4 d d d d d g D] } t | | ƒ | | | <qY Wq) W| S(	   Nt   nLightsiÿÿÿÿi   R±  t   ambientt   speculart   diffuset   on(   R3  RT  Rt   (   RO   R•   R”  t   lightobjRu   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getLightParamsY  s    

c         C   sã   | j  d d ƒ } d d l } d d l } g  |  _ xŸ t | ƒ D]‘ } t | d t | ƒ d ƒ } | r@ | j | | | d | | d | | d	 | | d
 ƒ } | | d r¾ | j ƒ  n  |  j j | ƒ q@ q@ W|  j	 ƒ  d S(   se   
      print "Setting light params"
      for key,val in params.items():
        print key,val
      R»  i    iÿÿÿÿNt   GL_LIGHTR  R±  R¼  R½  R¾  R¿  (
   Ræ   Rp  t   LightRT  RT  Rt   R*   t   turn_onR   R  (   RO   R•   R»  Rp  RÃ  R”  t	   lightNamet   light(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR2  h  s    		; c         C   s&   t  j ƒ  } t j j |  d | ƒ d  S(   Ns   Copying tutorial data(   RÚ  R„  R    RB  Rm  (   RO   Rà   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR„  €  s    c         C   s   d d  l  } | j  ƒ  |  _ d  S(   Niÿÿÿÿ(   t   loadPluginst   plugins(   RO   RÇ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÇ  †  s    (’   RV   RW   RÈ  R2   R3   R4   R-   R{   R|   RX   RD  R;   R…   R™   R    R¢   R©   R«   R®   R±   RÀ   RÊ   RÒ   RÝ   Rî   R«  R´  RR  R½  RØ  RÜ  RÛ  Rã  Rå  Ræ  Rç  R”  R“  Rì  Rí  R”   R  R+  R  R	  R‡  RM  R[  R‰  Rƒ  R…  Rc  Rd  Re  Rk  Rp  Rs  Ru  Rv  R‚  Rr  Ru  Rx  Ry  Rz  R{  Rý   Rw  R”  R›  Rƒ  Rä  R"  RJ  RØ  R|  R}  R�  R�  R’  Ré   R»  R¼  R¾  Rù  RÐ  RÌ  R˜  Rë  Rü  R™  R†  R  R�  Rž  R¢  R  R  R£  R¤  R¡  R   RŸ  R  R¥  R¦  R¨  R©  R•  R:  R8  R9  R?  R¸  RI  RK  RM  RG  RR  RS  RU  R  R]  R\  R–  R—  Rd  R
  Rk  R‹  R�  Rg  Rœ  RŽ  R~  R€  Rš  RY  RX  R‘  R•  Rº  RÁ  R2  R„  RÇ  (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRz   U  s  				'								
			ÿ ÿ i 	/
			a	H					0	,										
					
						?$À	
	:a			a	!			
	 													
			
=									
				"	!				
		%	
			
	*	�			t   MGMainWindowSimplec           B   se   e  Z d  „  Z d „  Z d d d d d d „ Z d „  Z d „  Z i  d „ Z d	 d	 i  e	 d „ Z
 RS(
   c         C   s   d  S(   N(    (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRq  �  s    c         C   s   d  S(   N(    (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   initialiseAutoSaveDisplay�  s    R  i    c         C   sV  d d  l  } d d  l } t j j | ƒ s. d St j j | ƒ d d j ƒ  } d  }	 | d k r° t j j t j j | ƒ d ƒ d }
 |
 d k r° |
 d | d j ƒ  }	 q° n  | d k sÈ |	 d k r¯|	 rà t j	 | ƒ } n  | rü | rü t
 ƒ  j } n  | s t
 ƒ  j d | ƒ \ } } n  t t ƒ  ƒ } d d  l } | j | ƒ \ } } d G| G| GH| rpd G| GHd S| j d | ƒ | j ƒ  | d k rRt ƒ  j d d ƒ qRn£d g j | ƒ sÓd g j |	 ƒ rO|	 rët j	 | ƒ } n  d d  l } | j d | d d ƒ } | j ƒ  | j ƒ  t ƒ  j ƒ  } | j | j ƒ | j ƒ  nd g j | ƒ r’d d  l } | j | ƒ } | rR| j ƒ  qRnÀ | j  ƒ  j | ƒ rí| d k rí| j! d t" | ƒ d t# ƒ  ƒ } | j$ rR| j ƒ  qRne | j% d ƒ d k rNt& | ƒ } x3 | D]+ } t ƒ  j' | ƒ } | |  j( k sPqqW| | ƒ Sd S| S(   Niÿÿÿÿi   i   R´  i    R  R   R»  R¼  R½  R¾  s   ent.gzs   brk.gzs   pdb.gzs   cif.gzR¿  s   openpdbfile rets   Error opening fileRÅ  R·  s   map.gzRÇ  RÈ  RÉ  RÍ  RÎ  RP   (   s   ents   brks   pdbs   cif(   s   ent.gzs   brk.gzs   pdb.gzs   cif.gz()   R%  RÓ  Rš  R›  Rœ  RÔ  Rr  RX   RÚ  RÛ  RÜ  RÝ  RÞ  R3  R  Rß  Rà  Rå  R&  Rã  R�  R®  R·  RÌ  Rò  Ró  R¬  R­  Rô  R   R®  R÷  Rø  RÑ  R*   Rª  Rú  R   R
   Rs  Re  (   RO   R£  R¿  Rû  Rü  R„   R%  RÓ  Rÿ  R   R  R	  t   ndispobjRß  RG  R
  R·  R±  R®  R   R  Rt  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRƒ  ”  sn      &	
 $

!!	
c         C   s}   g  } x9 t  ƒ  D]. } t | d ƒ o+ | j s | j | ƒ q q Wx4 | D], } | j ƒ  t | d ƒ rI | j ƒ  qI qI Wd  S(   Nt   master_applicationRÿ  (   RÙ  R  RÌ  R   Ru  Rÿ  (   RO   t   dellistR®  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRE  é  s    
c         C   sœ   t  d | ƒ } | r˜ | d j ƒ  } | d j ƒ  | r˜ xY | D]N } t  d | ƒ } | rl | d j ƒ  q@ t d | ƒ } | r@ | j ƒ  q@ q@ Wq˜ n  d  S(   NR   i    (   RÙ  t   getDependentsForDeletionRu  R  (   RO   R   t   targett
   dependentst   dept
   dep_target(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   deleteDataObjô  s    c         C   sn   d d  l  } t j j d ƒ rL d d  l } | j ƒ  |  _ |  j g |  _ d  S| j ƒ  |  _ |  j g |  _ d  S(   Niÿÿÿÿs   -osmesa(   R  R’   t   argvR®  t   MGGLWidgetOSMesaR^   R›   t   MGGLWidgetSimple(   RO   Rº   R  RÕ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR]    s    c         C   sL   t  j j |  | ƒ t j |  | | | | ƒ i  |  _ g  |  _ |  j ƒ  d  S(   N(   R   t   QObjectR;   Rz   Rq  Rb  R]  (   RO   RP   R�   R‚   Rƒ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;     s
    		N(   RV   RW   Rq  RÊ  Rƒ  RE  RÓ  R]  RX   RD  R;   (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÉ  ‹  s   		U		
R'   c           B   s5   e  Z d  „  Z d „  Z d d i  e e e d „ Z RS(   c         C   sj   t  t ƒ  j ƒ } t ƒ  j } |  j j | d k o@ | | d k  ƒ |  j j | d k ob | d k ƒ d  S(   Ni    i   (   R3  R  t   autoSavedStatust   autoSavedPositiont   displayForwardActionRl  t   displayBackAction(   RO   t   nSt   nP(    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRq    s    &c         C   s8   t  j d |  ƒ |  _ t  j d |  ƒ |  _ |  j ƒ  d  S(   NRN  RL  (   Rv  R¶  RÚ  RÛ  Rq  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÊ  "  s    c         C   s  t  j j |  | ƒ t j |  | | | | ƒ d d  l } |  | _ | |  _ d g |  _ i  |  _ g  |  _	 i  |  _
 g  |  _ | |  _ |  j d ƒ t j j t j d d ƒ } t  j t  j | ƒ ƒ }	 |  j |	 ƒ d d  l }
 |  j d ƒ t j |
 j ƒ } |  j | ƒ t  j ƒ  |  _ |  j j d ƒ |  j j d d d d ƒ g  |  _ d d  l  } d d  l! } d, } d- } d. } d/ } | j  | j" | | | | ƒ } | j# ƒ  |  j j$ | ƒ |  j% d | j& d i  ƒ ƒ t  j' ƒ  } | j( |  j ƒ |  j) | ƒ t* j+ d k r"|  j j, |  j- d d ƒ n  |  j. ƒ  } |  j/ ƒ  } | j0 d ƒ i  |  _1 i  |  _2 |  j3 ƒ  |  j4 ƒ  |  j5 ƒ  |  j6 ƒ  d d  l7 } | j7 |  d |  j d ƒ d | j& d i  ƒ d |  j8 d ƒ d |  j8 d ƒ ƒ|  _9 |  j9 j: d ƒ |  j; |  j9 ƒ t< d d d d d d d d d |  j9 j= ƒ  ƒ |  j2 d <d d  l> } x· |  j8 d ƒ D]¦ } |  j8 | d ƒ } |  j? ƒ  j@ | d ƒ } | j: | d ƒ | jA d  ƒ ræ|  jB | d ƒ |  jC | t jD d! ƒ tE jF |  jB | d ƒ ƒ qQ|  jB | d ƒ qQWd d  lG } | rF| jH d" tI d# | ƒ |  _H | jJ |  d$ |  jH ƒ|  _K n- | jH |  ƒ |  _H | jL |  d$ |  jH ƒ|  _K |  jC |  j- t jD d% ƒ |  jH jM ƒ |  jC |  jH t jD d& ƒ |  j- jN ƒ d  |  _P |  jQ ƒ  |  j1 d' j$ d( ƒ |  jR ƒ  d d  lS } | jT ƒ  |  _T tU } t* j+ d k r¶|  j- jV ƒ  | jW | jX ƒ jY ƒ  jZ d) ƒ d k r¶| jW | j[ ƒ jY ƒ  jZ d* ƒ d k r¶| jW | j\ ƒ jY ƒ  jZ d+ ƒ d k r¶|  j] ƒ  tI } q¶n  d d  l^ } | j^ |  ƒ |  __ t* j+ d k rÿ|  j j, |  j- d d ƒ n  |  j` ƒ  |  ja ƒ  d  S(0   Niÿÿÿÿs   Recent filesi   R  s   ccp4mg_icon.pngs   CCP4MG version i    g        g      N@g      ð?Rº   R&  R  R   t   ToolbarR•   Rµ   t   default_actionsRÔ  t   supported_actionsRÓ  s   Main ToolbarRà   Rï   R¿   Rñ   Rá   s   Show/hide toolbarR»  RÌ  RÙ  RÚ  s   aboutToShow()t   dockedt   super_compactR  Rõ  t   DisplayTableChangedRÐ  RA  t   Intels   Intel Cantigas   2.0.0(   g        g        g      N@(   g        g        g        (   g      ð?g      ð?g      ð?(   g      ð?g      ð?g      ð?(b   R    t   QMainWindowR;   Rz   Rx  t   _mainWindowRƒ   RÖ  Rq  Rl  Rf  Rb  R�   t   setAcceptDropsRš  R›  R�  t   environt   QIconR‚  t   setWindowIcont   versionR?   R   t   QStringt   ccp4mg_versionR×  R<   R   t
   setSpacingR  RT  RÃ  Rp  t	   GL_LIGHT0RÄ  R   R]  Ræ   R  RN   t   setCentralWidgetR’   R×  R@   R^   RQ   RÞ  Rß  R­  Rë   R«  RØ  Rk  RÊ  t	   MGToolBarRÜ  R¿   R6  t
   addToolBarR)   t   toggleViewActiont   ret   menuBart   addMenuR®  R¸  RH   RI   Rv  RL   RÕ   R  RR  t   DispWindowDockRÚ   t   DispWindowNoDockR  t   calculateShadowExtentsRX   RL  R~  RI  t   annotationGuit   autoAnnotateRD  R¬   t   glGetStringt	   GL_VENDORRÖ  R   t   GL_RENDERERt
   GL_VERSIONR  t
   JobControlt
   jobControlR™   R"  (   RO   RP   R�   R‚   Rƒ   t   dockedDTRâ  Rx  t	   icon_fileRï   Rë  t   version_stringRÃ  Rp  R±  R¼  R½  R¾  t   light0t   null_widgett
   mainLayoutRÞ  Rñ  Rô  Ru   R4  RC  RÕ   Rú  t   doneLightingR   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   (  sº    								
		



Q2%%	

'''

N(   RV   RW   Rq  RÊ  RX   RD  R;   (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR'     s   		R�  c           B   se   e  Z d  „  Z d „  Z d „  Z d „  Z d
 d „ Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(   c         C   s   |  j  j | ƒ d  S(   N(   t
   filedialogR‚  (   RO   RÔ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR‚  ¼  s    c         C   s   |  j  j | ƒ d  S(   N(   R	  t	   addFilter(   RO   R„   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR
  ¿  s    c         C   s   |  j  j t ƒ S(   N(   R	  RÔ  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÔ  Â  s    c         C   s   |  j  j | ƒ d  S(   N(   R	  t   setNameFilters(   RO   RÔ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR  Å  s    c         C   s  t  j j |  | ƒ |  j d ƒ |  j |  j d ƒ ƒ t  j ƒ  } t  j ƒ  } d d  l } | j	 |  ƒ |  _
 | j |  j
 ƒ t  j d |  ƒ } t  j ƒ  } t  j d |  ƒ } | j | ƒ t  j d |  ƒ |  _ | j |  j ƒ | j | ƒ |  j j t ƒ  j ƒ | j d t ƒ  j ƒ |  j |  j t j d ƒ |  j ƒ | j | ƒ | j d	 ƒ | j | ƒ t j |  d
 d ƒ} | j | ƒ | j ƒ  |  _ |  j j |  j j ƒ |  j |  j t j d ƒ |  j ƒ d d d d d d g }	 d d  l }
 |
 j ƒ  } t  j  j! ƒ  } d } xA | D]9 } t" | ƒ j# ƒ  t" | ƒ k r| d | d } qqW| d d !d } |	 j$ d | ƒ |  j j% |	 ƒ |  j | ƒ |  j j& t  j' d ƒ } xL | D]D } | j( ƒ  |  j d ƒ k r±| j) j* ƒ  | j) j |  j+ ƒ q±q±W|  j j, t  j- ƒ |  _. d  S(   NR�  s   Open file(s)iÿÿÿÿs   Picture wizards   Automatic picture setups   Open picture wizard choicesi   s   toggled(bool)i   t	   editAliasi    s"   filesSelected (const QStringList&)sT   Model coordinate files (*.pdb *.cif *.ent *.brk *.pdb.gz *.cif.gz *.ent.gz *.brk.gz)s   CCP4 map files (*.map *.map.gz)s$   CCP4 experimental data files (*.mtz)s0   Zipped Presentations (*.ccp4mg_presentation.zip)s   Status files (*.mgpic.py *.pkl)s   CCP4mg vector file (*.vector)t   (s   *.t    t   )s   Image files R  s   &Open(/   R    R:   R;   R6  R×  R?   t   QVBoxLayoutR  RF  t   drawingStyleGuit   drawingStyleR@   t	   QGroupBoxt   QRadioButtonRü  RN   Rï  RÜ  RH   R   RI   t   update_show_wizard_choicest
   addStretcht	   addLayoutRÁ   RÂ   t   getFileDialogR	  t   setFileModet   ExistingFilest   handleSelectionR×  t   QImageWritert   supportedImageFormatsR*   t   upperR   R  RÖ   t   QPushButtonRà   t   clickedRû  t   openClickedRè  t	   QTreeViewRO  (   RO   RP   RQ   t
   wiz_layoutRF  t	   wiz_groupt   wiz_group_layoutRŸ   R	  t   filter_listR×  t   plattert   formatst
   image_extsR[  t   childrenRV  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   È  sb    ""	c         C   sÃ   |  j  j ƒ  j ƒ  } g  } xo | D]g } | j ƒ  d k r" | j t j j t |  j	 j
 ƒ  j ƒ  j ƒ  d ƒ t | j ƒ  j ƒ  ƒ ƒ ƒ q" q" W|  j	 j t j d ƒ t j | ƒ ƒ |  j d ƒ d  S(   Ni    s   utf-8s"   filesSelected (const QStringList&)(   RO  t   selectionModelt   selectedIndexest   columnR   Rš  R›  R�  t   unicodeR	  t	   directoryt   absolutePathR-  t   dataRá  R3  R   RI   t   QStringListRM   (   RO   t   indst   filesRZ  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR!    s    S%c         C   s}   t  |  j j ƒ  ƒ } xW | D]O } t  | j ƒ  ƒ } |  j t j d ƒ | |  j j ƒ  d |  j	 j
 ƒ  | ƒ q W|  j ƒ  d  S(   NR€  i    (   R*   R	  t   selectedFilterR-  R3  R   RI   R  t   getStyleRü  R�  Rÿ  (   RO   t   selectedFilesR„   Ru   R#  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR    s
    ;c         C   s   t  | ƒ t ƒ  _ d  S(   N(   R  RÜ  Rü  (   RO   R  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR  !  s    c         C   sR   t  |  j j ƒ  ƒ d k rN t j j |  j j ƒ  d ƒ sN |  j j ƒ  d Sn  d  S(   Ni    (   R3  R	  R7  Rš  R›  R¢  RX   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   getFileName'  s    c         C   s   |  j  j ƒ  S(   N(   t   wizard_radioR�  (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt	   useWizard/  s    N(   RV   RW   R‚  R
  RÔ  R  RX   R;   R!  R  R  R8  R:  (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR�  ·  s   				F	
				R“  c           B   s>   e  Z d d  d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   Ró   RŽ  c   	      C   s§  t  t |  ƒ j | ƒ |  j t j j ƒ |  j d ƒ |  j | ƒ t	 j
 ƒ  } t j |  ƒ } | j | ƒ | j ƒ  |  _ | d k r› |  j d ƒ g } nÉ |  j d ƒ g } | d k rÒ |  j j |  j j ƒ n’ |  j j t	 j j ƒ |  j j t	 j d ƒ } xa | D]Y } | j ƒ  |  j d ƒ k r| j |  j d ƒ ƒ |  j | t j d	 ƒ |  j ƒ qqW|  j j | ƒ |  j | ƒ |  j |  j t j d
 ƒ |  j ƒ d  S(   Nt   dialogPresentationRï  s9   Zipped presentation directory (*.ccp4mg_presentation.zip)s.   Presentation directory (*.ccp4mg_presentation)Ró   R  s   &Saves   &Creates	   pressed()s"   filesSelected (const QStringList&)(    t   superR“  R;   R+  R   RQ  R,  R6  t   setAppR    R  RÁ   RÂ   R@   R  R	  R?   R  t   DirectoryOnlyt   setAcceptModet   QFileDialogt
   AcceptSaveRÖ   R  Rà   R>   RH   RI   t   saveFileR  RN   R  (	   RO   RP   RÛ   R�   RQ   R	  R&  R*  RV  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   =  s,    &c         C   s"   |  j  d | d ƒ | |  _ d  S(   Ns   Open s
    directory(   R×  R�   (   RO   R�   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR=  `  s    c         C   sR   t  |  j j ƒ  ƒ d k rN t j j |  j j ƒ  d ƒ sN |  j j ƒ  d Sn  d  S(   Ni    (   R3  R	  R7  Rš  R›  R¢  RX   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR8  f  s    c         C   sP   x? | D]7 } t  | j ƒ  ƒ } |  j t j d ƒ | |  j ƒ q W|  j ƒ  d  S(   NR€  (   R*   R-  R3  R   RI   R�   Rÿ  (   RO   R7  Ru   R#  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR  o  s    #c         C   sO   |  j  j ƒ  } | s d  S|  j ƒ  j t | d j ƒ  ƒ d d d |  j ƒd  S(   Ni    RÛ   Rð  R�   (   R	  R7  RP   R”  R*   R-  R�   (   RO   R£  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRB  z  s     N(   RV   RW   RX   R;   R=  R8  R  RB  (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR“  7  s
   #				R¨  c           B   s   e  Z d d  „ Z d „  Z RS(   c   	      C   s¥  t  j j |  | ƒ |  j |  j d ƒ ƒ t  j ƒ  } t  j ƒ  } t  j |  j d ƒ |  ƒ } d d  l } | j	 |  d d ƒ|  _
 |  j |  j
 t j d ƒ |  j ƒ x$ | |  j
 g D] } | j | ƒ q² W| j | ƒ t  j ƒ  } t  j d |  ƒ |  _ |  j j d ƒ | j |  j ƒ | j | ƒ t  j |  ƒ } | j t j j ƒ | j d t  j j ƒ } |  j | t j d	 ƒ |  j ƒ | j | ƒ |  j | ƒ |  j ƒ  d  S(
   Ns   Find, centre on..R‘  iÿÿÿÿt   multii   Rc  s   Show atoms if not visibles	   Centre ons	   clicked()(   R    R:   R;   R×  R?   R  R  R=   RÁ   t   mgSelectionCombot   selectionComboRH   R   RI   t   handleCentreOnButtonR@   R  t	   QCheckBoxt   createDispobjRï  RD   t   setOrientationRQ  t
   HorizontalRE   t	   ApplyRoleRN   R{   (	   RO   RP   t   master_layoutRQ   t	   seleLabelRÁ   Ru   t	   buttonBoxRS   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   Š  s.    "c   	      C   s®  |  j  j ƒ  } |  j  j ƒ  } | j d | ƒ } | d d k rD d  S|  j ƒ  j d | j d | d ƒ | j d | d | d ƒ } | r–| j d | ƒ } | r%|  j	 j
 ƒ  r%| j d d d	 d
 d i d d 6| d 6d i d d 6ƒ } t ƒ  j | j d	 d
 d | j ƒd d  l } | j ƒ  n  | r–t ƒ  j | j ƒ } | rV| j d ƒ n  t ƒ  j d | d | ƒ } | r“d d  l } | j ƒ  q“q–n  | j j | d ƒ d  S(   NRÆ  i    Rì  R  i   t   molt   atm_ptrR¨  Rö  R¹  t	   selparamst   cidt   selectt   styleparamst	   CYLINDERSt
   style_modeR   iÿÿÿÿR  (   RE  t   getCurrentDataObjRà   Rç  RP   Ré   Rì  t   interpretAtomIDt   findDispobjContainingAtomRH  R�  R­  R   R«  R   R%  R&  t
   getDispObjt   set_visibilityR¯   R$  t   DeleteSelection(	   RO   t   molobjRŒ  R)  RP  R  R%  RÜ   RG  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRF  ­  s.     #9" N(   RV   RW   RX   R;   RF  (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR¨  „  s   #Rb  c           B   s/   e  Z d  „  Z d „  Z i  d „ Z d „  Z RS(   c         C   s6  t  j j |  | ƒ |  j d ƒ |  j d ƒ t  j ƒ  } t  j |  ƒ } | j d ƒ t  j ƒ  } t  j d |  ƒ } | j d ƒ | j	 | ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ t  j d ƒ } | j | ƒ t j t j j |  ƒ } | j d d	 ƒ | j d
 ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ | j ƒ  | j | ƒ t  j ƒ  } t  j d |  ƒ } | j d ƒ | j	 | ƒ |  j
 | t j d ƒ |  j ƒ | j ƒ  | j | ƒ t  j d ƒ } | j | ƒ t j t j j |  ƒ } | j d d	 ƒ | j d ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ t  j d ƒ } | j d ƒ | j | ƒ t j t j j |  ƒ } | j d d ƒ | j d ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ | j | ƒ t  j d |  ƒ } | j d ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ | j	 | ƒ t  j ƒ  } t  j |  ƒ } t  j d ƒ } | j | ƒ t  j d |  ƒ } | j d ƒ | j	 | ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ t  j d |  ƒ } | j d ƒ | j	 | ƒ |  j
 | t j d ƒ |  j ƒ | j | ƒ | j ƒ  | j | ƒ |  j | ƒ d  S(   Ns   Rock and rollt   rock_n_rollR<  t   Rollt   roll_ons	   clicked()Ra  g      Àg      @R¶   s   valueChanged(double)t   Rockt   rock_ongš™™™™™¹?R·   R±  s   Maximum rock anglei    iZ   R¸   s	   No motiont
   norockrolls   Rock and roll axis:t   verticalt   roll_verticalt
   horizontalt   roll_horizontal(   R    R:   R;   R×  R6  R  t   QButtonGroupR  R  RE   RH   R   RI   t   applyR@   R=   RÁ   t   mgSliderRQ  RJ  R7  R  R  t
   setToolTipRN   (   RO   RP   RQ   R4  t   line_layoutRŸ   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyR;   Ú  s„    


c         C   s   |  j  t j d ƒ ƒ d  S(   NRc  (   R3  R   RI   (   RO   (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRi  (  s    c         K   sO  | j  | ƒ | j d d ƒ } | d k rJ |  j t j d ƒ j d ƒ nV | d k ru |  j t j d ƒ j d ƒ n+ | d k r  |  j t j d ƒ j d ƒ n  xI d	 d
 d g D]8 } | j | ƒ r° |  j t j | ƒ j	 | | ƒ q° q° W| j d d ƒ } | rK|  j t j d ƒ j | d k ƒ |  j t j d ƒ j | d k ƒ n  d  S(   NR<  iÿÿÿÿi    Rc  i   R`  i   Rb  R·   R¶   R¸   R¹   R  Rg  RÏ  Re  RÐ  (
   R   Ræ   Rè  R    R  Rï  RŽ   RÁ   Rj  R  (   RO   R•   R¤  t   rrRi  R–  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÊ   .  s    '"c         C   sÐ   i  } |  j  t j d ƒ j ƒ  j ƒ  } | d k r< d } n | d k rQ d } n d } | | d <|  j  t j d ƒ j ƒ  r‰ d | d	 <n
 d
 | d	 <x6 d d d g D]% } |  j  t j | ƒ j	 ƒ  | | <q£ W| S(   NR<  Rb  i   R`  i   i    Rg  RÏ  R¹   RÐ  R¶   R·   R¸   (
   Rè  R    Rh  t   checkedButtonRë  R  R�  RÁ   Rj  R  (   RO   RÃ   RÛ   t   imodeRi  (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRÀ   D  s    !		

#(   RV   RW   R;   Ri  RÊ   RÀ   (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyRb  Ó  s   	N	($   t   __doc__t   PyQt4R    R   R   R|  t   global_definitionsRK   R’   Rš  RÑ  R¢  R�  Rv  RÁ   Rö  RÚ  Rk   Rª  Rê  R
   R   R,   R5   R:   R6   RY   Rz   R×  RÉ  Rå  R'   R�  R“  R¨  Rb  (    (    (    s?   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/MGMainWindow.pyt   <module>   sJ   
$				Ö"ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ BŽž€MO