łň {•BFc@s dZdefd„ƒYZdS(s This module documents a class that defines the behavior of the edit dialog from the template editor. @author: Lateef Alabi-Oki @organization: The Scribes Project @copyright: Copyright Š 2007 Lateef Alabi-Oki @license: GNU GPLv2 or Later @contact: mystilleef@gmail.com t EditDialogcBsĄeZdZd„Zd„Zd„Zd„Zed„Zd„Z d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„ZRS(s7 This class defines the behavior of the edit dialog. cCsŰ|i||||ƒ|iƒ|id|iƒ|_|id|iƒ|_|iid|iƒ|_ |i id|i ƒ|_ |i id|iƒ|_|iid|iƒ|_|iid|iƒ|_dS(sÔ Initialize object. @param self: Reference to the EditDialog instance. @type self: A EditDialog object. @param manager: Reference to the TemplateManager instance. @type manager: A TemplateManager object. @param editor: Reference to the text editor. @type editor: An Editor object. @param language: The language of category of a template. @type language: A String object. @param trigger: A template trigger. @type trigger: A String object. tdestroystemplate-selecteds delete-eventtclickedtchangedskey-press-eventN(t_EditDialog__init_attributest_EditDialog__set_propertiestconnectt_EditDialog__destroy_cbt_EditDialog__signal_id_1t!_EditDialog__template_selected_cbt_EditDialog__signal_id_2t_EditDialog__dialogt_EditDialog__delete_event_cbt_EditDialog__signal_id_3t_EditDialog__save_buttont_EditDialog__save_clicked_cbt_EditDialog__signal_id_4t_EditDialog__cancel_buttont_EditDialog__cancel_clicked_cbt_EditDialog__signal_id_5t_EditDialog__name_entryt_EditDialog__changed_cbt_EditDialog__signal_id_6t_EditDialog__key_press_event_cbt_EditDialog__signal_id_7(tselftmanagerteditortlanguagettrigger((s$plugins/TemplateEditor/EditDialog.pyt__init__%s c CsEddkl}l}|tƒdƒd}||dƒ}ddkl} | |ddd ƒ|_} | idƒ|_||_ ||_ ||_ ||_ | id ƒ|_ | id ƒ|_| id ƒ|_| id ƒ|_| idƒ|_ddkl} | |||ƒ|_| idƒ|_| idƒ|_dS(sÚ Initialize data attributes. @param self: Reference to the EditDialog instance. @type self: A EditDialog object. @param manager: Reference to the TemplateManager instance. @type manager: A TemplateManager object. @param editor: Reference to the text editor. @type editor: An Editor object. @param language: The language category of a template. @type language: A String object. @param trigger: A template trigger. @type trigger: A String object. i˙˙˙˙(tjointsplitt__file__isTemplate.glade(tXMLt EditorDialogtdomaintscribestEditorDialogNameLabeltEditorDialogDescriptionLabeltEditorDialogTemplateLabeltEditorDialogNameEntrytEditorDialogDescriptionEntry(tEditortEditorDialogSaveButtontEditorDialogCancelButtonN(tos.pathRR tglobalst gtk.gladeR"t_EditDialog__gladet get_widgetR t_EditDialog__managert_EditDialog__editort_EditDialog__languaget_EditDialog__triggert_EditDialog__name_labelt_EditDialog__description_labelt_EditDialog__buffer_labelRt_EditDialog__description_entryR+t_EditDialog__bufferRR( RRRRRRR tcurrent_foldert glade_fileR"tgladeR+((s$plugins/TemplateEditor/EditDialog.pyt__init_attributesBs(    cCs|iidƒ}|i|iƒddkl}||iiddƒ\}}|ii d|ƒ|ii d|ƒddk l }|ii d |ƒ|ii d d ƒ|ii |i iid ƒƒ|ii|iƒ|ii|iƒ|ii|iƒd S(sw Set default properties. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. tEditorDialogScrolledWindowi˙˙˙˙(t!calculate_resolution_independenceig @s default-widthsdefault-height(tmsg0006ttitles icon-namesgnome-settingstTemplateEditorWindowN(R1R2taddR;t SCRIBES.utilsRAR4twindowR t set_propertyti18nRBtset_transient_forR3R>R7tset_mnemonic_widgetRR8R:R9(Rt scrollwinRAtwidththeightRB((s$plugins/TemplateEditor/EditDialog.pyt__set_propertiesjscCsf|iidtƒ|iƒ\}}}|i|||ƒ|iiƒ|iiƒ|iiƒdS(sl Show dialog. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. t sensitiveN( R3temittFalset_EditDialog__get_template_infot_EditDialog__reset_widgetsR4tresponseR tshow_all(RRt descriptionttemplate((s$plugins/TemplateEditor/EditDialog.pytshow€s   cCs>|iiƒ|iid|ƒ|iiƒ|iiƒdS(sl Hide dialog. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. RPN(R4RUR3RQR thide(RRP((s$plugins/TemplateEditor/EditDialog.pyt__hides    cCsoddkl}ddkl}|ƒ}|i|i}||d}||d}||ƒ|i||fS(sĂ Get template information from database. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @return: Template information. @rtype: A Tuple object. i˙˙˙˙(topen_template_database(tclose_template_databaseii(tMetadataR\R]R5R6(RR\R]tdatabasetkeyRWRX((s$plugins/TemplateEditor/EditDialog.pyt__get_template_infoœs   cCsG|ii|ƒ|ii|ƒ|iiƒi|ƒ|iiƒdS(s` Set default text in widgets. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @param trigger: A template trigger. @type trigger: A String object. @param description: Description of a template. @type description: A String object. @param template: A template. @type template: A String object. N(Rtset_textR:R;t get_buffert grab_focus(RRRWRX((s$plugins/TemplateEditor/EditDialog.pyt__reset_widgetsŻs  c Csâddkl}l}ddkl}l}||iiƒiƒƒo |‚n|i |iiƒiƒ}ddk l }ddk l }|ƒ}|i ƒ} | i|i |iƒ||ƒ|| |ƒo |‚ndS(sÄ Validate template trigger. Whether or not the trigger entered in the name entry field is valid. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. i˙˙˙˙(tnot_tcontains(t EntryErrortSameTriggerError(R\(R]N(toperatorRfRgt ExceptionsRhRiRtget_texttstripR5R^R\R]tkeystremoveR6( RRfRgRhRit database_keyR\R]R_Rn((s$plugins/TemplateEditor/EditDialog.pyt__check_name_entryĹs &   c Csżddkl}ddkl}|dƒ}||i|i=|iiƒiƒ}|iiƒiƒ}|i i ƒ}|i ƒ\}}|i||ƒ} || f||i|<||ƒdS(s} Update the template database. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. i˙˙˙˙(R\(R]twN( R^R\R]R5R6RRlRmR:R;Rct get_bounds( RR\R]R_RRWt txtbuffertstarttendRX((s$plugins/TemplateEditor/EditDialog.pyt__update_template_databaseÜs  cCsÓddkl}l}||i|ƒ||i|ƒ||i|iƒ||i|iƒ||i |i ƒ||i |i ƒ||i |iƒ|iiƒ|i iƒ|iiƒ||ƒd}~dS(sö Handles callback when the "destroy" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @param manager: Reference to the TemplateManager. @type manager: A TemplateManager object. i˙˙˙˙(tdelete_attributestdisconnect_signalN(RFRxRyRR R R RRRRRRRRtNone(RRRxRy((s$plugins/TemplateEditor/EditDialog.pyt __destroy_cbđs     cCs|\|_|_dS(sN Handles callback when the "template-selected" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @param manager: Reference to the TemplateManager instance. @type manager: A TemplateManager object. @param data: Selection information. @type data: A Tuple object. N(R5R6(RRtdata((s$plugins/TemplateEditor/EditDialog.pyt__template_selected_cb s cGs|iƒtS(sž Handles callback when the "key-press-event" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. (t_EditDialog__hidetTrue(Rtargs((s$plugins/TemplateEditor/EditDialog.pyt__delete_event_cbs cGsáy]ddkl}l}|iƒ|itƒ|iid|ii ƒi ƒƒ|i ƒWn}|j o3ddk l }|iii|d|iƒn@|j o3ddk l}|iii|d|iƒnXtS(sę Handles callback when the "clicked" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @return: True to propagate signals to parent widgets. @type: A Boolean Object. i˙˙˙˙(RhRistrigger-selected(tmsg0007t parent_window(tmsg0008(RkRhRit_EditDialog__check_name_entryR~RRR3RQRRlRmt%_EditDialog__update_template_databaseRIR‚R4t error_dialogt show_messageR R„R(RR€RhRiR‚R„((s$plugins/TemplateEditor/EditDialog.pyt__save_clicked_cb$s   " !cGs|iƒtS(sę Handles callback when the "clicked" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @return: True to propagate signals to parent widgets. @type: A Boolean Object. (R~R(RR€((s$plugins/TemplateEditor/EditDialog.pyt__cancel_clicked_cb<s cCsŞ|iiƒ|iiƒiƒo=|iidtƒ|iidtƒ|i idtƒn:|iidt ƒ|iidt ƒ|i idt ƒ|iiƒt S(s9 Handles callback when the "changed" signal is emitted. @param self: Reference to the EditDialog instance. @type self: An EditDialog object. @param entry: The name text entry field. @type entry: A gtk.Entry object. @return: True to propagate signals to parent widgets. @type: A Boolean Object. RP( R4RURRlRmR:RHRR;RRR(Rtentry((s$plugins/TemplateEditor/EditDialog.pyt __changed_cbIs  cCsLddkl}ddkl}||i|iƒotSn|iƒtS(Ni˙˙˙˙(tkeysyms(tne( tgtkRRjRŽtkeyvaltEscapeRRR~R(RtdialogteventRRŽ((s$plugins/TemplateEditor/EditDialog.pyt__key_press_event_cbbs  (t__name__t __module__t__doc__RRRRYRR~RSRTR…R†RR R RRRR(((s$plugins/TemplateEditor/EditDialog.pyR s"  (          N(R—tobjectR(((s$plugins/TemplateEditor/EditDialog.pyss