mς
7ϊCc           @   sΒ   d  k  Z  d  k Z e i d  d  k Z d  k Z d  k Z d k l Z d k l	 Z	 l
 Z
 d k l Z d k l Z e d  \ Z Z Z Z Z Z d e i f d     YZ d	 f  d
     YZ d  S(   Ns   2.0(   s   NoSuchRevision(   s   AnnotateColorMaps   AnnotateColorSaturation(   s   LogView(   s   SpanSelectori   t   GAnnotateWindowc           B   s   t  Z d  Z e 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   Z RS(   s   Annotate window.c         C   s|   | |  _  | |  _ t i i |  t i  |  i |  i t i	 t i
   t   |  _ |  i   |  i o |  i i   n d  S(   N(   t   allt   selft   plaint   gtkt   Windowt   __init__t   WINDOW_TOPLEVELt   set_icont   render_icont
   STOCK_FINDt   ICON_SIZE_BUTTONt   AnnotateColorSaturationt   annotate_colormapt   _createt   span_selectort   hide(   R   R   R   (    (    t3   /home/jelmer/.bazaar/plugins/gannotate/gannotate.pyR   -   s    		

c   	   	   C   sQ  h  |  _ t i t i t i t i t i t i t i  |  _ d  } xΓ t	 |  i
 | |   D]© \ } \ } } } | i | j o |  i o d } } n | i } | i } | i |  i j o | |  i | i <n |  i i | i | d | | d  | i d  g  q[ W|  i p |  i   |  i i   n |  i i |  i  |  i i   d  S(   Nt    i   s   
(   R   t	   revisionsR   t	   ListStoret   gobjectt   TYPE_STRINGt	   annomodelt   Nonet	   last_seent	   enumeratet	   _annotatet   brancht   file_idt   line_not   revisiont   revnot   linet   revision_idR   t	   committert   appendt   rstripR   t   _set_oldest_newestR   t   activate_defaultt   annoviewt	   set_modelt
   grab_focus(	   R   R   R   R#   R   R    R!   R   R   (    (    R   t   annotate;   s,    	 		6

c         C   sT   | t |  i  j p | d j  o d } d | GHn | d } |  i i |  d  S(   Ni   i    s=   gannotate: Line number %d does't exist. Defaulting to line 1.(   t   linenot   lenR   R   t   rowR(   t
   set_cursor(   R   R,   R.   (    (    R   t   jump_to_linec   s
    #
c         c   sφ   | i   } | i } | i | i    } | i | i	 } | i i | | i    }	 x |	 i |  D] \ } } |	 i |  } y9 | i |  }
 | | j o | i |  } n d } Wn% t j
 o t |  }
 d } n X|
 | | f Vqe Wd  S(   Nt   merget   ?(   R   t   revision_historyt   rev_histt
   repositoryt   revision_treet   last_revisiont   rev_treet	   inventoryR   R   t   rev_idt   weave_storet	   get_weavet   get_transactiont   weavet   annotate_itert   origint   textt   idx_to_namet   get_revisiont   revision_id_to_revnoR    t   NoSuchRevisiont   NoneRevision(   R   R   R   R@   R4   R    R8   R5   RA   R>   R   R:   (    (    R   R   o   s$    	 
c            s   t    d     i  } t |  } t |  }   i t	 i	   |  }   i i |    i | |  }   i i |  d  S(   Nc            s     i |  i S(   N(   R   R   t   it	   timestamp(   RG   (   R   (    R   t   <lambda>   s    (   t   mapR   R   t	   rev_datest   mint   oldestt   maxt   newestt   _span_from_secondst   timet   spanR   t   set_to_oldest_spant   set_newest_to_oldest_span(   R   RO   RK   RR   RM   (    (   R   R   R&      s    c         C   s   | d d d S(   Ni   i<   (   t   seconds(   R   RU   (    (    R   RP      s    c         C   s6   |  i i |  t i   } |  i i |  i |  d  S(   N(	   R   R   t   set_spanRR   RQ   t   nowR   t   foreacht   _highlight_annotation(   R   t   wRR   RW   (    (    R   t   _span_changed_cb   s    c         C   sH   | i | t  \ } |  i | } | i | t	 |  i
 i | |   d  S(   N(   t   modelt   gett   itert   REVISION_ID_COLR"   R   R   R   t   sett   HIGHLIGHT_COLOR_COLR   t	   get_colorRW   (   R   R\   t   pathR^   RW   R"   R   (    (    R   RY      s    c         C   sA   |  i i   \ } } |  i | t } |  i i	 |  i
 |  d  S(   N(   R   R(   t
   get_cursorRc   t   colR   R_   R:   t   logviewt   set_revisionR   (   R   RZ   Rc   Re   R:   (    (    R   t	   _show_log   s    c         C   sv  |  i   |  _ |  i   |  _ |  i   |  _ t i t	 d  } | i d  | i   t i   } | i t i t i  | i t i  | i |  i  | i   t i   |  _ } | i |  | i |  i  | i   | i | d t d t t i t d  } | i |  i d t	 d t | i |  i   d t	 d t | i   | i | d t	 d t |  i |  d  S(   Ni   t   expandt   filli   (   R   t   _create_log_viewRf   t   _create_annotate_viewR(   t   _create_span_selectorR   R   t   VBoxt   Falset   vboxt   set_border_widtht   showt   ScrolledWindowt   swt
   set_policyt   POLICY_AUTOMATICt   set_shadow_typet	   SHADOW_INt   addt   VPanedt   panet   add1t   add2t
   pack_startt   Truet   HBoxt   hboxt   _create_button_box(   R   Rt   Rp   R{   R   (    (    R   R   £   s,    



c         C   s³  t  i   } | i t  | i d |  i  | i   t  i	   } | i d d  | i d d  | i d d  | i d | i   i t  i  t  i   } | i t  | i | d	 t | i | d
 t  | i |  t  i	   } | i d d  | i d t i  | i d |  i   i t  i  t  i d  } | i t  | i | d	 t | i | d
 t  | i |  t  i	   } | i d d  | i d d  | i d |  i   i t  i  t  i d  } | i t  | i | d	 t | i | d t  | i |  t  i	   } | i d d  | i d d  t  i   } | i t  | i | d	 t | i | d t  | i | d
 t  | i |  | i t  | S(   Ns   cursor-changedt   xalignf1.0t   ypadi    t   familyt	   Monospaces   cell-background-gdkRi   RA   t	   ellipsizet	   Committert   Revnot   markupt
   background(   R   t   TreeViewt   tvt   set_rules_hintRo   t   connectR   Rh   Rr   t   CellRendererTextt   cellt   set_propertyt	   get_stylet   bgt   STATE_NORMALt   TreeViewColumnRe   t   set_resizableR~   R   t   add_attributet   LINE_NUM_COLt   append_columnt   pangot   ELLIPSIZE_ENDt   COMMITTER_COLt	   REVNO_COLRa   t   TEXT_LINE_COLt   set_search_column(   R   R   R   Re   (    (    R   Rl   ΐ   s\    
			c         C   s*   t    } | i d |  i  | i   | S(   Ns   span-changed(   t   SpanSelectort   ssR   R   R[   Rr   (   R   R’   (    (    R   Rm   χ   s    	
c         C   s   t    } | i   | S(   N(   t   LogViewt   lvRr   (   R   R€   (    (    R   Rk   ώ   s    	
c            s   t  i   } | i t  i  | i   t  i   } | i t	  | i
 d  | i d   d    | i   | i | d t d t | S(   Ns	   gtk-closet   clickedc            s
     i   S(   N(   R   t   destroy(   RZ   (   R   (    R   RI     s    Ri   Rj   (   R   t
   HButtonBoxt   boxt
   set_layoutt   BUTTONBOX_ENDRr   t   Buttont   buttont   set_use_stockR   t	   set_labelR   R~   Ro   (   R   R¨   R¬   (    (   R   R   R     s    

(   t   __name__t
   __module__t   __doc__Ro   R   R+   R0   R   R&   RP   R[   RY   Rh   R   Rl   Rm   Rk   R   (    (    (    R   R    *   s    	(									7		RF   c           B   s   t  Z d  Z d   Z RS(   sN    A fake revision.

    For when a revision is referenced but not present.
    c         C   s:   | |  _  g  |  _ d |  _ d |  _ d |  _ d |  _ d  S(   NR2   f0.0i    (   R"   R   t
   parent_idsR#   t   messageRH   t   timezone(   R   R"   (    (    R   R     s    					(   R―   R°   R±   R   (    (    (    R   RF     s    (   RQ   t   pygtkt   requireR   R   R   t   bzrlib.errorsRE   t   colormapt   AnnotateColorMapR   Rf   R£   t   spanselectorR‘   t   rangeR_   R   R   R   Ra   R   R   R    RF   (   Ra   R‘   RF   R   R   R    R   R   R_   R΅   R£   R   RE   RΉ   RQ   R   R   R   (    (    R   R2      s   					
κ