łň ú*Fc@s0dZddklZdefd„ƒYZdS(sý This module documents a class that implements a treeview for the document browser. @author: Lateef Alabi-Oki @organization: The Scribes Project @copyright: Copyright Š 2006 Lateef Alabi-Oki @license: GNU GPLv2 or Later @contact: mystilleef@gmail.com i˙˙˙˙(tTreeViewtBrowserTreeViewcBsƒeZdZd„Zd„Zd„Zd„Zd„Zdeed„Z d„Z d „Z d „Z d „Z d „Zd „ZRS(s; This class creates a treeview for the bookmark browser. cCs‘ti|ƒ|i||ƒ|iƒ|iid|iƒ|_|iid|iƒ|_ |i d|i ƒ|_ |id|i ƒ|_dS(sH Intialize an instance of this class. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @param manager: Reference to the BookmarkManager instance. @type manager: A BookmarkManager object. @param editor: Reference to the text editor. @type editor: An Editor object. tdestroytupdates row-activatedskey-press-eventN(Rt__init__t!_BrowserTreeView__init_attributest _BrowserTreeView__set_propertiest_BrowserTreeView__managertconnectt_BrowserTreeView__destroy_cbt_BrowserTreeView__signal_id_1t_BrowserTreeView__update_cbt_BrowserTreeView__signal_id_2t connect_aftert"_BrowserTreeView__row_activated_cbt_BrowserTreeView__signal_id_3t$_BrowserTreeView__key_press_event_cbt_BrowserTreeView__signal_id_4(tselftmanagerteditor((s#plugins/DocumentBrowser/Treeview.pyR's  cCsń||_||_g|_|iƒ|_|iƒ|_|iƒ|_|iƒ|_ddk l }l }l }|i ||idttƒ|_|i ||idttƒ|_|i ||idttƒ|_d|_|_|_dS(s? Initialize data attributes. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @param manager: Reference to the BookmarkManager instance. @type manager: A BookmarkManager object. @param editor: Reference to the text editor. @type editor: An Editor object. i˙˙˙˙(tmsg0003tmsg0004tmsg0005iiiN(Rt_BrowserTreeView__editort_BrowserTreeView__uri_listt_BrowserTreeView__create_modelt_BrowserTreeView__modelt!_BrowserTreeView__create_renderert_BrowserTreeView__name_renderert_BrowserTreeView__type_renderert_BrowserTreeView__path_rendererti18nRRRt_BrowserTreeView__create_columntFalsetTruet_BrowserTreeView__name_columnt_BrowserTreeView__type_columnt_BrowserTreeView__path_columntNoneR R R(RRRRRR((s#plugins/DocumentBrowser/Treeview.pyt__init_attributes<s   !!!cCs„|id|iƒ|idtƒ|iddƒ|idtƒ|i|iƒ|i|iƒ|i|iƒ|iiƒdS(sŠ Define the treeview's properties. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. tmodels rules-hints search-columnisheaders-clickableN(t set_propertyRR#t append_columnR$R%R&tclicked(R((s#plugins/DocumentBrowser/Treeview.pyt__set_propertiesWs cCs)ddkl}|ttttƒ}|S(s× Create model for the treeview. @param self: Reference to the BrowserTreeView instance. @type self: An BrowserTreeView object. @return: Return a model for the treeview. @rtype: A gtk.ListStore object. i˙˙˙˙(t ListStore(tgtkR.tstr(RR.R)((s#plugins/DocumentBrowser/Treeview.pyt__create_modelhscCsddkl}|ƒ}|S(sđ Create the renderer for the treeview's columns. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @return: A renderer for treeview's columns. @rtype: A gtk.CellRendererText object. i˙˙˙˙(tCellRendererText(R/R2(RR2trenderer((s#plugins/DocumentBrowser/Treeview.pyt__create_rendererzs  ic Cs€ddkl}l}ddkl}|||d|ƒ} | i|ƒ| i|ƒ| i|ƒ| i|ƒ| i|ƒ| S(sÖ Create column for the treeview. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @return: A column for the treeview. @rtype: A gtk.TreeViewColumn object. i˙˙˙˙(tTREE_VIEW_COLUMN_AUTOSIZEtSORT_DESCENDING(tTreeViewColumnttext( R/R5R6R7t set_expandt set_sizingtset_sort_indicatortset_sort_ordertset_sort_column_id( RttitleR3R8texpandt indicatorR5R6R7tcolumn((s#plugins/DocumentBrowser/Treeview.pyt__create_columnˆs      cCsˆddkl}l}||i|iƒ||i|iƒ||i|ƒ|io|iiƒn|i ƒ||ƒ~d}dS(s Handles callback when the "destroy" signal is emitted. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @param manager: Reference to the BookmarkManager instance. @type manager: A BookmarkManager object. i˙˙˙˙(tdisconnect_signaltdelete_attributesN( t SCRIBES.utilsRCRDR RR RRtclearRR'(RRRCRD((s#plugins/DocumentBrowser/Treeview.pyt __destroy_cbœs    cCs‘|iiiƒ}ddkl}||ƒo.ddkl}|iii|dƒt Snddk l }||i |ƒ|i idƒt S(s[ Handles callback when the "update" signal is emitted. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @param manager: Reference to the BookmarkManager instance. @type manager: A BookmarkManager object. @return: True to propagate signals to parent widgets. @type: A Boolean Object. i˙˙˙˙(tnot_(tmsg0006twarning(tidle_adds show-browser(Rtinstance_managertget_uristoperatorRHR RItfeedbacktupdate_status_messageR"tgobjectRKt _BrowserTreeView__populate_modelRtemit(RRturisRHRIRK((s#plugins/DocumentBrowser/Treeview.pyt __update_cb˛s  c CsÁ|iƒ|iiƒddkl}|||iƒodSn||_|iiƒxH|iD]=}|i|ƒ\}}}}|ii||||gƒqbWddkl }||ƒdS(s| Populate the model. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. i˙˙˙˙(teqN(t select_row( tsortRRNRVRRFt_BrowserTreeView__process_uritappendRERW( RRTRVturit file_typetfilenametpathnametfileuriRW((s#plugins/DocumentBrowser/Treeview.pyt__populate_modelËs       c CsŤd}ddkl}||ƒ}|o|iƒ}nd}ddkl}l}ddkl}|||ƒƒ} | i} | i i |dƒ} |} || | | fS( sÚ Split the uri into type, name and pathname. @param self: Reference to the BrowserTreeView instance. @type self: A BrowserTreeView object. @param uri: Reference to a document. @type uri: A String object. ti˙˙˙˙(t get_languages Plain Text(tURItformat_uri_for_display(t home_foldert~(RaRaRaRa( RERbtget_nametgnomevfsRcRdt SCRIBES.infoRet short_nametpathtreplace( RR[tvalueRbtlanguageR\RcRdRet uri_objectR]R^R_((s#plugins/DocumentBrowser/Treeview.pyt __process_uriŕs   cCsX|iiƒ|ii|ƒ}|ii|dƒ}|iii|ƒ|iiƒtS(s“ Handles callback when the "row-activated" signal is emitted. @param treeview: The bookmark browser's treeview. @type treeview: A BookmarkBrowserView object. @param path: A row in a treeview. @type path: A row object. @param column: A column in a treeview. @type column: A gtk.TreeViewColumn object. @return: True to propagate signals to parent widgets. @type: A Boolean Object. i(RtresponseRtget_itert get_valueRLt focus_fileR#(RttreeviewRkRAtiteratorR[((s#plugins/DocumentBrowser/Treeview.pyt__row_activated_cbús   c Csäddkl}l}ddkl}||i|iƒodSn|iƒ}|iƒ\}}||ƒodSn|i |dƒ} |i |ƒddk l } | |ƒ|i iƒ|i ii| gƒ|i iƒdS(Ni˙˙˙˙(tneRH(tkeysymsi(RW(RNRxRHR/RytkeyvaltDeletet get_selectiont get_selectedRstremoveRERWRRqRLt close_files( RRuteventRxRHRyt selectionR)RvR[RW((s#plugins/DocumentBrowser/Treeview.pyt__key_press_event_cbs       (t__name__t __module__t__doc__RRRRRR"R!R R RRRYRR(((s#plugins/DocumentBrowser/Treeview.pyR"s          N(R…R/RR(((s#plugins/DocumentBrowser/Treeview.pyss