
    j                        d dl Z d dlZd dlZd dlZ ej                  dd        ej                  dd        ej                  dd        ej                  dd       d d	lmZmZmZm	Z	m
Z
mZmZ d d
l d dlmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlZ ej4                  ddd       dZdZdZdZdZdZ d e!d      dfd e!d      dfd e!d      dfd e!d       d!fgZ" e!d"       e!d#       e!d$       e!d%       e!d&       e!d'       e!d(       e!d)      d*Z#d+d,d-d.d/d0d1d2d*Z$ e!d3       e!d4      d5f e!d6      d7f e!d8      d9f e!d:      d;f e!d<      d=f e!d>      d?fg e!d@       e!dA      dBf e!dC      dDf e!dE      dFf e!dG      dHf e!dI      dJf e!dK      dLf e!dM      dNfgiZ% e!dO       e!dP       e!dQ       e!dR       e!dS       e!dT       e!dU       e!dV       e!dW      dX	Z& G dY dZe
jN                        Z( G d[ d\ejR                        Z* G d] d^e
jV                        Z+ G d_ d`e
jX                        Z,e-dak(  r# e,       Z.e.j_                  ej`                         yy)b    NGdkz3.0Gspell1GtkXAppz1.0)r   GioGObjectr   r   Pangor   )*)
NoteBuffer)NotesManager)FileHandlerHoverBoxpromptconfirm)gnote_to_internal_formatstickyz/usr/share/localengettext)nameszorg.x.stickyz/usr/share/sticky/sticky.cssz/org/x/stickya\  
<node>
  <interface name='org.x.sticky'>
    <method name='ShowNotes'>
    </method>
    <method name='NewNote'>
      <arg type='s' name='text' direction='in'/>
    </method>
    <method name='NewNoteBlank'>
    </method>
    <method name='ReloadNotesFromFile'>
    </method>
    <signal name='NotesChanged'>
    </signal>
  </interface>
</node>
   smallz
Small TextnormalzNormal Textmediumlargez
Large TextlargerzLarger Textzx-largeRedGreenBlueYellowPurpleTealOrangeMagenta)redgreenblueyellowpurpletealorangemagentaz#ff5561z#67ff67z#3d9bffz#f6f907z#a553ffz#41ffedz#ffa939z#ff7ff7
OperationszMove selection upz<ctrl><shift>UpzMove selection downz<ctrl><shift>DownUndoz<ctrl>zRedoz<ctrl>yToggle Checklistz<ctrl>eToggle Bulletsz<ctrl>l
FormattingBoldz<ctrl>bItalicz<ctrl>iFixed Widthz<ctrl>f	Underlinez<ctrl>uStrikethroughz<ctrl>k	Highlightz<ctrl>gHeaderz<ctrl>hzTop Leftz
Top Centerz	Top RightzCenter LeftCenterzCenter RightzBottom LeftzBottom CenterzBottom Right)	ztop-leftz
top-centerz	top-rightzcenter-leftzcenter-centerzcenter-rightzbottom-leftzbottom-centerzbottom-rightc                   ~    e Zd Z ej                  ej
                  j                  eej                        d        Z	 ej                  ej
                  j                  eej                        d        Z
