ó
ÉÝ{Tc           @   st  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l Z d d l	 m
 Z
 d d d d g d d d d g d	 d d d g d
 d d d g d d d d g d d d d g d d d d g d d d d g g Z d d 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 e j f d „  ƒ  YZ d S(   s™  
     qtgui/ColourBrowser.py: CCP4MG Molecular Graphics Program
     Copyright (C) 2001-2008 University of York, CCLRC
     Copyright (C) 2009-2010 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   QtCoret   QtGuit   QtOpenGLN(   t   InteractiveLabelt   blacki    t   rediÿ   t   greent   bluet   yellowt   magentat   cyant   whitet
   colourlistc           B   s’   e  Z g  d  „ Z d d g  d „ Z d g  d „ Z d „  Z d „  Z d „  Z d „  Z d	 „  Z	 d d d
 „ Z
 d „  Z d „  Z d d d „ Z RS(   c         C   s9   g  |  _  x) | D]! } |  j | d | d d !ƒ q Wd  S(   Ni    i   i   (   t   itemst
   add_colour(   t   selfR   t   item(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   __init__*   s    	iÿÿÿÿt    c         C   sM   | d k rI | t  |  j ƒ k  rI | | d | d | d g |  j | <n  d  S(   Ni    i   i   (   t   lenR   (   R   t   indext   namet   rgb(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt
   set_colour/   s    !c         C   s}   |  j  | ƒ } | d k  rF |  j j | | d | d | d g ƒ n3 x0 t d d ƒ D] } | | |  j | | d <qV Wd  S(   Ni    i   i   i   (   R   R   t   appendt   range(   R   R   R   t   iit   jj(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   3   s
    +c         C   s,   x% |  j  D] } | d | k r
 d Sq
 Wd S(   Ni    i   (   R   (   R   t   colR   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt
   has_colour;   s     c         C   sL   xE |  j  D]: } | d | k r
 | d | k r
 | d | k r
 d Sq
 Wd S(   Ni   i   i   i    (   R   (   R   t   rt   gt   bR   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   has_rgb@   s    0c         C   sP   xI |  j  D]> } | d | k r
 | d | k r
 | d | k r
 | d Sq
 Wd S(   Ni   i   i   i    R   (   R   (   R   R   R   R    R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   get_name_for_rgbF   s    0c         C   s<   d } x/ |  j  D]$ } | d } | d | k r | Sq Wd S(   Niÿÿÿÿi   i    (   R   (   R   R   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   L   s    
 c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   T   s    c         C   s\   | r |  j  | ƒ } n  | d k rK | t |  j ƒ k  rK |  j | d d !Sd d d g Sd  S(   Ni    i   i   (   R   R   R   (   R   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   get_rgb]   s
    !c         C   s/   | t  |  j ƒ k  r$ |  j | d Sd g Sd  S(   Ni    R   (   R   R   (   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt
   get_coloure   s    c         C   s3   |  j  | ƒ } | d k r/ | |  j | d <n  d  S(   Ni    (   R   R   (   R   t   oldt   newR   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   renamek   s    c         C   sF   | d k  r |  j  | ƒ } n  | d k r> |  j j | ƒ d Sd Sd  S(   Ni    i   (   R   R   t   pop(   R   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   deletep   s     (   t   __name__t
   __module__R   R   R   R   R!   R"   R   R   R#   R$   R'   R)   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   )   s   								t
   ClickLabelc           B   s#   e  Z d d  d  d „ Z d „  Z RS(   i    c         C   s   t  j j |  | ƒ d  S(   N(   R   t   QLabelR   (   R   t   parentt   editablet   dummy(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   z   s    c         C   s#   |  j  t j d ƒ | |  f ƒ d  S(   Nt   MousePressed(   t   emitR    t   SIGNAL(   R   t   event(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   mousePressEvent}   s    N(   R*   R+   t   NoneR   R5   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR,   y   s   t   ColourLabelc           B   sY   e  Z d	 d  d  d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(
   i    c         C   s‹   t  j j |  | ƒ t  j ƒ  |  _ | |  _ | sZ |  j t  j j ƒ |  j	 t  j j
 ƒ n  |  j t j j ƒ |  j d ƒ |  j d ƒ d  S(   Ni   i   (   R   R-   R   t   QColort   colourR/   t   setFrameStylet   QFramet   Panelt   setFrameShadowt   Raisedt   setAttributeR    t   Qtt   WA_DeleteOnCloset   setLineWidtht   setMaximumHeight(   R   R.   R/   R0   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   �   s    	c         C   s#   |  j  t j d ƒ | |  f ƒ d  S(   Nt   MouseDoubleClick(   R2   R    R3   (   R   R4   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   mouseDoubleClickEventŒ   s    c         C   sC  | j  ƒ  t j j k r4 |  j t j d ƒ |  ƒ n| j  ƒ  t j j k r&|  j r&t j	 |  j
 d ƒ |  ƒ |  _ t j d |  ƒ } |  j j | ƒ t j d |  ƒ } |  j j | ƒ |  j j | j ƒ  ƒ |  j | t j d ƒ t j |  j d ƒ ƒ |  j | t j d ƒ t j |  j d ƒ ƒ n |  j t j d ƒ |  ƒ d  S(	   Nt   LeftMousePressedt   Contexts   Delete colours   Change colours   triggered()R)   t   editR1   (   t   buttonR    R@   t
   LeftButtonR2   R3   t   RightButtonR/   R   t   QMenut   trt   menut   QActiont	   addActiont   popupt	   globalPost   connectt   guiUtilst   partialt
   handleMenu(   R   R4   t   removeRH   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR5   �   s    !+.c         C   s   |  j  t j | ƒ |  ƒ d  S(   N(   R2   R    R3   (   R   t   mode(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRV   ž   s    c         C   s#   |  j  t j d ƒ | |  f ƒ d  S(   Nt
   MouseMoved(   R2   R    R3   (   R   R4   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   mouseMoveEvent¡   s    c         C   s   t  j d d ƒ S(   Ni   i
   (   R    t   QSize(   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   sizeHint¤   s    c         C   s   |  j  S(   N(   R9   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt	   getColour§   s    c         C   s6   | |  _  |  j t ƒ t j | ƒ } |  j | ƒ d  S(   N(   R9   t   setAutoFillBackgroundt   TrueR   t   QPalettet
   setPalette(   R   R9   t   palette(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt	   setColourª   s
    	N(   R*   R+   R6   R   RE   R5   RV   RZ   R\   R]   Rc   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR7   €   s   						t   HSVRGBWidgetc           B   sA   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   	      C   sx  t  j j |  | ƒ t  j ƒ  } t  j ƒ  } | j d ƒ t  j ƒ  } | j d ƒ t  j ƒ  } | j d ƒ t  j ƒ  } | j d ƒ t  j ƒ  } | j d ƒ t  j ƒ  } | j d ƒ | j | d d t j j	 ƒ | j | d d t j j	 ƒ | j | d	 d t j j	 ƒ | j | d d	 t j j	 ƒ | j | d d	 t j j	 ƒ | j | d	 d	 t j j	 ƒ t  j
 ƒ  |  _ |  j j d
 ƒ | j |  j d d ƒ t  j
 ƒ  |  _ |  j j d ƒ | j |  j d d ƒ t  j
 ƒ  |  _ |  j j d ƒ | j |  j d	 d ƒ t  j
 ƒ  |  _ |  j j d ƒ | j |  j d d ƒ t  j
 ƒ  |  _ |  j j d ƒ | j |  j d d ƒ t  j
 ƒ  |  _ |  j j d ƒ | j |  j d	 d ƒ |  j | ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ |  j |  j t j d ƒ |  j ƒ d  S(   Ns   Hue:s   Sat:s   Val:s   Red:s   Green:s   Blue:i    i   i   ig  iÿ   i   s   valueChanged(int)(   R   t   QWidgetR   t   QGridLayoutR-   t   setTextt	   addWidgetR    R@   t
   AlignRightt   QSpinBoxt   hue_spint
   setMaximumt   sat_spint   val_spint   red_spint
   green_spint	   blue_spint	   setLayoutRS   R3   t
   HSVChangedt
   RGBChanged(	   R   R.   t   hsv_rgb_layoutt   huet   satt   valR   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   ¶   sZ    """""c         C   sª   |  j  ƒ  yˆ |  j j | j ƒ  ƒ |  j j | j ƒ  ƒ |  j j | j ƒ  ƒ |  j j | j	 ƒ  ƒ |  j
 j | j ƒ  ƒ |  j j | j ƒ  ƒ Wn n X|  j ƒ  d  S(   N(   t	   undoSlotsRo   t   setValueR   Rp   R   Rq   R   Rk   Rv   Rm   t
   saturationRn   t   valuet   doSlots(   R   t   color(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRc   ç   s    
c         C   sd   |  j  j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ d  S(   N(   Rk   t   blockSignalst   FalseRm   Rn   Ro   Rp   Rq   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR}   ô   s    c         C   sd   |  j  j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ |  j j t ƒ d  S(   N(   Rk   R   R_   Rm   Rn   Ro   Rp   Rq   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRy   ü   s    c         C   sÈ   |  j  j ƒ  |  j j ƒ  |  j j ƒ  } } } t j j | | | ƒ } |  j ƒ  yF |  j j	 | j
 ƒ  ƒ |  j j	 | j ƒ  ƒ |  j j	 | j ƒ  ƒ Wn n X|  j ƒ  |  j t j d ƒ | ƒ d  S(   Nt   colourChanged(   Rk   R|   Rm   Rn   R   R8   t   fromHsvRy   Ro   Rz   R   Rp   R   Rq   R   R}   R2   R    R3   (   R   R|   t   ht   st   vR~   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRs     s    /

c         C   sà   |  j  j ƒ  |  j j ƒ  |  j j ƒ  } } } t j | | | ƒ } |  j ƒ  ya | j ƒ  } | d k rr d } n  |  j j	 | ƒ |  j
 j	 | j ƒ  ƒ |  j j	 | j ƒ  ƒ Wn n X|  j ƒ  |  j t j d ƒ | ƒ d  S(   Niÿÿÿÿiÿ   R�   (   Ro   R|   Rp   Rq   R   R8   Ry   Rv   Rk   Rz   Rm   R{   Rn   R}   R2   R    R3   (   R   R|   R   R   R    R~   Rv   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRt     s    /
 	
N(	   R*   R+   R6   R   Rc   R}   Ry   Rs   Rt   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRd   µ   s   1				t   HSVPictureWidgetc           B   sA   e  Z d d  „ Z d „  Z d d „ Z d d „ Z d d „ Z RS(   c         C   s¹  t  j j |  | ƒ t  j ƒ  } d |  _ d |  _ t ƒ  |  _ |  j |  j t	 j
 d ƒ |  j ƒ |  j |  j t	 j
 d ƒ |  j ƒ |  j j t	 j j ƒ d d  l } | j j t ƒ } t  j | j j | d ƒ ƒ |  _ |  j j d ƒ |  _ t  j |  j j ƒ  |  j j ƒ  ƒ |  _ t  j ƒ  |  _ |  j d ƒ t  j ƒ  |  _ |  j j d ƒ |  j j  d ƒ |  j |  j t	 j
 d ƒ |  j! ƒ | j" |  j t	 j j ƒ | j" |  j ƒ |  j# | ƒ d  S(	   Ni    RY   R1   iÿÿÿÿs   hsv.pngiÈ   iÿ   s   valueChanged(int)($   R   Re   R   t   QHBoxLayoutt   hsv_pixmap_cursor_xt   hsv_pixmap_cursor_yR   t   colour_widgetRS   R    R3   t   HSVWidgetMovedt   setAlignmentR@   t   AlignTopt   ost   patht   dirnamet   __file__t   QPixmapt   joint
   hsv_pixmapt   scaledToHeightt   widtht   heightt   paint_pixmapt   QPaintert   hsv_paintert   rePaintHSVWidgett   QSlidert   value_sliderRl   Rz   t   sliderChangedRh   Rr   (   R   R.   t   layout_top_rightRŽ   t   my_dir(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   !  s,    		""!'"c         C   s•   d | j  ƒ  |  j j ƒ  d |  _ d t |  j d |  j j ƒ  ƒ } | j ƒ  } | j ƒ  |  j j ƒ  d |  _ |  j	 j
 | ƒ |  j | ƒ d  S(   Niÿ   g      p@g     €v@(   R{   R”   R—   R‰   t   intR|   Rv   R–   Rˆ   R�   Rz   R›   (   R   R~   Rw   R|   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRc   9  s    $$ c         C   s  | r� t  | j ƒ  j ƒ  |  j j ƒ  ƒ } t | d ƒ } t  | j ƒ  j ƒ  |  j j ƒ  ƒ } t | d ƒ } | |  _ | |  _	 n  |  j
 |  j j ƒ  ƒ t  |  j d |  j j ƒ  d ƒ } d |  j	 d |  j j ƒ  } |  j j ƒ  } |  j t j d ƒ t j j | | | ƒ ƒ d  S(   Ni    g     €v@ig  iÿ   g     ào@R�   (   t   mint   post   xR”   R–   t   maxt   yR—   Rˆ   R‰   R›   R�   R|   R2   R    R3   R   R8   R‚   (   R   R4   R¤   R¦   Rv   Rw   Rx   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR‹   A  s    $$	#i    c         C   sv   t  |  j d |  j j ƒ  d ƒ } d |  j d |  j j ƒ  } | } |  j t j d ƒ t	 j
 j | | | ƒ ƒ d  S(   Ng     €v@ig  iÿ   g     ào@R�   (   R¢   Rˆ   R”   R–   R‰   R—   R2   R    R3   R   R8   R‚   (   R   R|   Rv   Rw   Rx   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRž   P  s    #c         C   s�  |  j  j t j d d d ƒ ƒ |  j j |  j  ƒ |  j j d d |  j ƒ t j t j d d d d ƒ ƒ } t	 j
 |  j d |  j d d d ƒ } |  j j | | ƒ t	 j
 |  j d |  j d d d ƒ } |  j j | | ƒ t j t j d d d d ƒ ƒ } t	 j
 |  j |  j d d d ƒ } |  j j | | ƒ t	 j
 |  j d |  j d d ƒ } |  j j | | ƒ |  j j ƒ  |  j j |  j  ƒ d  S(   Niÿ   i    i   i
   i   i   (   R˜   t   fillR   R8   Rš   t   begint
   drawPixmapR”   t   QBrushR    t   QRectRˆ   R‰   t   fillRectt   endRŠ   t	   setPixmap(   R   R|   t   brusht   rect(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR›   V  s    !&&!""N(   R*   R+   R6   R   Rc   R‹   Rž   R›   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR†      s
   	t   ColourBrowserc           B   s
  e  Z d  Z d d d „ Z g  d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d d  d	 „ Z d g  g  d  d d
 „ Z g  d „ Z d „  Z d „  Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d d „ Z d d „ Z RS(   iÿÿÿÿR   c         C   s  | sX |  j  \ |  _ } } } |  j j t j | | | ƒ ƒ t j | | | ƒ |  _ n5 |  j j | ƒ | |  _ | r� | |  _ |  j ƒ  n  |  j j	 |  j
 ƒ |  j j d d |  j ƒ |  j j ƒ  |  j j |  j ƒ |  j j |  j ƒ |  j j |  j ƒ d  S(   Ni    (   t   initial_selected_colourt   colour_namet   selected_colour_pixmapR§   R   R8   R9   t   setNameEditablet   selected_painterR¨   t   show_pixmapR©   R­   t   selected_colour_labelR®   t
   setToolTipt   selected_colour_nameRg   (   R   R9   R   R   R   R    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   setShowPicturep  s    		c         C   s<   |  j  j ƒ  d k r( |  j j d ƒ n |  j j d ƒ d  S(   Ni    i   (   t   tabt   currentIndexRº   t   setReadOnly(   R   t   args(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRµ   „  s    c         C   sg   t  | ƒ } |  j j | ƒ r" d  S|  j t j d ƒ |  j | g ƒ |  j j |  j | ƒ | |  _ d  S(   Ns   colourNameEdit(PyQt_PyObject)(	   t   strt   standard_colR   R2   R    R3   R³   t
   custom_colR'   (   R   t   new_name(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   handleColourNameEditŠ  s     "c         C   så   |  j  j t ƒ y· |  j  j | ƒ d d t | j ƒ  ƒ j d ƒ d j d d ƒ d t | j ƒ  ƒ j d ƒ d j d d ƒ d t | j	 ƒ  ƒ j d ƒ d j d d ƒ j
 ƒ  } |  j | | ƒ Wn n X|  j  j t ƒ d  S(   Nt   #s   %2sR¤   i   t    t   0(   t   hsv_rgb_widgetR   R_   Rc   t   hexR   t   splitt   replaceR   R   t   upperR»   R€   (   R   R9   t   colname(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   HSVPictureChanged“  s    “c         C   så   |  j  j t ƒ y· |  j  j | ƒ d d t | j ƒ  ƒ j d ƒ d j d d ƒ d t | j ƒ  ƒ j d ƒ d j d d ƒ d t | j	 ƒ  ƒ j d ƒ d j d d ƒ j
 ƒ  } |  j | | ƒ Wn n X|  j  j t ƒ d  S(   NRÅ   s   %2sR¤   i   RÆ   RÇ   (   t   hsv_picture_widgetR   R_   Rc   RÉ   R   RÊ   RË   R   R   RÌ   R»   R€   (   R   R9   RÍ   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   HSVRGBChanged¡  s    “c         C   s   |  j  S(   N(   R9   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR]   ¯  s    c         C   s   |  j  S(   N(   R³   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   getColourName²  s    c         C   s¹  |  j  j | ƒ |  j j | ƒ t | d ƒ rœt | j ƒ rœt | d ƒ rœt | j ƒ rœt | d ƒ rœt | j ƒ rœ| j ƒ  | j ƒ  | j ƒ  } } } |  j j	 | | | ƒ rÓ |  j j
 | | | ƒ } qœ|  j j	 | | | ƒ r|  j j
 | | | ƒ } qœd d t | j ƒ  ƒ j d ƒ d j d d	 ƒ d t | j ƒ  ƒ j d ƒ d j d d	 ƒ d t | j ƒ  ƒ j d ƒ d j d d	 ƒ j ƒ  } n  |  j | | ƒ d
 |  _ d  S(   NR   R   R   RÅ   s   %2sR¤   i   RÆ   RÇ   iÿÿÿÿ(   RÏ   Rc   RÈ   t   hasattrt   callableR   R   R   RÂ   R!   R"   RÁ   RÉ   RÊ   RË   RÌ   R»   t	   editLabel(   R   R9   R   R   R   R   R    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRc   ¶  s    Z&–c         C   sº  t  j j |  | ƒ d |  _ t | t j ƒ t _ d |  _ d |  _ |  j	 ƒ  | re t
 | ƒ |  _ n t
 t ƒ |  _ t
 | ƒ |  _ |  j |  j |  j d d ƒ|  j |  j |  j d d ƒ| r\|  j j | ƒ så |  j j | ƒ r\| g |  _ |  j j | ƒ r%|  j j |  j j d | ƒ ƒ qq|  j j | ƒ rq|  j j |  j j d | ƒ ƒ qqn d d d d g |  _ |  j t  j |  j d |  j d	 |  j d
 ƒ |  j d ƒ |  j ƒ  d  S(   Nt   Windowsi    R   R/   i   R   R
   iÿ   i   i   (   R   t   QDialogR   RN   R¥   R±   t   new_name_numbert   editOnR³   t   drawR   RÁ   t   default_coloursRÂ   t
   addColourst   grid_top_leftt   grid_bottom_leftR   R²   t   extendR#   Rc   R8   R»   (   R   R.   t   standard_colourst   custom_coloursR×   t   selected_colour(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR   É  s*    			
*"%;c         C   s/   t  | ƒ |  _ |  j |  j |  j d d ƒd  S(   NR/   i   (   R   RÂ   RÛ   RÝ   (   R   Rà   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   updateCustomColoursé  s    c         C   s,  |  j  ƒ  j ƒ  |  _ t |  _ |  j |  j d ƒ ƒ t ƒ  |  _ t	 j
 ƒ  |  _ d |  _ t	 j ƒ  } t	 j ƒ  } t	 j ƒ  } t	 j ƒ  |  _ t	 j ƒ  |  _ |  j j |  j d ƒ ƒ t	 j ƒ  |  _ t	 j ƒ  |  _ t	 j ƒ  |  _ |  j j |  j d ƒ ƒ t	 j ƒ  |  _ t	 j ƒ  |  _ |  j j t	 j j ƒ } |  j j t	 j j ƒ } |  j j t	 j j ƒ } |  j j d t	 j j ƒ } | j d ƒ |  j | t  j! d ƒ |  j" ƒ |  j | t  j! d ƒ |  j# ƒ |  j | t  j! d ƒ |  j ƒ |  j | t  j! d ƒ |  j$ ƒ t% ƒ  |  _& t	 j' ƒ  |  _( t	 j ƒ  |  _) t	 j* d d	 ƒ |  _+ t	 j* d d	 ƒ |  _, t	 j- ƒ  |  _. |  j) j/ t	 j0 j1 ƒ |  j) j2 t	 j0 j3 ƒ |  j) j4 d
 ƒ |  j) j5 d ƒ |  j |  j& t  j! d ƒ |  j6 ƒ t7 ƒ  |  _8 |  j |  j8 t  j! d ƒ |  j9 ƒ t	 j: |  j d ƒ ƒ |  _; |  j |  j; t  j! d ƒ |  j< ƒ |  j j= |  j ƒ t	 j> ƒ  } t	 j> ƒ  }	 |	 j? t  j@ jA ƒ | j? t  j@ jA ƒ t	 jB ƒ  }
 |
 jC |  j ƒ | jD |
 ƒ | jE t ƒ |  j j= | ƒ |  j j= |  j ƒ t	 jB ƒ  } | jC |  j ƒ |	 jD | ƒ |	 jE t ƒ |  j j= |	 ƒ |  j( j= |  j8 ƒ | jF |  j ƒ | jF |  j ƒ | j= |  j& ƒ | jF |  j( ƒ t	 j: |  j d ƒ ƒ } |  j | t  j! d ƒ |  jG ƒ | j= | ƒ | j= |  j; ƒ t	 jB ƒ  |  _H |  jH jC | ƒ t	 jB ƒ  |  _I |  jI jC | ƒ t	 jJ |  ƒ |  _K | j= |  jK ƒ |  jK jL |  jH d ƒ |  jK jL |  jI d ƒ |  j |  jK t  j! d ƒ |  jM ƒ t	 j' ƒ  } | j= t	 j |  j d ƒ ƒ ƒ | j= |  j) ƒ t	 jN |  ƒ |  _O | j= |  jO ƒ | jF | ƒ | j= |  j ƒ |  jC | ƒ | jP d d d d ƒ | jP d d d d ƒ | jQ ƒ  \ } } } } |  j( jP | d | d ƒ |  j8 jR ƒ  jQ ƒ  \ } } } } |  j8 jR ƒ  jP | d | d ƒ |  j8 jR ƒ  jQ ƒ  \ } } } } |  j jS d
 ƒ |  j jS d
 ƒ |  j jP d d d d ƒ |  j jP d d d d ƒ |  jT d ƒ d  S(   Ns   Colour Browseri   s   Basic colourss   Custom colourst   Clears   Clear all custom colourss	   clicked()i2   i   i   i6   R�   s   Save colours   clicked(bool)s   Grab colour from screens   Main colourss   Create colourss   currentChanged(int)s   Selected colouri    i   (U   t   sizeR–   t
   orig_widthR_   t   expanded_first_showt   setWindowTitleRM   R,   t   fullScreenLabelR   R8   R9   t   columns_in_tablest   QVBoxLayoutt   layout_top_leftR-   t   label_top_leftRg   Rf   RÜ   t   layout_bottom_leftt   label_bottom_leftRÝ   t   QDialogButtonBoxt   dialog_buttonst	   addButtont   Okt   Applyt   Cancelt	   ResetRoleR¹   RS   R    R3   t   hidet   ApplyAndCloseRã   R†   RÏ   R‡   t   layout_bottom_rightR¸   R’   R´   R·   R™   R¶   R:   R;   R<   R=   t   SunkenRB   t   setFixedWidthRÎ   Rd   RÈ   RÐ   t   QPushButtont   custom_colour_buttont   addCustomColourRh   t   QScrollAreat   setHorizontalScrollBarPolicyR@   t   ScrollBarAlwaysOffRe   Rr   t	   setWidgett   setWidgetResizablet	   addLayoutt   Grabt   widget_leftt   widget_rightt
   QTabWidgetR¼   t   addTabRµ   t	   QLineEditRº   t   setContentsMarginst   getContentsMarginst   layoutt
   setSpacingt   setSizeGripEnabled(   R   R  t   layout_leftt   layout_rightt	   ok_buttont   apply_buttont   cancel_buttont   clear_buttont   sa2t   sat   widget_top_leftt   widget_bottom_leftt   grab_buttont   selected_colour_layoutt   leftt   rightt   topt   bottom(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRÙ   í  sÀ    		""""!!c         C   s   |  j  ƒ  |  j ƒ  d  S(   N(   Ró   Rö   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR÷   y  s    
c         C   s3   |  j  ƒ  |  j ƒ  } |  j t j d ƒ | ƒ d  S(   Nt   ColourSelected(   Rý   RÑ   R2   R    R3   (   R   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRó   }  s    
c         C   sE   t  g  ƒ |  _ |  j |  j |  j d d ƒ|  j t j d ƒ ƒ d  S(   NR/   i   t   clearCustomColours(   R   RÂ   RÛ   RÝ   R2   R    R3   (   R   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRã   ‚  s    c         C   sa  |  j  j ƒ  |  j k  r@ t |  d ƒ r@ |  j j |  j ƒ q@ n  |  j ƒ  } |  j  j | j	 ƒ  | j
 ƒ  | j ƒ  ƒ rz d  St |  j j ƒ  ƒ } |  j j | ƒ r¥ d  S| szt j d k rà d t t j ƒ } t j d t _ qzd d d t | j	 ƒ  ƒ j d ƒ d j d	 d
 ƒ d t | j
 ƒ  ƒ j d ƒ d j d	 d
 ƒ d t | j ƒ  ƒ j d ƒ d j d	 d
 ƒ j ƒ  } n  |  j d k rÆ|  j  j |  j d | d | j	 ƒ  | j
 ƒ  | j ƒ  g ƒn4 |  j  j d | d | j	 ƒ  | j
 ƒ  | j ƒ  g ƒ |  j t j d ƒ | | j	 ƒ  | j
 ƒ  | j ƒ  g ƒ |  j |  j  |  j d d ƒ|  j | | ƒ d  S(   Nt   custom_spaceri    t   user_i   s   Custom RÅ   s   %2sR¤   RÆ   RÇ   R   R   t	   newColourR/   (   RÂ   R   Ré   RÒ   RÝ   t
   removeItemR!  R]   R!   R   R   R   RÀ   Rº   t   textRÁ   R   R±   R×   RÉ   RÊ   RË   RÌ   RÔ   R   R   R2   R    R3   RÛ   R»   (   R   t   checkedR   RÍ   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRý   ‡  s*    *  —=47c         C   sð   t  j j ƒ  } t  j j | j ƒ  j ƒ  ƒ } y¨ |  j j | ƒ |  j j	 t
 j j ƒ |  j j t
 j j ƒ |  j j ƒ  |  j j ƒ  |  j j t
 j j ƒ |  j |  j t
 j d ƒ |  j ƒ |  j j t
 j j ƒ Wn |  j j ƒ  n Xd  S(   NR1   (   R   t   QApplicationt   instanceR’   t
   grabWindowt   desktopt   winIdRè   R®   t   setWindowFlagsR    R@   t   Windowt   setWindowStatet   WindowFullScreent   showt   raise_RS   R3   t   handleFullScreenClickt	   setCursort   CrossCursort   close(   R   t   appt   pixmap(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR  ¤  s    "c         C   s×   y¼ | d } | d } | j  ƒ  j ƒ  | j  ƒ  j ƒ  } } | d k r» | | j ƒ  j ƒ  k  r» | d k r» | | j ƒ  j ƒ  k  r» t j | j ƒ  j ƒ  j	 | | ƒ ƒ } |  j
 | ƒ n  Wn n X|  j j ƒ  d  S(   Ni    i   (   R£   R¤   R¦   R7  R–   R—   R   R8   t   toImaget   pixelRc   Rè   R5  (   R   R¿   R4   t   labelR¤   R¦   R9   (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR2  ³  s    

%H'c         C   sÄ   x] t  |  j j ƒ  ƒ D]F } |  j j | ƒ j ƒ  r |  j j | ƒ j ƒ  j t j j ƒ q q Wx] t  |  j	 j ƒ  ƒ D]F } |  j	 j | ƒ j ƒ  rv |  j	 j | ƒ j ƒ  j t j j ƒ qv qv Wd  S(   N(
   R   RÝ   t   countt   itemAtt   widgetR=   R   R;   R>   RÜ   (   R   t   i(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   unSinkColourLabels¿  s     , c         C   sC   |  j  ƒ  | j t j j ƒ |  j | j ƒ  t | j ƒ  ƒ ƒ d  S(   N(	   R?  R=   R   R;   Rù   Rc   R]   RÀ   t   toolTip(   R   R:  (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   colourTableClickedÅ  s    
c         C   sp   |  j  ƒ  | d j ƒ  } | d } | j t j j ƒ |  j | t | j ƒ  ƒ ƒ |  j	 t
 j d ƒ | ƒ d  S(   Ni   t   ColourChanged(   R?  R]   R=   R   R;   Rù   Rc   RÀ   R@  R2   R    R3   (   R   R¿   R9   R:  (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   colourTableDoubleClickedË  s    

i    c         C   s  | j  ƒ  } | j t ƒ } x% | D] } | j | ƒ | j ƒ  q" Wx3t d | j ƒ  ƒ D]} | |  j | |  j } }	 t d | ƒ }
 |
 j | j	 | ƒ ƒ |
 j
 t | ƒ ƒ | j | ƒ \ } } } |
 j t j | | | ƒ ƒ | j |
 | |	 ƒ |  j |
 t j d ƒ |  j ƒ |  j |
 t j d ƒ |  j ƒ |  j |
 t j d ƒ |  j ƒ |  j |
 t j d ƒ |  j ƒ qY W| j ƒ  |  j k  râxQ t |  j | j ƒ  ƒ D]3 } t d d ƒ }
 | j |
 d |  j | d ƒ q¨Wn  | j ƒ  |  j } | j | d ƒ | j | d d ƒ d  S(	   Ni    R/   RF   R)   RH   RD   R0   i   (   t   parentWidgett   findChildrenR7   t   removeWidgetR5  R   R   Ré   R¹   R$   t   setObjectNameRÀ   R#   Rc   R   R8   Rh   RS   R    R3   RA  t   deleteColourt
   editColourRC  R;  t   setRowStretch(   R   t   coloursR  R/   R=  t   childrent   childR>  t   rowR   R:  R   R   R    t   isp(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRÛ   Ô  s0    # %c         C   s�   | j  ƒ  } |  j j | ƒ } | d k r} |  j j | ƒ } | s} |  j t j d ƒ | ƒ |  j |  j |  j d d ƒq} n  d  S(   Ni    RH  R/   i   (	   R@  RÂ   R   R)   R2   R    R3   RÛ   RÝ   (   R   R:  RÍ   t   idxt   rv(    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRH  ñ  s    c         C   s6   |  j  | ƒ |  j j d ƒ t | j ƒ  ƒ |  _ d  S(   Ni   (   RA  R¼   t   setCurrentIndexR¡   t
   objectNameRÔ   (   R   R:  (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyRI  ü  s    N(   R*   R+   R×   R6   R»   Rµ   RÄ   RÎ   RÐ   R]   RÑ   Rc   R   Râ   RÙ   R÷   Ró   Rã   R€   Rý   R  R2  R?  RA  RC  RÛ   RH  RI  (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyR±   k  s0   						 	Œ									(    (   t   __doc__t   PyQt4R    R   R   t   MGSimpleDialogRT   RŽ   t   syst   MGSimpleWidgetsR   RÚ   R   R-   R,   R7   Re   Rd   R†   RÖ   R±   (    (    (    s@   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/qtgui/ColourBrowser.pyt   <module>   s&   P5kK