ó
ÉÝ{Tc           @   s  d  Z  d d l m Z m Z m 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 e Z d „  Z d g  d d d d d	 d d d
 d d d e d d d „ Z e e e d „ Z e d d d „ Z d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z d S(   s–  
     qtgui/screenshot.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   QtOpenGL(   t   *Nc         C   sö   t  } t | d ƒ rZ | j d ƒ sQ | j d ƒ sQ | j d ƒ sQ | j d ƒ rZ t } nT t | d ƒ r® | j d ƒ s¥ | j d ƒ s¥ | j d ƒ s¥ | j d ƒ r® t } n  | rå d GHt j | ƒ } | j d ƒ | j |  ƒ n |  j	 | ƒ d  S(	   Nt   endswitht   tifft   tift   TIFFt   TIFt   endsWiths   Compressing tiffi   (
   t   Falset   hasattrR   t   TrueR	   R    t   QImageWritert   setCompressiont   writet   save(   t   imt   filenamet   useTifft   writer(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   saveFile   s    K	K	t    i   i    g      @gš™™™™™¹?t   rotationi,  c   8      K   s  d d  l  } d d  l } d d  l } d G| GHt j j ƒ  d } t j ƒ  } | r| j j |  ƒ \ } } | d | } | d | } | j j	 | ƒ r¨ | j
 | ƒ n  | j j	 | ƒ rÊ | j
 | ƒ n  | j j	 | ƒ sî | j j	 | ƒ rd d | d | d	 d
 f Sn  t ƒ  j } | j ƒ  \ } } } | j ƒ  } | ržt j j ƒ  r…| j d d d d ƒ t j | | | | ƒ | _ q´| j | | | d ƒ n | j | | | d ƒ | rÊt ƒ  j ƒ  n  | rd d  l } d d  l }  | j j d ƒ |  j ƒ  n  | j ƒ  | r‹| j ƒ  }! | rg| j ƒ  }" | j | j ƒ  t  | d ƒ | j ƒ  j! ƒ  ƒ n  | s‹| j" | d | d ƒ q‹n  | râd d  l# }# | j$ ƒ  }$ | j% d  ƒ | j' }% |# j( d d d d ƒ | _' |
 d k rl| s™| j) d | d d ƒ | j* ƒ  | j+ ƒ  }& |& j, t- | ƒ ƒ | j) d | d ƒ | j* ƒ  | j+ ƒ  }& |& j, t- | ƒ ƒ | j) d | d d ƒ | j% |$ ƒ |% | _' ql| j) d | d d ƒ | j* ƒ  | j. d t/ j0 | d | d ƒ d | d | ƒ }' | j) d | d ƒ | j* ƒ  | j. d t/ j0 | d | d ƒ d | d | ƒ }( | j) d | d d ƒ | j% |$ ƒ |% | _' n  |
 d k r | s |# j1 d d d d d d d d d d |	 d d d d d d d g ƒ }) |# j1 d d d d d d d d d d |	 d d d d d d d g ƒ }* |) j2 ƒ  }+ |* j2 ƒ  }, | j% |+ ƒ | j* ƒ  | j+ ƒ  }& |& j, t- | ƒ ƒ | j% |, ƒ | j* ƒ  | j+ ƒ  }& |& j, t- | ƒ ƒ | j% |$ ƒ q n  | s¾t3 | | |  | ƒ } q!t3 d d |  | d |' d |( ƒ} n?t4 t ƒ  j5 ƒ d k rP| j* ƒ  | sw| j+ ƒ  }& t6 |& d ƒ rn| j7 d ƒ }- |- d }. | j8 |- d ƒ |& j, |. ƒ t j9 |. ƒ }/ qÉ|& }/ nR | j. d t/ j0 | d | d ƒ d | d | ƒ }/ d Gt j ƒ  | GHt j j ƒ  |/ j ƒ  Gt- |  ƒ GH|/ j: t; | d d ƒ ƒ |/ j< t; | d d ƒ ƒ t= |/ t/ j> j? |  ƒ ƒ d Gt j ƒ  | GHt j j ƒ  nÑg  }0 | j ƒ  }1 | r�t j |1 d |1 d |1 d d ƒ }2 n$ t j |1 d |1 d |1 d d ƒ }2 t j j ƒ  x$t ƒ  j5 D]}3 |3 j ƒ  | s8|3 j+ ƒ  }& | j7 d ƒ }- |- d }. | j8 |- d ƒ |& j, |. ƒ t j9 |. ƒ }4 nž |3 j. d t/ j0 | d | d ƒ d | d | ƒ }4 | rÖ|3 j" |! j@ ƒ  |! j! ƒ  ƒ | r¢|3 j |" ƒ n  t j j ƒ  rÖ|3 j | | | | ƒ d  |3 _ qÖn  |0 jA |4 ƒ qÍWt4 |0 ƒ d k ræ	t jB |0 d j@ ƒ  |0 d j@ ƒ  |0 d j! ƒ  ƒ }5 t jC ƒ  }6 |6 jD |5 ƒ |6 jE d d |0 d ƒ |6 jE |0 d j@ ƒ  d |0 d ƒ |6 jF ƒ  |5 jG ƒ  }7 |7 j: t; | d d ƒ ƒ |7 j< t; | d d ƒ ƒ t= |7 t/ j> j? |  ƒ ƒ n;t4 |0 ƒ d k r!t jB |0 d j@ ƒ  |0 d j@ ƒ  |0 d j! ƒ  |0 d j! ƒ  ƒ }5 |5 jH |2 ƒ t jC ƒ  }6 |6 jD |5 ƒ |6 jE d d |0 d ƒ |6 jE |0 d j@ ƒ  d |0 d ƒ |6 jE d |0 d j! ƒ  |0 d ƒ |6 jF ƒ  |5 jG ƒ  }7 |7 j: t; | d d ƒ ƒ |7 j< t; | d d ƒ ƒ t= |7 t/ j> j? |  ƒ ƒ n  | r\| j" |! j@ ƒ  |! j! ƒ  ƒ | r\| j |" ƒ q\n  | r| j j d ƒ |  j ƒ  n  t j j ƒ  r°| j | | | | ƒ d  | _ n  | j* ƒ  | rÖt ƒ  j d d ƒ n  d  Gt j ƒ  | GHt j j ƒ  | r | Sd tI |  d! ƒ f Sd  S("   Niÿÿÿÿs   screenshot.makeScreenshoti    t   _leftt   _righti   s   Intermediate file
 s   