i f fd	Zd Zd Zd Zd Zd	 Zd
 ZddZd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 xZS )Note)flagsreturn_typeaccumulatorc                      y N selfs    /usr/lib/sticky/sticky.pyupdatezNote.updaten        	    c                      y r@   rA   rB   s    rD   removedzNote.removeds   rF   rG   c           
          | _         d _        d _        d _        d _        |j                  dd       _        |j                  dd       _        |j                  d j                   j                  j                  d             _
        |j                  d j                   j                  j                  d             _        |j                  d	d
      }|j                  dd
       _        |j                  d j                   j                  j                  d             _        t        t          G  d|t$        j&                  j(                   j                   j                  ddd        j                  dk(  r j                   j                  j                  d      d
k(  r j                  }n% j                   j                  j                  d      }t+        t,              }	 ||j/                  |      dz       _         j                   j                  j5                  d j                          j7                         }|j9                   j                          j                   j                  j;                  d      r j=                          t?        j@                  dd       _!         jB                  jE                  d jF                         t>        jH                  jK                  dt>        jL                  jN                        }t?        jP                  |t>        jR                  jT                  dt>        jV                  jX                        }	|	jE                  d jF                         |	j[                  t]        d              jB                  j_                  |	ddd       ta                _1         jB                  j_                   jb                  ddd       t?        j@                          _2         jb                  jg                   jd                         t?        jh                  |dd	       _5         jd                  j_                   jj                  ddd       tm        jn                   jd                         _8        t>        jH                  jK                  d t>        jL                  jN                        }
t?        jr                  |
t>        jR                  jT                  dt>        jV                  jX                         _:         jt                  jE                  d! jv                          jt                  jE                  d jF                          jt                  j[                  t]        d"              jd                  j_                   jt                  ddd        jb                  jy                   jt                         t>        jH                  jK                  d#t>        jL                  jN                        }t?        jr                  |t>        jR                  jT                  dt>        jV                  jX                        }|jE                  d! jz                         |jE                  d jF                         |j[                  t]        d$              jB                  j}                  |ddd       t>        jH                  jK                  d%t>        jL                  jN                        }t?        jr                  |t>        jR                  jT                  dt>        jV                  jX                        }|jE                  d! j                   j~                          |jE                  d jF                         |j[                  t]        d&              jB                  j}                  |ddd       t>        jH                  jK                  d't>        jL                  jN                        }t?        jP                  |t>        jR                  jT                  dt>        jV                  jX                        }|jE                  d jF                         |j[                  t]        d(              jB                  j}                  |ddd)        j                   jB                         t                _B        t?        j                  t>        j                  j                  d j                  *       _F         j                  j                   j                         t        j                  j                   j                        }|j                           j                   j                  j                  d+|d,t        j                  j                          j                  j                  d-        j                  j                  d-        j                  j                  d-        j                  j                  d-        j                  jE                  d. fd/        j                  jE                  d0 j                         tm        jn                   j                         _T        t?        j                         } jg                  |       |jg                   j                          j                  j                   j                          j                  jE                  d1 j                  d       _X         j                   j                  jE                  d2 j                          j                           j                  |	|        jE                  d3 j                          jE                  d4 j                          jE                  d5 j                          j                   j                   j                          j                          y # t0        t2        f$ r |d    _        Y 	w xY w)6NFr   xyheightdefault-heightwidthdefault-widthtitle textcolordefault-colorTzsticky-note)skip_taskbar_hinttransient_for	type_hintdefault_heightdefault_width	resizable	deletablenamecyclez
last-colorr   desktop-window-state   z	title-bar)height_requestr]   button-press-eventzsticky-colorzwindow-button)imagereliefr]   valignz
Note Color   )label
margin_topr]   )widgetzsticky-editclickedRenamezsticky-deleteDelete Notez
sticky-addNew Notezsticky-textFormat   )	wrap_modepopulate_allbufferinline-spell-checkzinline-spell-checking
   zpopulate-popupc                 &    j                  |      S r@   )add_context_menu_items)wprC   s     rD   <lambda>zNote.__init__.<locals>.<lambda>   s    9T9TUV9W rG   key-press-eventzcontent-changedzchanged::fontzconfigure-eventshowzwindow-state-event)`appshowing	is_pinnedchanged_timer_idinvalid_cachegetrK   rL   settingsget_uintrM   rO   cached_text
get_stringrT   superr;   __init__r   WindowTypeHintUTILITYlistCOLORSindex
ValueError
IndexError
set_stringget_style_context	add_classget_booleanstickr   Box	title_barconnecton_title_clickImagenew_from_icon_nameIconSizeBUTTON
MenuButtonReliefStyleNONEAlignCENTERset_tooltip_text_
pack_startr   title_hover	title_boxaddLabelrQ   r   StyleManagertitle_style_managerButtonedit_title_button	set_titleset_child_widgetremovepack_endnew_noteset_titlebarr   rr   TextViewWrapMode	WORD_CHARviewset_viewr   get_from_gtk_text_viewbasic_setupbindr   SettingsBindFlagsGETset_left_marginset_right_marginset_top_marginset_bottom_marginon_key_pressview_style_managerScrolledWindowset_from_internal_markupqueue_update
changed_idset_fontcreate_format_menuon_size_position_changedon_showupdate_window_statemoveshow_all)rC   r|   parentinforQ   
last_color
color_keyscontext
color_iconcolor_buttonedit_title_icon
close_iconclose_buttonadd_icon
add_button	text_icontext_buttonspell_checkerscroll	__class__s   `                  rD   r   zNote.__init__x   s    !"#q!#q!hhx):):)C)CDT)UVXXgtxx'8'8'A'A/'RS
"%88FB/XXgtxx'8'8'C'CO'TU
dD"" ((00;;** 	# 		
 :: xx  ++L9R?!ZZ
!XX..99,G
fJ+'
(8(8(Dq(HI
 HH((tzzB((*$**%88(()?@JJL E3T5H5HIYY11.#,,BUBUV
~~Js?S?SZirur{r{  sC  sC  D143F3FG%%ao6!!,ua@ $:!!$"2"2D$BT^^,YYUqwG
!!$**eUA>#'#4#4DNN#K ))66}cllFYFYZ!$/#//J^J^et  ~A  ~G  ~G  ~N  ~N  "O&&y$..A&&';T=P=PQ//(<!!$"8"8%J))$*@*@AYY11/3<<CVCVW
zz
3??;O;OVenqnwnwn~n~Y4143F3FG%%a&67eUA>99//cll>Q>QRZZhs7K7KRajmjsjsjzjz{
9dhh&7&7>/1D1DE##AjM2
E5!<II00@S@ST	nn9S__=Q=QXgpspypy  qA  qA  B0$2E2EF$$Qx[1UE2>$..) !l LL3<<+A+APT]a]h]hi	TYY'>>tyyI!!#3]D[]`]r]r]v]vw		!!"%		""2&		  $		##B'		*,WX		+T->->?"&"3"3499"E##%

499,,T-=-=>++--.?ARARTXY!!/4==Ak:&(E(EFVT\\*)4+C+CD		$&&$&&!A 
+ +']
+s   +o o:9o:c                 8    | j                   j                          y r@   )rr   testrC   argss     rD   r   z	Note.test   s    rG   c                 J   | j                   rd| _         y | j                         \  }}| j                         \  }}| j                  |k(  r.| j                  |k(  r| j
                  |k(  r| j                  |k(  ry || _        || _        || _        || _        | j                          y NF)r}   get_positionget_sizerK   rL   rM   rO   r   )rC   r   new_xnew_y	new_width
new_heights         rD   r   zNote.on_size_position_changed  s    << DL**,"&--/J66U?tvv4;;*3LQUQ[Q[_hQh 
rG   c                     d| _         y NT)r}   r   s     rD   r   zNote.on_show  s	    rG   c                    |j                         t        j                  j                  z  rv|j                         t        j                  j                  z  r|j                         d   t        j                  k(  r+| j                  j                  d       t        j                  S |j                         d   t        j                  k(  r+| j                  j                  d       t        j                  S |j                         d   t        j                  k(  r*| j                  j                          t        j                  S |j                         d   t        j                  k(  r*| j                  j                          t        j                  S |j                         d   t        j                  k(  r*| j                  j!                          t        j                  S |j                         d   t        j"                  k(  r*| j                  j%                          t        j                  S |j                         d   t        j&                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j*                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j,                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j.                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j0                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j2                  k(  r+| j                  j)                  d	       t        j                  S |j                         d   t        j4                  k(  r+| j                  j)                  d
       t        j                  S |j                         d   t        j6                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j8                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j:                  k(  r+| j                  j)                  d       t        j                  S |j                         d   t        j<                  k(  r+| j                  j)                  d       t        j                  S t        jH                  S |j>                  t        j@                  t        jB                  t        jD                  fv r| j                  jG                         S t        jH                  S )Nr   TFbolditalic	monospace	underlineheaderstrikethrough	highlightr   r   r   r   )%	get_stater   ModifierTypeCONTROL_MASK
SHIFT_MASK
get_keyvalKEY_Uprr   shift
EVENT_STOPKEY_DownKEY_zundoKEY_yredoKEY_etoggle_checklistKEY_ltoggle_bulletsKEY_btag_selectionKEY_iKEY_fKEY_uKEY_hKEY_kKEY_gKEY_2KEY_3KEY_4KEY_5keyval
KEY_ReturnKEY_ISO_EnterKEY_KP_Enter	on_returnEVENT_PROPAGATE)rC   vevents      rD   r   zNote.on_key_press  s   ??s//<<< 3#3#3#>#>>##%a(CJJ6KK%%d+>>)%%'*cll:KK%%e,>>)!!$		1  "~~%!!#A&#))3  "~~%!!#A&#))3,,.~~%!!#A&#))3**,~~%!!#A&#))3))&1~~%!!#A&#))3))(3~~%!!#A&#))3))+6~~%!!#A&#))3))+6~~%!!#A&#))3))(3~~%!!#A&#))3))/:~~%!!#A&#))3))+6~~%!!#A&#))3))'2~~%!!#A&#))3))(3~~%!!#A&#))3))'2~~%!!#A&#))3))(3~~%
 """ \\cnnc.?.?AQAQRR;;((**"""rG   c                 \    |j                   t        j                  j                  z  | _        y r@   )new_window_stater   WindowStateSTICKYis_stuck)rC   rw   r  s      rD   r   zNote.update_window_statea  s    ..1G1GGrG   c                     |j                   dk(  r`t        j                         }| j                  |d       |j	                  d d d d |j                   |j
                         t        j                  S t        j                  S )N   T)	buttonr   Menurv   popuptimer   r   r  )rC   rw   r  menus       rD   r   zNote.on_title_clickf  s]    <<188:D''d3JJtT4u||UZZH>>!"""rG   c                     |dk(  rt        j                         }| j                          | j                  |       | j	                  | j
                  | j                         y Nr   )r   get_current_event_timer{   present_with_timer   rK   rL   rC   r#  s     rD   restorezNote.restorep  sD    19--/D		t$		$&&$&&!rG   c                     || _         | j                  rt        j                  | j                         t        j	                  t
        | j                        | _        y r@   )r   r   GLibsource_removetimeout_add_secondsUPDATE_DELAYtrigger_update)rC   binvalidate_caches      rD   r   zNote.queue_updatex  sB    -  t445 $ 8 8tGZGZ [rG   c                 4    d| _         | j                  d       y )Nr   rE   )r   emitrB   s    rD   r0  zNote.trigger_update  s     !		(rG   c                 L   | j                   r&| j                  j                         | _        d| _         | j	                         \  }}| j
                  | j                  | j                  | j                  | j                  | j                  j                         | j                  d}|S )NF)rK   rL   rM   rO   rT   rQ   rS   )r   rr   get_internal_markupr   r   rK   rL   rM   rO   rT   rQ   get_text)rC   rO   rM   r   s       rD   get_infozNote.get_info  s    #{{>>@D!&D--/kkZZZZZZ((*$$
 rG   c                     |sT|j                  t        j                  d             t        j                  t	        d      d j
                  j                         _         j                  j                  d j
                  j                         |j                   j                         t        j                  t	        d      d j
                  j                         _         j                  j                  d j
                  j                         |j                   j                         |j                  t        j                  d              j                  j                         dk(  rt	        d      n
t	        d	      }t        j                  |d
      }|j                  d j                         |j                  |       t        j                  t	        d      d
      }|j                  d j                          |j                  |       t        j                  t	        d      d
      }|j                  d j"                         |j                  |       |r|j                  t        j                  d              j$                  rt	        d      } fd}nt	        d      } fd}t        j                  |d
      }|j                  d|       |j                  |        fd}t        j&                   j(                  t	        d      d      }	|	j                  d|       |j                  |	       y y )NTvisibler   )rg   r;  	sensitiveactivater   rR   z	Set Titlez
Edit Titlerg   r;  zDuplicate Noterl   zOnly on This Workspacec                  &    j                          y r@   )unstickr   rC   s    rD   on_activatez0Note.add_context_menu_items.<locals>.on_activate  s    LLNrG   zAlways on Visible Workspacec                  &    j                          y r@   )r   rA  s    rD   rB  z0Note.add_context_menu_items.<locals>.on_activate  s    JJLrG   c                  b    j                  j                          j                   _        y r@   )set_keep_abover~   rA  s    rD   rB  z0Note.add_context_menu_items.<locals>.on_activate  s&    ##$67%)^^!3rG   zAlways on Top)activerg   r;  )appendr   SeparatorMenuItemMenuItemr   rr   can_undo	undo_itemr   r   can_redo	redo_itemr   rQ   r7  r   	duplicater   r  CheckMenuItemr~   )
rC   r"  is_titlerg   
edit_titleduplicate_itemremove_itemrB  stick_menu_itempin_menu_items
   `         rD   rv   zNote.add_context_menu_items  sO   LL..t<= \\&	4SWS^S^SgSghDNNN"":t{{/?/?@LL( \\&	4SWS^S^SgSghDNNN"":t{{/?/?@LL(LL..t<="&**"5"5"72"=+1\?\\t<
:t~~6Z A.>,?Nz4>>:^$ll=)94HJ4[!LL..t<=}}23# 78! "llEO##J<LL)4  --T^^1_K]gklM!!*k:LL'- rG   c                    t        j                         }t        t        j	                         d       D ]x  \  }}t
        |   }t        j                  |d      }|j                         j                  d|d|       |j                  d| j                  |       |j                  |       z |j                  |       t        j                         }t        j                  t        d      d      }|j                         j                  d	t        d      z         |j                  d| j                  d
       |j                  |       t        j                  t        d      d      }	|	j                         j                  dt        d      z         |	j                  d| j                  d       |j                  |	       t        j                  t        d      d      }
|
j                         j                  dt        d      z         |
j                  d| j                  d       |j                  |
       t        j                  t        d      d      }|j                         j                  dt        d      z         |j                  d| j                  d       |j                  |       t        j                  t        d      d      }|j                         j                  dt        d      z         |j                  d| j                  d       |j                  |       t        j                  t        d      d      }|j                         j                  dt        d      z         |j                  d| j                  d       |j                  |       t        j                  t        d      d      }|j                         j                  dt        d      z         |j                  d| j                  d       |j                  |       |j                  t        j                  d             t         D ]q  \  }}}t        j                  |d      }|j                         j                  d|d|d        |j                  d| j                  |       |j                  |       s |j                  t        j                  d             t        j                  d!t        d"      z  d      | _        | j"                  j                  d| j$                  j&                         |j                  | j"                         t        j                  d#t        d$      z  d      | _        | j(                  j                  d| j$                  j*                         |j                  | j(                         |j                  |       y )%Nc                     | d   S )Nr   rA   )items    rD   ry   z)Note.create_format_menu.<locals>.<lambda>  s
    a rG   )keyTr>  z<span foreground='u   '>▦</span>  r=  r2   z	<b>%s</b>r   r3   z	<i>%s</i>r   r4   z<tt>%s</tt>r   r5   z	<u>%s</u>r   r6   z	<s>%s</s>r   r7   z6<span background='yellow' foreground='black'>%s</span>r   r8   z<span size='large'>%s</span>r   r:  z<span size='z'>z</span>u   ▢ %sr/   u   ● %sr0   )r   r!  sortedr   itemsCOLOR_CODESrI  	get_child
