˯t_c@sd ZddlZddlTddlTddlZddlmZddlm Z m Z m Z m Z m Z y3ddlZejdejdejZWndZnXd e jfd YZde jfd YZdS( tManageriNi(t*(tsaxutils(tGiotGObjecttGtkt GtkSourcetGedittgeditcCs|S(N((ts((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt"stLanguagesPopupcBskeZdZdZdZdZdZdZdZdZ d dZ d Z d Z d ZRS( t LanguagePopupiiicCsStjj|d|t|j_|j|j||jj j ddS(Nt relative_toi(i( RtPopovert__init__tTruetpropst can_focustbuildtinit_languagestviewt get_selectiont select_path(tselftwidgett languages((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR+s    cCstjttt|_tj|_|jjdd|jj|jj tj j tj j |jj tjjtjd|j|_|jj|jjttj}tj}|j|t|j|d|j|jd|jtj}|j|t|j|d|j|jj||jj|j d|jj"|j|j"|jdS(Niitmodeltactivettoggledttext(#Rt ListStoretstrtboolRtScrolledWindowtswtset_size_requesttshowt set_policyt PolicyTypetNEVERt AUTOMATICtset_shadow_typet ShadowTypet ETCHED_INtTreeViewRtset_headers_visibletFalsetTreeViewColumntCellRendererTogglet pack_startt add_attributetCOLUMN_ENABLEDtconnectton_language_toggledtCellRendererTextRt COLUMN_NAMEt append_columntset_row_separator_funct on_separatortNonetadd(Rtcolumntrenderer((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR5s*     cCs^|j||j}|jddkr5|r5tS|rZ|j|j||jntS(Ni(t get_valueR4t get_indicesRtappendt COLUMN_IDR/(RRtpathtpitertrettenabled((s1/usr/lib64/gedit/plugins/externaltools/manager.pytenabled_languagesWs cCs g}|jj|j||S(N(RtforeachRH(RRF((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRbscCs|j||j}|dkS(Nt-(R@R8(RRREt user_datatval((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR;hscCstj}g|jD]}|j|^q}|jdd|jjtdd| g|jjddt g|jjtddd|kg|jjddt gx?|D]7}|jj|j |j |j |kgqWdS(NtkeycSs |jS(N(tget_name(tx((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR oss All languagesRJs Plain Texttplain( RtLanguageManagertget_language_idst get_languagetsortRRBt_R<R/RNtget_id(RRtmanagerROtlangstlang((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRls ( % cCs4|jddkrtS|j||j|dS(Ni(RAR/t set_valueR4(RRRDRERG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt correct_allyscCs|jj|}|jj||j}|jj||j| |dkri|jj|jtn"|jj|jj|jtdS(Nt0( Rtget_iterR@R4RZRIR[R/tget_iter_first(RR?RDRERG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR6s  N(t__name__t __module__t__gtype_name__R8RCR4RRRHRR<R;RR[R6(((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR $s "   cBseZdZdZiejjd1d2fd6ZdZ dZ dZ dZ dZ dZd1d Zd Zd Zd Zd1d ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#e$dZ%dZ&d Z'd!Z(d"Z)d#Z*d$Z+d%Z,d&Z-d'Z.d(Z/d)Z0d*Z1d+Z2d,Z3d1d-Z4d.Z5d/Z6d0Z7RS(3iis tools-updatedcCsKtjj|||_d|_d|_i|_i|_|j dS(Ni(ii( RtObjectRtdatadirR<tdialogt_sizet _languagest _tool_rowsR(RRc((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs     cCs|jS(N(Re(R((s1/usr/lib64/gedit/plugins/externaltools/manager.pytget_final_sizescCsi |jd6|jd6|jd6|jd6|jd6|jd6|jd6|jd6|jd 6|j d 6|j d 6}t j |_ |j jtjj|jd d |j j||j jd|_|d|_|j|j|dj}|jt jj|dj}|jt jj|jt jjx'ddddgD]}|j|qZW|jdS(Nton_add_tool_button_clickedton_remove_tool_button_clickedt#on_tool_manager_dialog_delete_eventt on_tool_manager_dialog_focus_outt&on_tool_manager_dialog_configure_eventton_accelerator_key_presston_accelerator_focus_inton_accelerator_focus_outton_accelerator_backspaceton_applicability_changedton_languages_button_clickedtuistools.uistool-manager-dialogRtscrolled_window1ttoolbar1tinputtoutputt applicabilitys save-files( RiRjRkRlRmRnRoRpRqRrRsRtBuilderRtt add_from_filetosRDtjoinRctconnect_signalst get_objectRdRt_Manager__init_tools_modelt_Manager__init_tools_viewtget_style_contexttset_junction_sidest JunctionSidestBOTTOMtTOPt_Manager__init_comboboxt do_update(Rt callbackstcontexttname((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs6           %   cCsd}|rn|jrL|jj}||jkrk|j|}qkqnd|jkrn|jd}qnn| rd|jkr|jd}n|sdS|jj|jt|jjj |jdS(NRP( R<RSRVRfRt expand_rowtget_pathR/RR(Rtdoctrowtlid((s1/usr/lib64/gedit/plugins/externaltools/manager.pytexpand_from_docs cCsf|jdkr|jn|j|j|jj||jj|j|jjdS(N( RdR<RRtget_active_documenttset_transient_fort get_groupt add_windowtpresent(Rtwindow((s1/usr/lib64/gedit/plugins/externaltools/manager.pytruns  cCsi|js dS|j|jkrR||j|jkre|j|jj|qen|g|j|jR?((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt__init_tools_viewSs cCs||}|jddS(Ni(t set_active(RRtcombo((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt__init_comboboxbs cCs|jj|S(N(RtR(RRM((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt __getitem__gscCst||}|j}|j}xK|dk ro|j||j|kr]|j|tS|j|}q%WtS(N( t get_modelR^R<R@t NAME_COLUMNtset_active_iterRt iter_nextR/(Rt combo_namet option_nameRRRE((s1/usr/lib64/gedit/plugins/externaltools/manager.pytset_active_by_namejs    cCsf|jjj\}}|dk r^|j||j}t|tsTd}n||fSdSdS(N(NN(RRt get_selectedR<R@RRtTool(RRRER((s1/usr/lib64/gedit/plugins/externaltools/manager.pytget_selected_toolus   cCstj|jdjS(Nsutf-8(thashlibtmd5tencodet hexdigest(Rtstring((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt compute_hashscsAjdkrdSjjdkr5jjnfd}|dj_|dj_|dj_|dj_dj}|j \}}|j ||t }j |}|j kr&jjg|jD]}|d^q|_ n jjjdS(Ncs)||}|jj|jjS(N(RR@tget_active_iterR(toRR(R(s1/usr/lib64/gedit/plugins/externaltools/manager.pyt combo_values RwRxRys save-filestcommandss (RR<tfilenametautoset_filenameRwRxRyt save_filest get_buffert get_boundstget_textR/RRtsave_with_scriptt splitlinestsavetupdate_remove_revert(RRtbuftstarttendtscriptthtline((Rs1/usr/lib64/gedit/plugins/externaltools/manager.pytsave_current_tools$-  cCs|djd|dj}|j|jd|jxd D]}||jdqIW|d jtd dS( Nt acceleratortRRwRxRys save-filesitlanguages_labels All Languages(sinputsoutputs applicabilitys save-files(tset_textRtbegin_not_undoable_actiontend_not_undoable_actionRRU(RRtnm((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt clear_fieldss    cCs|j s|jj r1|djtdntj}g}xa|jjD]S}|dkrx|jtdqP|j|}|rP|j|jqPqPW|djdj |dS(NRs All LanguagesRPs Plain Texts, ( RRRRURRQRBRSRNR}(RRWRXRYR((s1/usr/lib64/gedit/plugins/externaltools/manager.pytfill_languages_buttons  c Csa|j|dj}tdj|jjd}|j|j||j|j ||_ t j d|jd\}}tjj}|jd|}|dk r|j||jtn |jtxjd D]b}||j}|j} |j|t|jj|jdd |j| |jqW|jdS( NRRsutf-8RwRxRys save-filesRJRU(sinputsoutputs applicabilitys save-files(tupdate_accelerator_labelRtdefaultR}Rt get_scriptRRRRRRtcontent_type_guessR<RRRQt get_defaulttguess_languaget set_languagetset_highlight_syntaxRR/RR^Rt__getattribute__treplaceR@RR( RRRt contenttypet uncertaintlmanagerRRRRE((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt fill_fieldss* !   !      cCsb|jjrMtj|jj\}}tj||}|dj|n|djddS(NRR(RRRtaccelerator_parsetaccelerator_get_labelR(RRMtmodstlabel((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs  cCs|j\}}|dk o'|j}|dj||dj||dk r|jr|dj|djn|dj|djdS(Nsremove-tool-buttonsrevert-tool-button(RR<tis_localt set_sensitivet is_globalthideR%(RREtnodet removable((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRscCsn|j|j\}}||_|dk rO|j|djtn|j|djtdS(Ns tool-grid( RRRR<RRRRR/(RRER((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs     cCs|s dS|jj||j}t|tr^|jj|}|jj||j}nt|tjrz|j S|rdSdS(NRP( R<RR@RRRRRRRV(RRER((s1/usr/lib64/gedit/plugins/externaltools/manager.pytlanguage_id_from_iters cCs(|jjj\}}|j|S(N(RRRR(RRRE((s1/usr/lib64/gedit/plugins/externaltools/manager.pytselected_language_idscCs|j|jjj|jt|jj|_t d|j_ |jjjj |j|j }|r|g|j_ n|j|j}|jj|jj||jj|jt|j|djt|jjj|jdS(NsNew tools tool-grid(RRRt handler_blockRRRRRRURRBRRRt set_cursorRRt get_columnRRRRthandler_unblock(RtbuttonRYRE((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRis   cCssx@|j|D]1}|jj|jj|j|j|qW|re||jkre|jn|jdS(N( RgRRZR]RRRRR(RRtrefreshR((s1/usr/lib64/gedit/plugins/externaltools/manager.pyt tool_changed4s  c Cs |j\}}|sdS|jr|j}|jj|r |j|||j||djt|j |j |q n{|j j |}|j |}|j j|||jkr|jj|ng|j|D]}|jr|^q|j|<|j|s|j|=|jj|r|j|d|_d|_|j j|r|jj|j j||jj|jtqn|jjn|j|j}|j j|}|j j|s |j j||j|=ndS(Nsrevert-tool-button( RRRRt revert_toolRRRR/RR!RRRRRRgtvalidt delete_toolR<RRt iter_is_validRRRRRt grab_focusRfR]titer_has_child( RRRERRRRRORD((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRj?sB    3      cCs]|dkrY|jj|}|jj||j}||_|j|j|ndS(NR(RR]R@RRRR!(RtcellRDtnew_textRER((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRqs    cCs]|jj|}|jj||j}t|tjrY|j|j|j ndS(N( RR]R@RRRtEntryRRR&(RR?RRDRER((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR{s cCs|j|jdS(N(RR(Rt selectiontuserdata((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs cCs||jkrgSg}xr|j|D]c}|j sA|j rT|j|q'nx3|jD](}||jkr^|j|q^q^q^Wq'W|S(N(RRRB(RRRRFtotherRY((s1/usr/lib64/gedit/plugins/externaltools/manager.pytaccelerator_collisions  c Cs|j|jtj||}|dkrHd|j_|jtS|j||j}|rtj |j tj j tj jtjjtddjtd|f}|j|j|j|jtS||j_|j|j|jtS(NRs'This accelerator is already bound to %ss, cSs|jS(N(R(RO((s1/usr/lib64/gedit/plugins/externaltools/manager.pyR s(RRRtaccelerator_nameR<tshorcutRRR.t MessageDialogRdt DialogFlagstMODALt MessageTypetERRORt ButtonsTypetCLOSERUR}tmapRtdestroyRR/R(RtkeyvaltmodRtcolRd((s1/usr/lib64/gedit/plugins/externaltools/manager.pytset_accelerators*       +    cCs|jtj@}|jtjkrA|j|djtS|jt tj tj dkr|j |j|r|j|djntStj |jr|r|j |j|r|j|djqntStSdS(NRi(tstateRt accelerator_get_default_mod_maskR:tGdkt KEY_EscapeRR&RtrangetKEY_F1tKEY_F12R=tkeyval_to_unicodeR/(Rtentryteventtmask((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRns" "  cCsL|jdkrdS|jjr5|jtdn|jtddS(Ns3Type a new accelerator, or press Backspace to clearsType a new accelerator(RR<RRRU(RRFRG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRos  cCs0|jdk r,|j|j|jndS(N(RR<RR!(RRFRG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRps cCs;|jd|j|jd|j_|djdS(NRR(RRRR<RR&(RRF((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRqs  cCs|jtS(N(RR/(RRdRG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRks cCs|j|jddS(Ns tools-updated(Rtemit(RRdRG((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRls cCs4|jr0|j}|j|jf|_ndS(N(t get_realizedtget_allocationtwidththeightRe(RRdRGtalloc((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRms  cCss|jj|j|j}|dkrX|jdk rKg|j_n|jn|dj|dkdS(Ntalwaystlanguages_button( RR@RRRR<RRR(RRRy((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRrs   c Cs|j||j}|dks1t|t r|dkrLtd}n-t|tjsmtd}n |j}t j |}t } ndt j |j } |j rtj|j \} } tj| | }d| |f}n| }t} |jd|d| dS(Ns All Languagess Plain Texts%s (%s)tmarkupR(R@RR<RRRURRRNRtescapeR/RRRRRRtset_properties( RR>R(RRERKRRRQRtescapedRMR((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRs"    cCsx||jkrtS|j|}|j}xE|j|D]6}|j}|jd|jdkr:tSq:WtS(Ni(RfR/RRgRAR(RRRYtrefRRRD((s1/usr/lib64/gedit/plugins/externaltools/manager.pyttool_in_languages    c Cs|j|j_|j|j\}}d}|ratjj|j|jj |}n|j j j |j xt|j|jD]}|jj|j }|j|}| r|jj s||jjkrqn|jj||j|jj||jj|j|j }|jj|s|jj||j|=qqWtj} x]|jjD]O} |j|j| s|| j| } | sd} n|j|j| q|q|W|jj r|j|jd r|j|jdn| s|j r|j|jdj } |jj| }|jj|}|j j|jj |t|j j j| |j j| |j j |j!tn|j j j"|j dS(NRPi(#RRRRR<RRRRRRRRRtlistRgR]RRRfR'RRQRVRSRR#RRR/RRRRR( RtpopupRERRFRURRRRWRYRRD((s1/usr/lib64/gedit/plugins/externaltools/manager.pytupdate_languages)sH '  #(cCs6t||jj}|j|jd|jdS(Ntclosed(R RRR%R5RY(RRRX((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRsgs N((8R_R`RRRt SignalFlagstRUN_LASTR<t __gsignals__RRhRRRRRRRRRRRRRRRRRRRRRRRRRiR/R!RjRRRR.R=RnRoRpRqRkRlRmRrRRVRYRs(((s1/usr/lib64/gedit/plugins/externaltools/manager.pyRsd  &                  2             >(sManager(t__all__tos.pathR|tlibraryt functionsRtxml.saxRt gi.repositoryRRRRRtgettexttbindtextdomaint textdomainRURR RbR(((s1/usr/lib64/gedit/plugins/externaltools/manager.pyts    (     g