
.Gc           @   s   d  e  f d     YZ d S(   t   TemplateLanguageTreeViewc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d 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(   c         C   s  |  i  | |  |  i   |  i   |  i   | i d |  i  |  _ |  i i d |  i  |  _	 |  i i d |  i  |  _
 | i d |  i  |  _ |  i i d |  i  |  _ | i d |  i  |  _ |  i i d |  i  |  _ |  i i d |  i  |  _ d  S(	   Nt   destroys   loaded-documents   renamed-documentt   shows   cursor-changeds   imported-languages   drag-data-gets   drag-data-received(   t*   _TemplateLanguageTreeView__init_attributest)   _TemplateLanguageTreeView__set_propertiest)   _TemplateLanguageTreeView__populate_modelt*   _TemplateLanguageTreeView__select_languaget   connectt%   _TemplateLanguageTreeView__destroy_cbt&   _TemplateLanguageTreeView__signal_id_1t!   _TemplateLanguageTreeView__editort%   _TemplateLanguageTreeView__generic_cbt&   _TemplateLanguageTreeView__signal_id_2t&   _TemplateLanguageTreeView__signal_id_3t"   _TemplateLanguageTreeView__show_cbt&   _TemplateLanguageTreeView__signal_id_4t#   _TemplateLanguageTreeView__treeviewt,   _TemplateLanguageTreeView__cursor_changed_cbt&   _TemplateLanguageTreeView__signal_id_5t/   _TemplateLanguageTreeView__imported_language_cbt&   _TemplateLanguageTreeView__signal_id_6t+   _TemplateLanguageTreeView__drag_data_get_cbt&   _TemplateLanguageTreeView__signal_id_7t0   _TemplateLanguageTreeView__drag_data_received_cbt&   _TemplateLanguageTreeView__signal_id_8(   t   selft   managert   editor(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __init__&   s    


c         C   s   | |  _  | |  _ | i i d  |  _ t |  _ |  i   |  _ |  i	   |  _
 |  i   |  _ d d k l } |   i   } g  } | D] } | | i   q ~ |  _ d  |  _ |  _ |  _ d  |  _ |  _ |  _ d  |  _ |  _ d  S(   Nt   LanguageTreeViewi(   t   SourceLanguagesManager(   t"   _TemplateLanguageTreeView__managerR
   t   gladet
   get_widgetR   t   Truet(   _TemplateLanguageTreeView__is_first_timet'   _TemplateLanguageTreeView__create_modelt    _TemplateLanguageTreeView__modelt*   _TemplateLanguageTreeView__create_renderert#   _TemplateLanguageTreeView__renderert(   _TemplateLanguageTreeView__create_columnt!   _TemplateLanguageTreeView__columnt   gtksourceviewR   t   get_available_languagest   get_idt$   _TemplateLanguageTreeView__languagest   NoneR	   R   R   R   R   R   R   R   (   R   R   R   R   t   language_listt   _[1]t   name(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __init_attributes@   s    			*c         C   s   d d k  l } l } d d k l } |  i i | d g |  |  i i d | d f g |  |  i i |  i	  |  i i
 |  i  |  i	 i   d  S(	   Ni(   t   ACTION_DEFAULTt   BUTTON1_MASK(   t   TARGET_SAME_APPt   STRINGi    i{   i|   (   R6   i    i{   (   t   gtk.gdkR3   R4   t   gtkR5   R   t   enable_model_drag_sourcet   enable_model_drag_destt   append_columnR)   t	   set_modelR%   t   clicked(   R   R3   R4   R5   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __set_properties\   s    c         C   s#   d d k  l } | t t  } | S(   Ni(   t	   ListStore(   R8   R?   t   str(   R   R?   t   model(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __create_modelo   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   msg0001t   texti    t   expandt   sizingt	   clickables   sort-indicators
   sort-order(   R8   RC   RD   RE   t   i18nRF   R'   t   set_propertyt   FalseR"   t   set_sort_column_id(   R   RC   RD   RE   RF   t   column(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __create_column}   s    
c         C   s   d d k  l } |   } | S(   Ni(   t   CellRendererText(   R8   RQ   (   R   RQ   t   renderer(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __create_renderer   s    
	c         C   s   d d k  l } |   i   } g  } | D] } | | i   | i   f q* ~ } |  i i d d g  x* | D]" \ } } |  i i | | g  qo Wd  S(   Ni(   R   t   General(   R*   R   R+   t   get_nameR,   R%   t   append(   R   R   R/   R0   R1   t   language_namest   id(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __populate_model   s    3 c   	      C   so  d d k  l } l } | |  o |  i   } n | } |  i } | i   } | i | d  } | | |  oW |  i i   } | i	 |  | i
 |  } |  i i | |  i i d  t d d  n x t o | i |  } | o~ | i | d  } | | |  oX |  i i   } | i	 |  | i
 |  } |  i i | |  i i d  t d d  Pqfq Pq Wd  S(   Ni(   t   eqt   not_i   i    g      ?g        (   t   operatorRZ   R[   t'   _TemplateLanguageTreeView__get_languageR%   t   get_iter_firstt	   get_valueR   t   get_selectiont   select_itert   get_patht   scroll_to_cellt
   get_columnR"   t	   iter_next(	   R   t   languageRZ   R[   t   language_idRA   t   iteratort	   selectiont   path(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __select_language   s0    	,
(	c         C   s;   |  i  i } d d k l } | |  o d Sn | i   S(   Ni(   R[   RT   (   R
   Rf   R\   R[   R,   (   R   Rf   R[   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __get_language   s    
c            sM  g  } d d k  l } d d k  l } d d k l } l } l    f d   }    f d   } t | t | |  i   }	 |   }
 x |
 i	   D] } t
 } x) |	 D]! } | i |  o t } Pq q W| o q n | i   oQ t } | i  d  } |
 | d } |
 | d	 } | i  | | | f  q q W| |
  | S(
   Ni(   t   open_template_database(   t   close_template_database(   RZ   R[   t   nec            s   |  i     S(    (   t
   startswith(   t   x(   Rf   (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   <lambda>   s    c            s     |    S(    (    (   Rq   (   Ro   Rf   (    s*   plugins/TemplateEditor/LanguageTreeView.pyRr      s    t    i    i   (   t   MetadataRm   Rn   R\   RZ   R[   Ro   t   filterR-   t   keysRM   Rp   R"   t   replaceRV   (   R   Rf   t	   templatesRm   Rn   RZ   R[   t   same_prefixt   remove_languaget   similar_prefixt   databaset   keyt   skipt   valuet   booleant   triggert   descriptiont   template(    (   Ro   Rf   s*   plugins/TemplateEditor/LanguageTreeView.pyt   __get_templates   s2    	  	!
c         C   s4   |  i  i   } | i |  } | i | d  } | S(   Ni   (   R   t	   get_modelt   get_iterR_   (   R   Rj   RA   Rh   Rg   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __get_drop_row   s    c            s"     f d   } t  | |  } | S(   Nc            s,   |  \ } } } }   | t     | | f S(   N(   t   len(   t   dataR}   R   R   t   old_language(   Rf   (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   new_template  s    (   t   map(   R   Rx   Rf   R   (    (   Rf   s*   plugins/TemplateEditor/LanguageTreeView.pyt   __create_new_templates  s    c         C   s   |  i  i |  i |  |  i  i |  i |  i   |  i  i |  i |  i   |  i  i |  i |  |  i  i |  i |  i  |  i  i |  i |  |  i  i |  i	 |  i  |  i  i |  i
 |  i  |  i i   |  i i   d  }  ~  d  S(   N(   R
   t   disconnect_signalR	   R   R   R   R   R   R   R   R   R%   t   clearR   R.   (   R   R   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __destroy_cb   s    
c         G   sd   yJ |  i  i   } | i   \ } } | i | d  } |  i i d |  Wn t j
 o n Xd  S(   Ni   s   language-selected(   R   R`   t   get_selectedR_   R   t   emitt	   TypeError(   R   t   argsRi   RA   Rh   Rg   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __cursor_changed_cb8  s    c         G   s   |  i    d  S(   N(   R   (   R   R   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __generic_cbH  s    
c         G   s$   |  i  i   |  i i |  i   d  S(   N(   R   t
   grab_focusR
   t
   select_row(   R   R   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt	   __show_cbR  s    c         C   s>   |  i  |  | i d  |  i i |  i  |  i i   d  S(   Ns   import-error(   R   R   R
   R   R   R   (   R   R   Rf   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __imported_language_cb]  s
    c      
   C   s   y d d k  l } | i   } | i   \ } }	 | i |	 d  }
 |  i |
  } d d k l } | |  o
 |  n d d k l	 } | |  } | i
 | i d |  Wn | j
 o n Xt S(   Ni(   t   NoDataErrori   (   R[   (   t   create_template_stringi   (   t
   ExceptionsR   R`   R   R_   t(   _TemplateLanguageTreeView__get_templatesR\   R[   t   WriteXMLTemplateR   t   sett   targetR"   (   R   t   treeviewt   contextR   t   infot   timeR   Ri   RA   Rh   Rg   Rx   R[   R   t   string(    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __drag_data_get_cbr  s    c         C   s4  yBd d k  l } l }	 d d k  l }
 | i | |  \ } } d d k l } l } | | | g j o t Sn |  i	 |  } | i
 } d d k l } | |  } d d k l } | |  o
 |
  n |  i | |  } d d k l } | |  } d d k l } | |  } | |  o
 |
  n |  i i d	 |  Wn | j
 oC d d
 k l } |  i i i | d |  i |  i i d  n |	 j
 oC d d
 k l } |  i i i | d |  i |  i i d  nP |
 j
 oC d d k l } |  i i i | d |  i |  i i d  n Xt S(   Ni(   t   InvalidFileErrort   ValidationError(   R   (   t   TREE_VIEW_DROP_BEFOREt   TREE_VIEW_DROP_AFTER(   t   get_template_from_string(   R[   (   R   (   t   import_template_from_strings   imported-language(   t   msg0014t   parent_windows   import-error(   t   msg0015(   R   R   R   R   t   get_dest_row_at_posR8   R   R   R"   t'   _TemplateLanguageTreeView__get_drop_rowR   t   ReadXMLTemplateR   R\   R[   t/   _TemplateLanguageTreeView__create_new_templatesR   R   t   ImportTemplateR   R   R   RK   R   R
   t   error_dialogt   show_messaget!   _TemplateLanguageTreeView__dialogR   (   R   R   R   Rq   t   yR   R   R   R   R   R   Rj   t   positionR   R   Rg   R   R   Rx   R[   t   new_templatesR   t   template_stringR   R   R   (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyt   __drag_data_received_cb  s@    	N(   t   __name__t
   __module__R   R   R   R$   R(   R&   R   R.   R   R]   R   R   R   R   R   R   R   R   R   R   (    (    (    s*   plugins/TemplateEditor/LanguageTreeView.pyR        s&   							#							
			N(   t   objectR    (    (    (    s*   plugins/TemplateEditor/LanguageTreeView.pys   <module>    s    