set_markupr   	set_colorrG  	set_popupr   apply_formatrH  FONT_SCALESchecklist_itemrr   r  bullet_itemr  )rC   r   r   r$  rT   
color_name
color_code	menu_item	bold_itemitalic_itemmonospace_itemunderline_itemstrikethrough_itemhighlight_itemheader_itemscale_id
scale_namescale_valuefont_scale_items                      rD   r   zNote.create_format_menu  s_   xxz!'<P!Q 	#E:$U+J:tDI!,,Zdfp-qrj$..%@KK	"	# 	t$xxzLLqy$?	((qy)@A*d&7&7@Ill8dC**;8+DEJ(9(98DK Am,<dK  "--ma>N.NOz4+<+<kJN#AkNDI  "--kAkN.JKz4+<+<kJN# \\/0BDQ$$&11+/@R2RS"":t/@/@/R&'AkNDI  "--.fijkviw.wxz4+<+<kJN#ll8dC**+IAhK+WXJ(9(98DK C))$783> 	)/Xz;!llTJO%%'22R]_i3jk##J0A0A8LKK(		) 	C))$78!llqAS?T1T^bc##J0L0LMD''(<<kA>N<O.OY]^  T[[-G-GHD$$%d#rG   c                     || j                   k(  ry | j                         j                  | j                          | j                         j                  |       || _         | j	                  d       y )NrE   )rT   r   remove_classr   r4  )rC   r$  rT   s      rD   r_  zNote.set_color  sV    DJJ --djj9 **51
		(rG   c                     | j                   j                  | j                  j                  j	                  d             | j
                  j                  | j                  j                  j	                  d             y )Nfont)r   set_from_pango_font_stringr|   r   r   r   r   s     rD   r   zNote.set_font  sV      ;;DHH<M<M<X<XY_<`a::488;L;L;W;WX^;_`rG   c                 :    | j                   j                  |       y r@   )rr   r  )rC   mformat_types      rD   ra  zNote.apply_format  s    !!+.rG   c                 j   | j                   j                  j                  d      sl| j                  j	                         s| j
                  j                         dk(  s5t        t        d      t        d      | | j                   j                  d      r"| j                  d       | j                          y y )Nzdisable-delete-confirmr   rl   z*Are you sure you want to remove this note?rI   )r|   r   r   rQ   r7  rr   get_char_countr   r   r4  destroyr   s     rD   r   zNote.remove!  s    HH))*BC$$&4;;+E+E+G1+LAm$a(T&U$((++-EGIIi LLNGrG   c                 :    | j                   j                  |        y r@   )r|   duplicate_noter   s     rD   rN  zNote.duplicate*  s    %rG   c                    | j                   j                         | _        | j                  j	                  | j                          t        j                  | j                  dd      | _         | j                  j                  | j                   ddd       | j                   j                  d| j                        | j                   _
        | j                   j                  d| j                        | j                   _        | j                  j                  | j                   d       | j                  j                          | j                   j                          y )NTrQ   )rS   r;  r]   Fr   rz   zfocus-out-event)rQ   r7  