ors   
existss,   
Please remove or give alternative file nameiÿ   g        R   g      à?t   sizet   scalebartextt
   scaleLinest   sheari   t   junkt   im1t   im2R   s   .pngs   Time for get screenshotg     @�@gffffff9@s   Time for savei   i   t   opens   Finish times   utf-8(J   t   tempfilet   ost   shutilt   syst   stdoutt   flusht   timet   patht   splitextt   existst   removet
   MAINWINDOWt   glWidgett   getBackgroundt   getBackgroundAlphaR   t   QGLFramebufferObjectt   hasOpenGLFramebufferObjectst   setBackgroundR    t   QColort	   fogcolourt   hideWindowst   cprimt   rebuildt   RenderQualityt   SetRenderQualityt   Rebuildt   makeCurrentR   t   getFontScalingt   setFontScalingt   floatt   heightt   resizet
   pygl_coordt   getExtraMatrixt   setExtraMatrixt   Nonet
   extra_quatt   Quatt   setRotationt   updateGLt
   screenshotR   t   strt   screenshot_pbufferR   t   QSizet   matrixt   to_dpt   merge_image_filest   lent	   glWidgetsR   t   mkstempt   closet   QImaget   setDotsPerMeterXt   intt   setDotsPerMeterYR   t   QStringt   fromUtf8t   widtht   appendt   QPixmapt   QPaintert   begint	   drawImaget   endt   toImaget   fillt   unicode(8   R   R   R6   t   render_qualityt   clear_labelst   stereot   stereo_anglet   transparentt
   scaleFontst
   stereo_sept   stereo_modet   scaleImagest   dpit   use_pbufferR   R   t   kwR"   R#   R$   t   rvt   t1t   roott   extt	   filn_leftt
   filn_rightR.   t   rt   gt   bt   aR7   R8   t   current_sizet   current_fontScalingRB   t   oldExtraMatrixt   oldExtraQuatt   iinfot   imleftt   imrightt
   shear_plust   shear_minust   matpt   matmt   ft   tmpnamR   t   imagest   bgcolourt   colt   widgetR   t   pixmapt   paintert   image(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   makeScreenshot-   sd   $	   $ 
4	


2
2

$

	2  '$

24!
B!!

  c         C   sZ  | s$ t  j t j j |  ƒ ƒ } n  | sH t  j t j j | ƒ ƒ } n  t  j | j ƒ  | j ƒ  t | j ƒ  | j ƒ  ƒ ƒ } | j	 t  j
 d d d d ƒ ƒ t  j | ƒ } | j d d | ƒ | j | j ƒ  d | ƒ | j ƒ  | j ƒ  } | r.| j t | d d ƒ ƒ | j t | d d ƒ ƒ n  t | t j j | ƒ ƒ d t | d ƒ g S(   Ni    g     @�@gffffff9@s   utf-8(   R    RU   R   RY   RZ   R]   R[   t   maxR@   Rc   R4   R^   R`   Ra   Rb   RV   RW   RX   R   Rd   (   Ru   Rv   R   Rn   R   R    t   pixR�   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRP     s       7
t   scalec         C   sï  |  s d d g St  j d k r) d d g Sd d  l } d d  l } g  } | r£ d d  l } d d  l } | j j d ƒ | j ƒ  x! t	 ƒ  j
 D] } | j ƒ  qŒ Wn  xZ t	 ƒ  j
 D]L } | j ƒ  }	 | j d ƒ }
 |	 j |
 d ƒ | j t j |
 d ƒ ƒ q° W| rD| j j d ƒ | j ƒ  x! t	 ƒ  j
 D] } | j ƒ  q-Wn  d } x | D] } | | j ƒ  } qQW| d j ƒ  } | d k rv| |  j ƒ  k rt |  j ƒ  ƒ t | ƒ } x] t t | ƒ ƒ D]F } t t | | j ƒ  ƒ | ƒ } | | j | t j j ƒ | | <qÈWn  | |  j ƒ  k rv|  j ƒ  } x= t t | ƒ ƒ D]& } | | j | t j j ƒ | | <qFWqvn  t j ƒ  } | j |  ƒ d } x7 | D]/ } | j | d | ƒ | t | j ƒ  ƒ } qœW| j  ƒ  d t! |  j" ƒ  ƒ g S(	   Ni   s%   No printer info in screenshot.makePDFt   win32s*   makePDF does not currently work on Windowsiÿÿÿÿs   .pngi    R’   (#   R%   t   platformR"   R#   R7   R8   R9   R:   R;   R-   RR   RI   RJ   RS   t   writepngR\   R    RU   R[   R@   R?   t   rangeRQ   RW   t   scaledToWidthR   t   Qtt   SmoothTransformationt   scaledToHeightR^   R_   R`   Ra   RK   t   outputFileName(   t   printert   fitModeRe   R"   R#   t   qimage_listR7   R8   R.   R   R†   t   actual_widtht   qimaget   actual_heightR’   t   iit	   req_widtht
   req_heightR�   t   xx(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   makePDF%  sX     
 


 '*
t   screenShotOptionsc           B   sk   e  Z d
 d  „ Z d
 d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 i  d „ Z d	 „  Z RS(   c         C   sÉ   |  j  j ƒ  sS |  j j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ d  S|  j j t ƒ |  j j t ƒ |  j j ƒ  r¥ |  j j t ƒ |  j j t ƒ n  |  j j t ƒ |  j j t ƒ d  S(   N(	   Rg   t	   isCheckedRh   t
   setEnabledR
   Rk   t   stereo_mode_sheart   stereo_mode_rotR   (   t   selft   clicked(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   setStereoPrefsEnableds  s    c         C   s×  t  j j |  | ƒ t  j ƒ  } | j d ƒ | j d d d d ƒ t  j |  ƒ } | j t  j j ƒ t  j	 ƒ  } t  j |  ƒ } | j t  j j ƒ t  j	 ƒ  } t  j |  ƒ } | j t  j j ƒ t  j	 ƒ  } t  j
 |  ƒ }	 t  j |  j d ƒ |  ƒ |  _ |	 j |  j ƒ t  j |  j d ƒ ƒ }
 t  j |  ƒ |  _ |  j j d d ƒ |  j j d ƒ t  j |  j d ƒ |  ƒ |  _ t  j |  j d ƒ |  ƒ |  _ t  j |  j d ƒ |  ƒ |  _ t  j |  j d	 ƒ |  ƒ |  _ |	 j |  j ƒ t  j |  j d
 ƒ |  ƒ |  _ |	 j |  j ƒ t  j |  ƒ |  _ |  j j d d ƒ t  j d ƒ } t  j |  ƒ |  _ |  j j d d ƒ t  j |  j d ƒ ƒ |  _ t  j |  j d ƒ ƒ |  _ t  j |  j d ƒ ƒ |  _ t  j
 |  ƒ } t  j |  j d ƒ |  ƒ |  _  t  j |  j d ƒ |  ƒ |  _! | j |  j  ƒ | j |  j! ƒ |  j" |  j t# j$ d ƒ |  j% ƒ |  j" |  j  t# j$ d ƒ |  j% ƒ |  j" |  j! t# j$ d ƒ |  j% ƒ t  j |  ƒ |  _& |  j& j d d ƒ |  j& j d ƒ t  j |  ƒ |  _' |  j' j d d ƒ |  j' j d ƒ t  j |  j d ƒ ƒ |  _( |  j( j) d ƒ t  j |  j d ƒ ƒ |  _* |  j* j) d ƒ t  j |  ƒ |  _+ t  j |  ƒ |  _, t  j |  ƒ |  _- |  j- j. d ƒ |  j- j/ d ƒ t  j d ƒ } t  j d  ƒ } |  j+ j/ d! ƒ |  j, j/ d ƒ | j0 |
 ƒ t  j1 ƒ  } | j0 |  j ƒ | j0 |  j ƒ | j2 ƒ  | j3 | ƒ t  j1 ƒ  } | j0 |  j ƒ | j0 |  j ƒ | j0 | ƒ | j0 |  j ƒ | j2 ƒ  | j3 | ƒ t  j1 ƒ  |  _4 t  j |  j d" ƒ |  ƒ |  _5 |  j4 j6 d# ƒ |  j4 j0 |  j5 ƒ t  j1 ƒ  } | j0 |  j ƒ | j0 |  j- ƒ | j0 | ƒ | j0 |  j+ ƒ | j0 | ƒ | j0 |  j, ƒ | j2 ƒ  | j6 d# ƒ | j3 | ƒ | j3 |  j4 ƒ | j0 |  j ƒ | j0 |  j ƒ | j0 |  j ƒ | j7 | ƒ | j2 ƒ  |  j" |  j t# j$ d$ ƒ |  j8 ƒ |  j" |  j t# j$ d$ ƒ |  j9 ƒ |  j" |  j+ t# j$ d% ƒ |  j: ƒ |  j" |  j, t# j$ d% ƒ |  j; ƒ | j0 |  j ƒ | j0 |  j ƒ t  j1 ƒ  } | j0 |  j  ƒ | j0 |  j' ƒ | j3 | ƒ t  j1 ƒ  } | j0 |  j! ƒ | j0 |  j& ƒ | j3 | ƒ | j0 |  j ƒ | j7 | ƒ | j2 ƒ  | j0 |  j( ƒ | j0 |  j* ƒ | j2 ƒ  | j7 | ƒ | j0 | d d d d ƒ | j0 | d d d d ƒ | j0 | d d d d ƒ |  j7 | ƒ |  j" t< ƒ  j= t# j$ d& ƒ |  j> ƒ |  j" |  j5 t# j$ d' ƒ |  j? ƒ d  S((   Ni   s   Display window size xs   Output image sizegš™™™™™É?g      @s   Width (in pixels)s   Scale font sizess   Scale line widthss   Scale image sizess   Use dpii    iˆ  R@   s   Transparent backgrounds   Output text on scale bars   Stereo images   Shear stereo with separations   Rotation stereo with angles   clicked (bool)g      4Àg      4@g      ð?g       Àg       @gš™™™™™¹?s   Save status filei   s   View outputip  i,  s    width (in)s    heightg      @s   Keep graphics window aspecti
   s   valueChanged(int)s   valueChanged(double)t   SizeChangeds   stateChanged(int)(@   R    t   QWidgett   __init__t   QGridLayoutt
   setSpacingt   setContentsMarginst   QFramet   setFrameStylet   Boxt   QVBoxLayoutt   QButtonGroupt   QRadioButtont   trt   size_windowt	   addButtont   QLabelt   QDoubleSpinBoxt   magnificationt   setRanget   setSingleStept   size_definedt	   QCheckBoxRj   R   Rm   t   dpi_definedt   QSpinBoxt   heightWidgett   widthWidgetRi   R   Rg   Rª   R«   t   connectR   t   SIGNALR®   Rh   Rk   t   save_statust
   setCheckedt   previewt   width_dpi_inchest   height_dpi_inchest   dpi_spint
   setMaximumt   setValuet	   addWidgett   QHBoxLayoutt
   addStretcht	   addLayoutt
   keepLayoutt
   keepAspectt
   addSpacingt	   setLayoutt   checkHeightt
   checkWidtht   checkHeightDPIt   checkWidthDPIR-   R.   t   glSizeChangedt   keepAspectChanged(   R¬   t   parentt   layoutt
   size_framet   size_layoutt   style_framet   style_layoutt   review_framet   review_layoutt
   size_groupt   label0t   labelt   stereo_groupt   width_dpi_labelt   height_dpi_labelt   layout0t   layout1t   layout2t   line_layout(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR±   …  sô    """



""""

%c         C   s<   |  j  t |  j j ƒ  ƒ ƒ |  j t |  j j ƒ  ƒ ƒ d  S(   N(   RÛ   RW   RÈ   t   valueRÝ   RÎ   (   R¬   t   state(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRà     s    c         C   s<   |  j  t |  j j ƒ  ƒ ƒ |  j t |  j j ƒ  ƒ ƒ d  S(   N(   RÛ   RW   RÈ   Ró   RÝ   RÎ   (   R¬   R   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRß     s    c         C   sy   |  j  j ƒ  s d  St ƒ  j j ƒ  } |  j j t ƒ |  j j t	 | t
 | j ƒ  ƒ | j ƒ  ƒ ƒ |  j j t ƒ d  S(   N(   RØ   R¨   R-   R.   R   RÇ   t   blockSignalsR   RÒ   RW   R?   R@   R[   R
   (   R¬   t   valR{   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRÛ   %  s     0c         C   sy   |  j  j ƒ  s d  St ƒ  j j ƒ  } |  j j t ƒ |  j j t	 | t
 | j ƒ  ƒ | j ƒ  ƒ ƒ |  j j t ƒ d  S(   N(   RØ   R¨   R-   R.   R   RÈ   Rõ   R   RÒ   RW   R?   R[   R@   R
   (   R¬   Rö   R{   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRÜ   -  s     0c         C   sy   |  j  j ƒ  s d  St ƒ  j j ƒ  } |  j j t ƒ |  j j t	 | t	 | j
 ƒ  ƒ | j ƒ  ƒ ƒ |  j j t ƒ d  S(   N(   RØ   R¨   R-   R.   R   RÏ   Rõ   R   RÒ   R?   R@   R[   R
   (   R¬   Rö   R{   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRÝ   6  s     0c         C   sy   |  j  j ƒ  s d  St ƒ  j j ƒ  } |  j j t ƒ |  j j t	 | t	 | j
 ƒ  ƒ | j ƒ  ƒ ƒ |  j j t ƒ d  S(   N(   RØ   R¨   R-   R.   R   RÎ   Rõ   R   RÒ   R?   R[   R@   R
   (   R¬   Rö   R{   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRÞ   ?  s     0c         K   s‰  | j  | ƒ | j d d ƒ r6 |  j j | d ƒ n  | j d d ƒ r_ |  j j | d ƒ n  | j d d ƒ rˆ |  j j | d ƒ n  | j d d ƒ r± |  j j | d ƒ n  | j d d ƒ r/| d d k ræ |  j j d ƒ q/| d d	 k r	|  j j d ƒ q/| d d
 k r/|  j	 j d ƒ q/n  | j d d ƒ rŠ| d d k rd|  j
 j d ƒ qŠ| d d k rŠ|  j j d ƒ qŠn  xO d d d d d d g D]5 } | j | d ƒ r£t |  | ƒ j | | ƒ q£q£WxG d d g D]9 } | j | d ƒ rét |  | d ƒ j | | ƒ qéqéWxR d d d d d g D]; } | j | d ƒ d k r<t |  | ƒ j | | ƒ q<q<W|  j ƒ  d  S(   NRj   R   Rm   R   RØ   t	   size_modet   definedi   t   windowRÅ   Rl   R   R   RÀ   Rh   Rk   RÐ   RÎ   RÏ   R@   R[   t   WidgetRi   Rg   RÍ   RË   R   iÿÿÿÿi    (   t   updatet   getRj   RÌ   Rm   R   RØ   RÃ   R¼   RÅ   Rª   R«   t   getattrRÒ   R®   (   R¬   t   paramsRp   t   key(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt	   setParamsI  s>    !%!c         C   s  i  } x9 d d d d d d g D] } t  |  | ƒ j ƒ  | | <q Wx1 d d g D]# } t  |  | d	 ƒ j ƒ  | | <qO Wx6 d
 d d d d g D] } t  |  | ƒ j ƒ  | | <qŒ Wt  |  d ƒ j ƒ  rÑ d | d <nD t  |  d ƒ j ƒ  ró d | d <n" t  |  d ƒ j ƒ  rd | d <n  t  |  d ƒ j ƒ  r7d | d <n" t  |  d ƒ j ƒ  rYd | d <n  t  |  d ƒ j ƒ  r{d | d <n
 d | d <t  |  d ƒ j ƒ  r§d | d <n
 d | d <t  |  d ƒ j ƒ  rÓd | d <n
 d | d <t  |  d ƒ j ƒ  rÿd | d <n
 d | d <| S(    NRÀ   Rh   Rk   RÐ   RÎ   RÏ   R@   R[   Rú   Ri   Rg   RÍ   RË   R   RÃ   Rø   R÷   R¼   Rù   RÅ   Rª   R   Rl   R«   R   Rj   i   i    Rm   R   RØ   (   Rý   Ró   R¨   (   R¬   t   parsRÿ   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt	   getParamsy  s<    !



N(   t   __name__t
   __module__RE   R®   R±   Rà   Rß   RÛ   RÜ   RÝ   RÞ   R   R  (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR§   q  s   ”								
0t   screenShotGUIc           B   sÃ   e  Z i d  d 6d d 6d d 6d d 6d d 6d	 d
 6d d 6d	 d 6d d 6d d 6d d 6d	 d 6d d 6d d 6d d 6d d 6Z i  d „ Z d „  Z d d „ Z d „  Z d „  Z d „  Z	 d „  Z
 RS(    Rù   R÷   R   Rl   iX  R[   R@   i   RÀ   i    Ri   R   Rg   Rj   Rm   R   RØ   g      @Rh   gš™™™™™¹?Rk   t   pngt   filetypeRË   c         K   s   |  j  j | ƒ d  S(   N(   t   optionsWidgetR   (   R¬   Rþ   Rp   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR   Â  s    c         C   s   |  j  j ƒ  S(   N(   R  R  (   R¬   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR  Ç  s    c         C   s1   t  j j |  | ƒ |  j ƒ  |  j |  j ƒ d  S(   N(   R    t   QDialogR±   t   drawR   t   saved_params(   R¬   Rá   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR±   Ì  s    
c   
      C   s»  |  j  |  j d ƒ ƒ t j ƒ  } | j d ƒ | j d d d d ƒ t j d |  ƒ } t j ƒ  } | j d ƒ | j	 | ƒ | j
 | ƒ t ƒ  |  _ |  j j j d ƒ |  j j j d ƒ |  j j j t ƒ | j
 |  j ƒ d d  l } | j |  ƒ } | j ƒ  |  _ |  j j t j j ƒ |  j j t j j ƒ |  j j t ƒ g  } t j j ƒ  } xÍ | D]Å } t | ƒ j  ƒ  t | ƒ k rat | ƒ j  ƒ  d t | ƒ d t | ƒ g }	 t | ƒ j  ƒ  d	 k rÜt! j" d
 k st | ƒ j  ƒ  d k rt! j" d
 k r| j# d |	 ƒ q&| j$ |	 ƒ qaqaW|  j j% | ƒ |  j& |  j t' j( d ƒ |  j) ƒ |  j& |  t' j( d ƒ |  j) ƒ |  j& |  j t' j( d ƒ |  j* ƒ | j
 | ƒ |  j+ | ƒ d  S(   Ns   Save screenshot to image filei   sh     Note that the Render tool (on the File menu) will produce better quality pictures than this screenshoti   i    iÿÿÿÿs
    files (*.t   )t   PNGR“   t   BMPi    s
   rejected()s   fileSelected(const QString&)(,   t   setWindowTitleR»   R    R¸   R³   R´   R¾   t   QFontt	   setItalict   setFontRÓ   R§   R  RÈ   RÑ   RÇ   Rm   R©   R
   t	   mgWidgetst   MGFileDialogt   getFileDialogt
   fileDialogt   setFileModet   QFileDialogt   AnyFilet   setAcceptModet
   AcceptSavet   setConfirmOverwriteR   t   supportedImageFormatsRK   t   upperR%   R”   t   insertR\   t   setNameFiltersRÉ   R   RÊ   RT   R   RÚ   (
   R¬   Râ   Rë   t   fontR  t   filet   filter_listt   formatst   formatt   filter(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR
  Ô  sF    0''""c         C   sÔ  g  } t  |  j d ƒ } | r| | j ƒ  r| xO d d g D]> } t  |  j | d ƒ } | r7 | j t | j ƒ  ƒ ƒ q7 q7 Wn  t  |  j d ƒ } | rÿ | j ƒ  rÿ t t  |  j d ƒ j ƒ  ƒ } t ƒ  j j	 ƒ  } t | j
 ƒ  | ƒ t | j ƒ  | ƒ g } n  t  |  j d ƒ } | r | j ƒ  r t  |  j d ƒ } | r | j ƒ  } xS d d g D]B } t  |  j | d	 ƒ } | rT| j t | j ƒ  | ƒ ƒ qTqTWq n  t | ƒ d
 k  r»g  } n  |  j j ƒ  } | sÔd  St | d j ƒ  ƒ } t  |  j d ƒ } | r(| j ƒ  r(t ƒ  j d | d ƒ n  t  |  j d ƒ j ƒ  rId } n! t  |  j d ƒ j ƒ  rjd } n  d } t  |  j d ƒ j ƒ  r�|  j j j ƒ  } n  t j ƒ  }	 t j j ƒ  rzd GHt | d | d t |  j j j ƒ  ƒ d |  j j j ƒ  d |  j j j ƒ  d |  j j j ƒ  d |  j j j ƒ  d | d |  j j j ƒ  d | d t d |  j j j ƒ  d  |  j j  j ƒ  ƒ}
 n´ t | d | d t |  j j j ƒ  ƒ d |  j j j ƒ  d |  j j j ƒ  d |  j j j ƒ  d |  j j j ƒ  d | d |  j j j ƒ  d | d |  j j j ƒ  d  |  j j  j ƒ  ƒ}
 d! Gt j ƒ  |	 GHt! j" j# ƒ  |
 d r}t$ j% j& |  d" | d# |
 d$ ƒ nS |  j j' j ƒ  r¦t( ƒ  j) |
 d$ ƒ n  d% Gt j ƒ  |	 GHt! j" j# ƒ  |  j* ƒ  d  S(&   NRÃ   R[   R@   Rú   R¼   RÀ   RÅ   RÐ   t   _dpi_inchesi   i    RË   R"  s   .pklRª   R   R«   R   i,  s
   Using FBOsR   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   R   R   s   time to get screenshott
   Screenshots   
i   s   time to preview(+   Rý   R  R¨   R\   RW   Ró   R?   R-   R.   R   R[   R@   RQ   R  t   selectedFilesRK   t   toUtf8t   saveStatusFileRÐ   R(   R   R1   R2   R�   Rg   Rh   Ri   Rj   Rk   Rm   R   R   R   R%   R&   R'   R    t   QMessageBoxt   warningRÍ   t
   FILEVIEWERR!   RT   (   R¬   R   t   wt   itemRÀ   R{   Rn   R"  Rl   Rr   Rq   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR     sf     #/ * 	 		½´ 
%  c         C   s0   t  | ƒ d k r d  S|  j j |  j ƒ  ƒ d  S(   Ni    (   RQ   R  Rû   R  (   R¬   t   fileList(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   handleSelectionM  s     c         C   s*   |  j  j |  j ƒ  ƒ t j j |  ƒ d  S(   N(   R  Rû   R  R    R	  RT   (   R¬   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyRT   V  s    N(   R  R  R  R   R  RE   R±   R
  R   R2  RT   (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyR  «  s0   
		:	?		c          C   s³   d d  l  }  d } d d g j t j ƒ r3 d } n d } |  j d d d d	 d
 d d d d g d i | d 6| d 6d i t d t d d d d ƒ d 6t d t d d d d ƒ d 6ƒ S(   Niÿÿÿÿi   R“   t   darwini    t   namet   screenshot_preferencest   titlet   Screenshotst   helps   images.html#screenshotst   guit	   offscreent	   antialiast   defaultt
   definitiont   typeRë   s)   Create image offscreen (offscreen buffer)t   stylet   checkboxs   Smooth edges (antialias) output(   t   servicest   countR%   R”   t   ParamsManagert   dictRW   (   RA  R;  R:  (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   create_screenshot_preferences]  s    		

(   t   __doc__t   PyQt4R    R   R   t   global_definitionsR%   R#   t   guiUtilsR  t   MGSimpleDialogR(   RE   t   PREFERENCESR   R
   R�   RP   R¦   R°   R§   R	  R  RE  (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/screenshot.pyt   <module>   s$   
$			âLÿ ;²