łň
2őGc           @   s@   d  d k  l Z d  d k l Z l Z d e f d     YZ d S(   i˙˙˙˙(   t   TreeView(   t   SIGNAL_RUN_LASTt	   TYPE_NONEt   AutoReplaceTreeViewc           B   s­   e  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 d   Z d   Z d   Z d d  Z d   Z RS(   c         C   s  t  i |   |  i | |  |  i   |  i   |  i i d |  i  |  _ |  i	 i d |  i
 |  i d f  |  _ |  i i d |  i  |  _ |  i i d |  i |  i d f  |  _ |  i i d |  i  |  _ |  i d |  i  |  _ d d	 k l } l } | |  i | |  i  |  _ d  S(
   Nt   destroyt   editedi    s   row-changedi   s   row-deletedt   mapi˙˙˙˙(   t   monitor_addt   MONITOR_FILE(   R    t   __init__t%   _AutoReplaceTreeView__init_attributest$   _AutoReplaceTreeView__set_propertiest$   _AutoReplaceTreeView__populate_modelt   _AutoReplaceTreeView__managert   connectt)   _AutoReplaceTreeView__treeview_destroy_cbt!   _AutoReplaceTreeView__signal_id_1t+   _AutoReplaceTreeView__abbreviation_renderert-   _AutoReplaceTreeView__treeview_abbr_edited_cbt   _AutoReplaceTreeView__modelt!   _AutoReplaceTreeView__signal_id_2t-   _AutoReplaceTreeView__treeview_row_changed_cbt!   _AutoReplaceTreeView__signal_id_4t*   _AutoReplaceTreeView__replacement_renderert4   _AutoReplaceTreeView__treeview_replacement_edited_cbt!   _AutoReplaceTreeView__signal_id_3t-   _AutoReplaceTreeView__treeview_row_deleted_cbt!   _AutoReplaceTreeView__signal_id_5t   connect_aftert%   _AutoReplaceTreeView__treeview_map_cbt!   _AutoReplaceTreeView__signal_id_6t   gnomevfsR   R   t"   _AutoReplaceTreeView__database_urit2   _AutoReplaceTreeView__treeview_database_changed_cbt    _AutoReplaceTreeView__monitor_id(   t   selft   managert   editorR   R   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyR	   *   s    

''c         C   sŇ   | |  _  | |  _ t |  _ |  i   |  _ |  i   |  _ |  i   |  _ |  i	   |  _
 |  i   |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ | i d |  _ d d k l } | |  i  |  _ d  S(   Ns   abbreviations.gdbi˙˙˙˙(   t   get_uri_from_local_path(   t   _AutoReplaceTreeView__editorR   t   Truet!   _AutoReplaceTreeView__can_monitort"   _AutoReplaceTreeView__create_modelR   t%   _AutoReplaceTreeView__create_rendererR   R   t0   _AutoReplaceTreeView__create_abbreviation_columnt)   _AutoReplaceTreeView__abbreviation_columnt/   _AutoReplaceTreeView__create_replacement_columnt(   _AutoReplaceTreeView__replacement_columnt   NoneR   R   R   R   R   R"   t   metadata_foldert#   _AutoReplaceTreeView__database_pathR   R&   R    (   R#   R$   R%   R&   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __init_attributesF   s$    									c         C   st   |  i  d |  i  |  i  d t  |  i  d d  |  i  d t  |  i |  i  |  i |  i  |  i i   d  S(   Nt   models
   rules-hints   search-columni    s   headers-clickable(   t   set_propertyR   R(   t   append_columnR-   R/   t   clicked(   R#   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __set_propertiesg   s    c         C   s  |  i  o* |  i i |  i   |  i i |  i  n |  i i   |  i   } | d  j oL |  i d t  |  i  o* |  i i	 |  i   |  i i	 |  i  n d  Sn | i
   pV |  i d t  | i   |  i  o* |  i i	 |  i   |  i i	 |  i  n d  Sn x0 | i   D]" \ } } |  i i | | g  qW| i   |  i  o* |  i i	 |  i   |  i i	 |  i  n |  i i |   d  S(   Nt	   sensitive(   R   R   t   handler_blockR   t   cleart0   _AutoReplaceTreeView__get_abbreviations_databaseR0   R5   t   Falset   handler_unblockt   keyst   closet   itemst   appendR'   t
   select_row(   R#   t   databaset   keyt   value(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __populate_modelw   s6    



 

c         C   s#   d d k  l } | t t  } | S(   Ni˙˙˙˙(   t	   ListStore(   t   gtkRH   t   str(   R#   RH   R4   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __create_model   s    
c         C   s-   d d k  l } |   } | i d t  | S(   Ni˙˙˙˙(   t   CellRendererTextt   editable(   RI   RL   R5   R(   (   R#   RL   t   renderer(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __create_renderer§   s    
	c         C   sŻ   d d k  l } l } d d k  l } d d k l } | | |  i d d } | i d t  | i d |  | i d	 t	  | i
 d  | i d
 t	  | i d |  | S(   Ni˙˙˙˙(   t   TreeViewColumnt   TREE_VIEW_COLUMN_GROW_ONLY(   t   SORT_ASCENDING(   t   msg0002t   texti    t   expandt   sizingt	   clickables   sort-indicators
   sort-order(   RI   RP   RQ   RR   t   i18nRS   R   R5   R=   R(   t   set_sort_column_id(   R#   RP   RQ   RR   RS   t   column(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __create_abbreviation_columnś   s    
c         C   sr   d d k  l } l } d d k  l } d d k l } | | |  i d d } | i d t  | i d |  | S(	   Ni˙˙˙˙(   RP   RQ   (   RR   (   t   msg0003RT   i   RU   RV   (	   RI   RP   RQ   RR   RX   R\   R   R5   R(   (   R#   RP   RQ   RR   R\   RZ   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __create_replacement_columnĚ   s    
c         C   s   |  i  i |   t S(   N(   R'   RC   R=   (   R#   t   treeview(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_map_cbŢ   s    c         C   sż   |  i  i |  i |  i  |  i  i |  i |  i  |  i  i |  i |  i  |  i  i |  i |  i	  |  i  i |  i
 |  i	  d d k l } |  i o | |  i  n |  i   ~  d  }  d  S(   Ni˙˙˙˙(   t   monitor_cancel(   R'   t   disconnect_signalR   R   R   R   R   R   R   R   R   R   R`   R"   R   R0   (   R#   R$   R`   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_destroy_cbâ   s    

c         C   s   |  i    t S(   N(   t3   _AutoReplaceTreeView__update_abbreviations_databaseR=   (   R#   R4   t   patht   iterator(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_row_changed_cbř   s    
c         C   sB   |  i    t |  i  p |  i d t  n |  i i |   t S(   NR9   (   Rc   t   lenR   R5   R=   R'   RC   (   R#   R4   Rd   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_row_deleted_cb  s
    
c         C   sâ   | \ } } | p  | i  |  } | i |  nŹ | i d d  } x |  i D]} } | i d t |  j o qO n | | d j oE d d k l }	 |	 | }
 |  i i	 i
 |
  |  i i i   d  SqO qO W| | | | <t S(   Nt    t    i    i˙˙˙˙(   t   msg0004(   t   get_itert   removet   replaceR   Rd   t   intRX   Rk   R'   t   error_dialogt   show_messageR   t   edit_buttont   activateR=   (   R#   t   cellRd   RT   t   dataR4   RZ   Re   t   rowRk   t   message(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_abbr_edited_cb(  s"    
 
c         C   s   | \ } } | | | | <t  S(   N(   R=   (   R#   Rt   Rd   RT   Ru   R4   RZ   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt    __treeview_replacement_edited_cbA  s    c         C   sy   |  i  t j o t |  _  d  Sn d d k l } d d k l } d d k l } | | | | g j o |  i   n d  S(   Ni˙˙˙˙(   t   MONITOR_EVENT_DELETED(   t   MONITOR_EVENT_CREATED(   t   MONITOR_EVENT_CHANGED(   R)   R=   R(   R   Rz   R{   R|   R   (   R#   t   monitor_urit   info_urit
   event_typeRz   R{   R|   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_database_changed_cbL  s    	c         C   s   |  i  d t  d  S(   NR9   (   R5   R=   (   R#   R^   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __treeview_empty_cbf  s    
t   rc         C   s   d d k  l } d d k l } y% d  } | |  i d | d t } WnI | j
 o2 | |  i d d d t } | i   d  } n d GHn X| S(   Ni˙˙˙˙(   t   open(   t   errort   flagt	   writebackt   ns   Error: Invalid database error.(   t   shelveR   t   anydbmR   R0   R2   R=   R@   (   R#   R   R   R   RD   (    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __get_abbreviations_databases  s    


	c         C   si   t  |  _ |  i d  } | d  j o d  Sn | i   x! |  i D] \ } } | | | <qA W| i   d  S(   Nt   w(   R=   R)   R<   R0   R;   R   R@   (   R#   RD   t   abbreviationt   replacement(    (    s"   plugins/AutoReplaceGUI/Treeview.pyt   __update_abbreviations_database  s    	

 
(   t   __name__t
   __module__R	   R
   R   R   R*   R+   R,   R.   R   R   R   R   R   R   R!   t'   _AutoReplaceTreeView__treeview_empty_cbR<   Rc   (    (    (    s"   plugins/AutoReplaceGUI/Treeview.pyR   #   s$   		!		"												N(   RI   R    t   gobjectR   R   R   (    (    (    s"   plugins/AutoReplaceGUI/Treeview.pys   <module>    s   