title_textr   r   r   Entryr   r   
save_titlekey_idfocus_idreorder_childr   disable
grab_focusr   s     rD   r   zNote.set_title-  s    **--/djj)YYDOOTP
!!$**eUA> JJ../@$//R

"jj001BDOOT

$$TZZ3  "

rG   c                    d}|j                   t        j                  j                  k(  rd}nk|j                  t        j
                  t        j                  t        j                  fv rd}n-|j                  t        j                  k7  rt        j                  S | j                  j                  | j                  j                         | j                  j                  | j                  j                         |r| j                  j                         | _        | j                   j#                          | j$                  j'                  | j                         t)        j*                  | j                  dd      | _
        | j$                  j-                  | j                  ddd       | j$                  j/                  | j                  d       | j0                  j3                          |r| j5                  d       t        j6                  S )NFTrQ   )rg   r;  r]   r   rE   )typer   	EventTypeFOCUS_CHANGEr  r  r  r  
KEY_Escaper  rQ   
disconnectr  r  r7  r  r   r  r   r   r   r   r   r  r   enabler4  r   )rC   rw   r  saves       rD   r  zNote.save_title<  sR   ::333D||0A0A3CSCSTT/***

djj//0

djj112"jj113DO		djj)YYT__dQ
!!$**eUA>$$TZZ3!IIh~~rG   )r   r   )F) __name__
__module____qualname__r	   SignalSignalFlagsRUN_LASTboolsignal_accumulator_true_handledrE   rI   r   r   r   r   r   r   r   r*  r   r0  r8  rv   r   r_  r   ra  r   rN  r   r  __classcell__r   s   @rD   r;   r;   m   s    W^^'--66D ' G GII W^^'--66D ' G GII *, DL"J#XH
#"\
$1(fD$La/& rG   r;   c                        e Zd Z fdZ xZS )SettingsWindowc           
      
   t         t        |   dt        d             t	        j
                  t        j                  j                        }|j                  t        t        d      t        d      ddd       |j                  t        t        d      t        d	      ddd       |j                  t        t        d
      t        d      ddd       |j                  t        t        d      t        dt        dz         ddd       | j                  |dt        d             t	        j
                  t        j                  j                        }|j                  t        t        d      t        dddd      ddd       |j                  t        t        d      t        dddd      ddd       t        j                         D cg c]	  \  }}||f }}}|j                  t        t        d      t        d|t               ddd       	 t"        j                         D cg c]	  \  }}||f }}}|j%                  d       |j%                  dt        d      f       |j                  t        t        d       t        d!|t         d"#      ddd       |j                  t)        t        d$      t        d%t        j*                  j,                  &      ddd       |j                  t        t        d'      t        d(      ddd       | j                  |d)t        d*             t	        j
                  t        j                  j                        }|j                  t        t        d+      t        d,      ddd       |j                  t        t        d-      t        d.t        d/      0      ddd       t        d1      }|j                  t        t        d2      t        d3|4      ddd       | j                  |d5t        d6             t	        j
                  t        j                  j                        }|j                  t        t        d7      t        d8      ddd       |j                  t        t        d9      t        d:t        d;z         ddd       | j                  |d8t        d<             | j/                          y c c}}w c c}}w # t&        $ r}t"        j                         D cg c]	  \  }}||f nc c}}w }}}|j%                  dt        d      f       |j                  t        t        d       t        d!|t               ddd       Y d }~d }~ww xY w)=NFPreferences)rV   rQ   )orientationzShow notes on all desktopsr_   r   zShow in taskbarshow-in-taskbarz	Tray iconshow-in-trayz"Show the main window automaticallyshow-managerz/show-in-tray)dep_keygeneralGeneralzDefault heightrN   2   i  rt   )minimaxistepzDefault widthrP   zDefault positiondefault-position)optionsvaltype)seprR   r^   zCycle ColorszDefault colorrU   r  )r  r  	separatorFontrv  )levelzShow spelling mistakesrs   notesNoteszAutomatic backupszautomatic-backupszTime between backupszbackup-intervalhours)unitsz=Set this to zero if you wish to keep all backups indefinitelyzNumber to keepzold-backups-max)tooltipbackupBackupszStart automatically	autostartzShow notes on the screenautostart-notes-visiblez
/autostartzAutomatic start)r   r  r   r   r   r   OrientationVERTICALr   GSettingsSwitchSCHEMAadd_pageGSettingsSpinButtonSTART_POSITIONSr[  GSettingsComboBoxstrr   rG  	ExceptionGSettingsFontButtonFontChooserLevelSIZEr   )
rC   r|   pagerK   rL   start_posititionscolorseobm_tooltipr   s
            rD   r   zSettingsWindow.__init__\  s   nd,uAmL\,] ww3??#;#;<*F(GQghjoqvxyz*;(<fFWXZ_afhij+OQVX]_`a*N(OQWYgqw  yH  rH  I  KP  RW  YZ  	[dIq|4 ww3??#;#;<+A.>,?IY`bimtvwy~  AF  HI  	J+Ao,>^`gkrtuw|  D  FG  	H0?0E0E0GH1aVHH)!,>*?I[ev  AD  E  GL  NS  UV  	W
	J)/8Aq!f8F8MM+&MM7An$567OO-a.@&/cisv  CH  I  KP  RW  YZ  [ 	+AfIvvSMaMaMfMfginpuwxy*B(CVMabdikprstdGQwZ0 ww3??#;#;<*=(>H[\^cejlmn+A.D,EvO`hijqhrsuz  }B  DE  	FWX+A.>,?IZdoprwy~  AB  	CdHa	l3 ww3??#;#;<*?(@&+VX]_dfgh*D(EvOhrx  zF  sF  G  IN  PU  WX  	YdK+<)=>G I 9
  	J)/8Aq!f88F8MM7An$567OO-a.@&/cisvwy~  AF  HI  J  J		Js>   SS $S2A$S S 	U$U2T AUU$r  r  r  r   r  r  s   @rD   r  r  [  s    2 2rG   r  c                        e Zd Z fdZ xZS )ShortcutsWindowc                    t         t        |           t        j                  d      }t
        j                         D ]c  \  }}t        j                  |d      }|j                  |       |D ]1  }t        j                  |d   |d   d      }|j                  |       3 e t        j                  t        d      d      }|j                  |       t        t        t                    D ];  }t        j                  t        |   d   d	|d
z   z  d      }|j                  |       = | j                  |       | j                          y )NTr:  F)rQ   r;  r   r   )rQ   acceleratorr;  z	Text Sizez<ctrl>%d   )r   r  r   r   ShortcutsSection	SHORTCUTSr[  ShortcutsGroupr   ShortcutsShortcutr   rangelenrb  r   )rC   sectiongroupr[  shortcutshortcut_itemir   s          rD   r   zShortcutsWindow.__init__  s   ot-/&&t4%OO- 	)LE5&&UEBEKK! ) # 5 5HQKU]^_U`jn o		-()		) "";GEs;'( 	%A11Aq8IWaefijejWkuyzMIIm$	% 	rG   r  r  s   @rD   r  r    s     rG   r  c                   &    e Zd Z f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d Zd-dZd.dZd Zi fdZd Zd Zd Zd Zd Zd Zd Zd Z d-dZ!d d!d"Z"d# Z#d$ Z$d% Z%d& Z&d' Z'd( Z(d) Z)d* Z*d+ Z+d, Z, xZ-S )/Applicationc                    t        t        | 
  |t        t        j
                  j                  d d | _        d| _        g | _	        d | _
        d | _        d | _        d| _        d| _        d| _        i | _        | j#                  dt%        d      t&        j(                  j*                  t&        j,                  j*                  dd        | j#                  dt%        d      t&        j(                  j*                  t&        j,                  j*                  d	d        | j#                  d
t%        d      t&        j(                  j*                  t&        j,                  j*                  dd        y )N)application_idr<   Fr   r  azAutostart modenewnzCreate a new notetoggletzToggle note visibility)r   r  r   APPLICATION_IDr   ApplicationFlagsHANDLES_COMMAND_LINEstatus_iconhas_activatedr  settings_windowkeyboard_shortcutsmanagernotes_hiddenautostart_modedbus_register_idgroup_buttonsadd_main_optionordr,  OptionFlagsr   	OptionArg)rC   r   r   s     rD   r   zApplication.__init__  s(   k4)4VYVjVjVV  	A"
#"& !# !H!!NN	 	H!!NN	 	H!!NN$	rG   c                    |j                         }|j                         j                         }d|v rGt        j                  t
              }|j                  d      st        j                          nd| _	        | j                  s| j                          d|v r| j                  d        d|v r@| j                  r$| j                  t        j                                 y| j#                          y)Nr  	schema_idTr  r  r   )get_options_dictendunpackr   Settingsr  r   sysexitr  r  r=  r   r  activate_notesr   r'  
hide_notes)rC   command_liner  r   s       rD   do_command_linezApplication.do_command_line  s    //1++-&&('!||f5H''4
&*#!!MMOGMM$w  ##C$>$>$@A  !rG   c                    | j                   r2| j                  D ]  }|j                           | j                          y t        j
                  j                  |        t        j                  t              | _
        t	        j                  t        d      ddddd      | _        | j                  j                          t        | j                  | j                        | _        | j                  j#                  d      r| j%                          | j                  j'                  d      d	k(  r| j                  j)                  dd
       | j                   j+                  d| j,                         | j                   j+                  d| j.                        | _        | j                   j+                  d| j2                         | j                   j+                  d| j4                         | j                  j#                  d      r| j7                          | j                  j+                  d| j8                         | j                  j+                  d| j:                         | j                  j+                  d| j<                        | _        | j;                          | j                  j'                  d      | _         | j                   jC                         }| j@                  |vrdtE        |      dkD  r1|d   | _         | j                  j)                  d| j@                         n%| j                   jG                  | j@                         t	        jH                         }|jK                  tL               t        jN                  jQ                  tR        jT                  jW                         |d       | jY                          | j[                          | j\                  r3d| _.        | j                  j#                  d      s<| j_                          n+| j                  j#                  d      r| j                          | j                  j#                  d      s| j                          d| _         y )Nr  r  r   Fzdummy-window)rQ   rY   rZ   	decoratedr\   r]   	first-runrU   randomr^   zlists-changedzgroup-changedzgroup-name-changedsavedr  zchanged::show-in-trayzchanged::show-in-taskbarchanged::active-groupactive-groupr   iX  r  r  T)0r  r  r*  open_managerr   r  do_activater   r  r  r   Windowr   dummy_windowr{   r   file_handlerr   	first_runr   r   r   on_lists_changedon_group_changedgroup_update_idon_group_name_changedon_savecreate_status_iconupdate_tray_iconupdate_dummy_windowon_active_group_changedactive_group_changed_id
note_groupget_note_group_namesr  	new_groupCssProviderload_from_pathSTYLE_SHEET_PATHStyleContextadd_provider_for_screenr   Screenget_default
load_notesholdr  r   )rC   notegroup_namesproviders       rD   r  zApplication.do_activate  s/   

 ##D)v6JJQwZYZfkw|  DR  S 't7H7HI==$$[1NN ==##O4@MM$$_g>!!/43H3HI#0088$J_J_`!!"68R8RS!!'4<<8==$$^4##%5t7L7LM8$:R:RS'+}}'<'<=TVZVrVr's$  "--22>B''<<>??+-;!#"-a.((I!!++DOO<??$ 0100#**2H2H2JHVYZ		"'D==,,-FG!}}((8!!#}}((8!rG   c                     t         j                  j                  t              }|j	                  ||j
                  d   | j                  d d       | _        t         j                  j                  | ||      S r&  )
r   DBusNodeInfonew_for_xmlDBUS_INTERFACE_XMLregister_object
interfacesdbus_method_callbackr  r  do_dbus_register)rC   
connectionobject_pathdbus_interface_infos       rD   r0  zApplication.do_dbus_register.  sh    !..::;MN * : :,77:D<U<UW[]a!c //j+NNrG   c                     | j                   dkD  r"|j                  | j                          d| _         t        j                  j	                  | ||       y r&  )r  unregister_objectr   r  do_dbus_unregister)rC   r1  r2  s      rD   r6  zApplication.do_dbus_unregister5  sD      1$(()>)>?$%D! 	**4[IrG   c	                 6   |dk(  r| j                  d       y |dk(  rQ| j                         \  }	}
}| j                  |	|
|      \  }	}
| j                  |j	                         d   |	|
d       y |dk(  r| j                          y |dk(  r| j                          y y )N	ShowNotesr   NewNote)rS   rK   rL   NewNoteBlankReloadNotesFromFile)r  get_directionfind_note_locationadd_noter  r   reload_notes_from_file)rC   r1  senderpath
iface_namemethod_nameparams
invocation	user_datarK   rL   	directions               rD   r/  z Application.dbus_method_callback=  s    +%"I%"002OAq)**1a;DAqMM6==?1#5AAFGN*MMO11'') 2rG   c                 T   t         j                  j                  t        j	                         d      }t         j                  j                  |      rit        j                  |      }g }|D ]e  }t         j                  j                  ||      }t         j                  j                  |      sC|j                  d      sU|j                  |       g t        |      dkD  rt        t        d      t        d      | j                        }|rd}|D ]  }t        |      \  }}	}
|
rd|	d	<   ||	d
<   ||	d<   || j                  j!                         vr| j                  j#                  |       | j                  j%                  |      }|j                  |	       | j                  j'                  ||       |dz  } t        | j                  j!                               dk(  r+| j                  j'                  dddddgt        d             | j(                  j+                  dd       y )Ngnotez.noter   r  zaWould you like to import your notes from Gnote? This will not change your Gnote notes in any way.)window(   r'   rT   rK   rL   ro   rR   )rS   rT   rK   rL   zGroup 1r  F)osrA  joinr,  get_user_data_direxistslistdirisfileendswithrG  r  r   r   r  r   r  r  r  get_note_listupdate_note_listr   set_boolean)rC   	gnote_dircontentsimport_notesfilerA  respcoordinates
group_namer   is_template
group_lists               rD   r  zApplication.first_runM  s   GGLL!7!7!97C	77>>)$zz),HL  .ww||It477>>$'DMM',B ''-.
 < 1$qz   "E   F&*&7&79 "$K , .:RSW:X7T;*,4DM(3DI(3DI)1B1B1W1W1YY $ 1 1 ; ;J G)-):):)H)H)TJ&--d3 -->>z:V'2-K." t  5578A=..HSU\^0_/`bcdmbno!!+u5rG   c           	         t        j                         | _        | j                  j                  d       | j                  j	                  d       | j                  j                  t        d      dt        d      dt        d      d       | j                  j                  d	       | j                  j                  d
| j                         | j                          y )Nr   zsticky-symbolicr  z
<i>zLeft click to toggle notesz</i>
<i>z"Middle click to toggle the managerz</i>Trb   )r   
StatusIconr  set_nameset_icon_namer   r   set_visibler   on_tray_button_pressedrebuild_tray_context_menurB   s    rD   r  zApplication.create_status_iconv  s    ??,!!(+&&'89))'
HIJfHgHIJnHo+q 	r 	$$T*  !5t7R7RS&&(rG   c                 `    |dk(  r| j                  |       y |dk(  r| j                  |       y y )Nr   r  )r  toggle_manager)rC   iconrK   rL   r   r#  panel_positions          rD   rd  z"Application.on_tray_button_pressed  s1    Q;%q[% rG   c                    | j                   y i | _        t        j                         | _        t        j
                  t        d            }|j                  d| j                         | j                  j                  |       t        j
                  t        d            }|j                  d| j                         | j                  j                  |       | j                  j                  t        j                                d }| j                  j                         D ]  }t        j                  |      }||j                  |       || j                   j#                  d      k(  r|j%                  d       |}|j                  d| j&                  |       | j                  j                  |       || j                  |<    | j                  j                  t        j                                t        j
                  t        d            }|j                  d| j(                         | j                  j                  |       | j                  j                  t        j                                t        j
                  t        d            }|j                  d| j*                         | j                  j                  |       | j                  j-                          | j                   j/                  | j                         y )	Nrm   )rg   r=  zManage Notesr	  Tr  Quit)r  r  r   r!  context_menurI  r   r   r   rG  r
  rH  r  r  RadioMenuItem
join_groupr   r   
set_activeon_tray_group_selectedopen_settings_windowquit_appr   set_secondary_menu)rC   rX  	last_itemr  s       rD   re  z%Application.rebuild_tray_context_menu  s9   #HHJ||!J-0Z/  &||!N"34Z!2!23  &  !6!6!89	&&;;= 	-E$$51D$	*00@@%ILLT%@%@%H$$T*(,Du%	- 	  !6!6!89||!M"23Z!:!:;  &  !6!6!89||!F),Z/  &""$++D,=,=>rG   c                 H    | j                   j                  d       d | _         y r   )r  rc  rB   s    rD   destroy_status_iconzApplication.destroy_status_icon  s    $$U+rG   c                     | j                   j                  d      r| j                          y | j                          | j	                          y )Nr  )r   r   r  r
  rv  r   s     rD   r  zApplication.update_tray_icon  s8    ==$$^4##%$$&rG   c                 <    | j                   j                  d|       y Nr	  )r   r   )rC   ri   r]   s      rD   rp  z"Application.on_tray_group_selected  s      6rG   c                 t   |j                  d      }| j                  r| j                  |   j                         sn| j                  j                  | j                         | j                  |   j                  d       | j                  j                  d| j                        | _        | j                          y )Nr	  Tr  )r   r  r  
get_activer   r  r  ro  r   r  change_visible_note_group)rC   r   rY  r  s       rD   r  z#Application.on_active_group_changed  s    ##N3D$6$6u$=$H$H$JMM$$T%A%ABu%006+/==+@+@AXZ^ZvZv+wD(&&(rG   c                 d   | j                   j                  d      r(| j                  s| j                  j	                  d       n| j                  j	                  d       | j                  j                  dd       | j                   j                  d      r| j                  j                          y y )Nr  FTr_   )r   r   r  r  set_skip_taskbar_hintr   r   r   s     rD   r  zApplication.update_dummy_window  s    ==$$%67@Q@Q33E:33D9r2&==$$%;<##% =rG   c                 b   | j                   D ]$  }|j                         s| j                           y  | j                  j	                  |       | j                   D ]  }|j                  |        t        | j                         dk(  r| j                          d| _        | j                          y )Nr   F)
r  	is_activer   r  r(  r*  r  r   r  r  )rC   r#  r&  s      rD   r  zApplication.activate_notes  s    JJ 	D~~!	
 	++D1JJ 	DLL	 tzz?aMMO!  "rG   c                 t    | j                   D ]  }|j                           d| _        | j                          y r   )r  hider  r  rC   r&  s     rD   r   zApplication.hide_notes  s4    JJ 	DIIK	 !  "rG   c                    	 d}| j                   j                  | j                        D ]  }|d   |k(  s|d   |k(  sd} n |sn|d|d   z  z  }|d|d   z  z  }[t        j                  j                         }|j                  ||      }|j                         }|j                  }	|j                  |j                  z   }
|j                  }|j                  |j                  z   }|| j                  j                  d	      z   }|| j                  j                  d
      z   }||	k  s||
kD  s
||k  s||kD  r|j                  dz   }|j                  dz   }||fS )NTFrK   rL   ro   r   <   r   rN   rP   )r  rS  r  r   Displayr#  get_monitor_at_pointget_workarearK   rO   rL   rM   r   r   )rC   rK   rL   rG  found	note_infodisplaymonitorworkareamin_xmax_xmin_ymax_yx_endy_ends                  rD   r=  zApplication.find_note_location  sY   E!..<<T__M 	S>Q&9S>Q+> E
 il""Ail""A  ++))+..q!4'')



X^^+



X__,DMM**+;<<DMM**?;;u9Ueem

RA

RA!trG   c                 ^   t         j                  j                  t         j                  j                               }|d k(  r<t         j                  j	                  t         j                  j                         d      }t         j
                  j                  |      }ddg}|r|j                  |j                  dz  kD  r|j                  dz
  }d|d<   n|j                  dz   }|j                  |j                  dz  kD  r|j                  dz
  }d|d<   n|j                  dz   }n| j                  j                  d      j                  d      \  }}|d	k(  r1|j                  | j                  j                  d
      z
  dz
  }d|d<   n6|dk(  r/|j                  dz  | j                  j                  d
      dz  z
  }nd}|dk(  r1|j                  | j                  j                  d      z
  dz
  }d|d<   n6|dk(  r/|j                  dz  | j                  j                  d      dz  z
  }nd}|||fS )Nr   r   r  ro   r  r  -rightrP   centerbottomrN   )r   r  get_primary_monitorr#  get_monitorMonitorr  rK   rO   rL   rM   r   r   splitr   )	rC   r   r  workarea_rectrG  rK   rL   pos_ypos_xs	            rD   r<  zApplication.get_direction  s   ++11#++2I2I2KLd? kk--ckk.E.E.GJG009F	xx=..23HHrM!	!HHrMxx=//!34HHrM!	!HHrM==334FGMMcRLE5!''$--*@*@*QQTVV!	!("!''!+dmm.D.D_.UXY.YY !((4==+A+ABR+SSVXX!	!("!((1,t}}/E/EFV/WZ[/[[1i  rG   c                     | j                  |      \  }}}| j                  |||      \  }}||d}| j                  |       y )N)rK   rL   )r<  r=  r>  )rC   r   r   rK   rL   rG  r   s          rD   r   zApplication.new_note;  sF    ,,V41i&&q!Y71QdrG   c                    | j                  |      }|j                  t        j                                |j	                         s|j                          |j                         j                          | j                          y r@   )	generate_noter(  r   r'  get_realizedrealize
get_windowraise_	on_updaterC   r   r&  s      rD   r>  zApplication.add_noteD  s]    !!$'s99;<   "LLN  "rG   c                     t        | | j                  |      }|j                  d| j                         |j                  d| j                         | j
                  j                  |       |S )NrE   rI   )r;   r  r   r  
on_removedr  rG  r  s      rD   r  zApplication.generate_noteP  sQ    D$++T2Xt~~.Y0

$rG   c                     | j                   D ]  }|j                           g | _         | j                  j                  | j                        D ]  }| j                  |        y r@   )r  r}  r  rS  r  r  )rC   r&  r  s      rD   r$  zApplication.load_notesY  sY    JJ 	DLLN	 
**88I 	*Iy)	*rG   c                 X    | j                   j                          | j                          y r@   )r  r$  rB   s    rD   r?  z"Application.reload_notes_from_fileb  s    $$&rG   c                 z    |j                         }|dxx   dz  cc<   |dxx   dz  cc<   | j                  |       y )NrK   r  rL   )r8  r>  )rC   r   new_note_infos      rD   r  zApplication.duplicate_notef  s<     ))+cb cb m$rG   c                 p    | j                   D ]'  }|j                         |k(  s|j                  d       ) y r&  )r  r8  r(  )rC   r  r&  s      rD   
focus_notezApplication.focus_notem  s1    JJ 	*D}})+&&q)	*rG   c                     | j                   | j                  j                         vr| j                          n| j	                          | j                          y r@   )r  r  r  r|  r$  re  r   s     rD   r  zApplication.on_lists_changedr  s?    $"3"3"H"H"JJ**,OO&&(rG   c                 D    | j                   |k(  r| j                          y y r@   )r  r$  )rC   fr\  s      rD   r  zApplication.on_group_changedz  s    ??j(OO )rG   c                     | j                   |k(  r| j                  |       | j                  j                  d      |k(  r| j                  j	                  d|       | j                          y ry  )r  r|  r   r   r   re  )rC   r  old_namenew_names       rD   r  z!Application.on_group_name_changed~  sS    ??h&**84==##N3x?MM$$^X>&&(rG   c                 Z    | j                         j                  d t        t        dd        y )NNotesChanged)get_dbus_connectionemit_signal	DBUS_PATHr  r   s     rD   r  zApplication.on_save  s#      "..tYP^`derG   c                 B   | j                   j                  d      }||| _        n|| _        | j                  j	                         }| j                  |vr;t        |      dkD  r|d   | _        n"| j                  j                  |       || _        | j                          y )Nr	  r   )r   r   r  r  r  r  r  r$  )rC   r  defaultr'  s       rD   r|  z%Application.change_visible_note_group  s    --**>:=%DO#DO''<<>??+-;!#"-a.!!++G4")rG   r   r#  c                0   | j                   r?|dk(  rt        j                         }| j                   j                  j	                  |       y t        | | j                        | _         | j                   j                  j                  d| j                         y )Nr   zdelete-event)	r  r   r'  rJ  r(  r   r  r   manager_closed)rC   r#  r   s      rD   r
  zApplication.open_manager  sm    <<qy113LL11$7#D$*;*;<##ND4G4GHrG   c                    | j                   rm| j                   j                  j                         rI| j                   j                  j                         r%| j                   j                  j	                          y | j                  |       y )Nr  )r  rJ  r  
is_visibler  r
  r)  s     rD   rg  zApplication.toggle_manager  sZ    <<DLL//99;@S@S@^@^@`LL$$&4(rG   c                     | j                   | j                          | j                  j                  j	                          t
        j                  S r@   )r  rr  r  rJ  r  r   r   r   s     rD   r  zApplication.manager_closed  s7    #MMO  "~~rG   c                    | j                   r.| j                   j                  t        j                                y t	        |       | _         | j                   j                  d| j                         | j                   j                          y Nr}  )r  r(  r   r'  r  r   settings_window_closedr   r   s     rD   rq  z Application.open_settings_window  sf      2233M3M3OP-d3$$Y0K0KL%%'rG   c                    t        j                         }|j                  | j                  j                         |j                  d       |j                  t        d             |j                  t        d             |j                  t        d             	 t        dd      }|j                         }d}|D ]  }||z  }	 |j                          |j                  |       |j!                  d	       |j#                  d
       |j%                  d
       |j'                  d       d }|j)                  d|       |j+                          y # t        $ r}t        |       Y d }~d }~ww xY w)NTAboutr  zTake notes and stay organizedz/usr/share/common-licenses/GPLzutf-8)encodingrR   z1.31r   z'https://www.github.com/linuxmint/stickyc                     |t         j                  j                  k(  s|t         j                  j                  k(  r| j	                          y y r@   )r   ResponseTypeCANCELDELETE_EVENTr}  )rw   ress     rD   closez%Application.open_about.<locals>.close  s8    c&&---8H8H8U8U1U		 2VrG   response)r   AboutDialogset_transient_forr  rJ  	set_modalr   r   set_program_nameset_commentsopen	readlinesr  set_licenser  printset_versionrb  set_logo_icon_nameset_websiter   r{   )	rC   ri   dlghsgplliner  r  s	            rD   
open_aboutzApplication.open_about  s'   oodll112daj!QwZ(:;<		5HAAC tGGIOOC  	(#x(AB	 	J&
  	1II	s   AE 	E.E))E.c                     d | _         y r@   )r  r   s     rD   r  z"Application.settings_window_closed  s
    #rG   c                    | j                   r.| j                   j                  t        j                                y t	               | _         | j                   j                  d| j                         | j                   j                          y r  )r  r(  r   r'  r  r   keyboard_shortcuts_closedr   r   s     rD   open_keyboard_shortcutsz#Application.open_keyboard_shortcuts  sd    ""##55c6P6P6RS"1"3''	43Q3QR((*rG   c                     d | _         y r@   )r  r   s     rD   r  z%Application.keyboard_shortcuts_closed  s
    "&rG   c                 H   g }| j                   D ]!  }|j                  |j                                # | j                  j	                  | j
                         | j                  j                  || j                         | j                  j                  | j
                         y r@   )	r  rG  r8  r  handler_blockr  rT  r  handler_unblock)rC   r   r   r&  s       rD   r  zApplication.on_update  s|    JJ 	)DKK(	) 	''(<(<=**4A))$*>*>?rG   c                 Z    | j                   j                  |       | j                          y r@   )r  r   r  r  s     rD   r  zApplication.on_removed  s    

$rG   c                     | j                   j                          | j                  D ]  }|j                           | j	                          y r@   )r  flushr  r}  quit)rC   r   r&  s      rD   rr  zApplication.quit_app  s;    !JJ 	DLLN	 			rG   r@   )NN).r  r  r  r   r  r  r0  r6  r/  r  r  rd  re  rv  r  rp  r  r  r  r   r=  r<  r   r>  r  r$  r?  r  r  r  r  r  r  r|  r
  rg  r  rq  r  r  r  r  r  r  rr  r  r  s   @rD   r  r    s    &P2B"HOJ* '6R
)&/?b '7)	&#"#B%!N
 "$ *%*
))f" () I)(8$+'@rG   r  __main__)1jsonrL  r  girequire_versiongi.repositoryr   r   r	   r   r   r
   r   xapp.GSettingsWidgetsnote_bufferr   r  r   commonr   r   r   r   utilr   gettextinstallr  r  r  r  r,  r/  r   rb  r   r\  r  r  r  r;   PreferencesWindowr  r  r  r  r   runargvrA   rG   rD   <module>r     s    	 
 	   5%     8S !   5%     65 ! E E E # "   9 9 )  -Z @1 		 $  aow'q*aow'q+	 U8wZfIkkfIk|	
 	 lO	
	!23	
 	!#67	
6I	
6I	
		*	
	i( lO	
6I	
8i 	
=	9%	
;#	
?	Y'	
;#	
8i 	* *L/;]#x[n%]#'n%
l3:: l\3T++ 3jc)) .T	#// T	l z]F
JJsxx rG   