
    FQ	f%              	       ,   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ	  e	dd        e	dd        e	dd        e	d	d        e	d
d       d dl
mZ  ej                  d       d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZm Z m!Z!  e" e#d            \  Z$Z%Z&Z'Z(Z) e" e#d            \	  Z*Z+Z,Z-Z.Z/Z0Z1Z2 G d de3      Z4e5dk(  rZ	  ejl                  ejn                  d        ejv                  e        ejv                  d"        e4       Z<e<j{                          yy# ejp                  $ r4  e9dejt                           ejl                  ejn                  d!       Y w xY w)#    )print_functionN)require_versionGLibz2.0GdkX11z3.0GioGtkIBusz1.0)r   z
ibus-setup)r   )r   )r   )r	   )path)EmojiLangButton)EngineComboBox)EngineDialog)EngineTreeView)EngineAbout)
DOMAINNAME_N_   	   c                        e Zd Zd Z f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 Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )Setupc                     t        j                         r*t        j                          t        j                         r)y y N)r   events_pendingmain_iterationselfs    /usr/share/ibus/setup/main.py__flush_gtk_eventszSetup.__flush_gtk_eventsT   s(      "    "    c                 z   t         t        |           t        j                  d      | _        t        j                  d      | _        t        j                  d      | _        t        j                  d      | _        d | _	        | j                          t        t        d      | _        t        j                  t        j                   t"              d      }t        j$                         | _        | j&                  j)                  t*               | j&                  j-                  |       | j/                          y )Nzorg.freedesktop.ibus.general)schemaz#org.freedesktop.ibus.general.hotkeyzorg.freedesktop.ibus.panelz org.freedesktop.ibus.panel.emojiListBoxz
./setup.ui)superr   __init__r   Settings_Setup__settings_general_Setup__settings_hotkey_Setup__settings_panel_Setup__settings_emoji_Setup__bus_Setup__init_bushasattrr   _Setup__has_list_boxr
   joindirname__file__Builder_Setup__builderset_translation_domainr   add_from_file_Setup__init_ui)r   gtk_builder_file	__class__s     r   r$   zSetup.__init__X   s    eT#%"%,,7#9!$>"@ #5!7 #;!= 
 &c9599T\\(%;\J--j9$$%56r   c                     d}d}t        d      }| j                  |||       d}d}| j                  ||       d}d}| j                  ||       y )Ntriggersswitch_engine>Use shortcut with shift to switch to the previous input methodemojiemoji_dialogunicodeunicode_dialog)r   _Setup__init_hotkey)r   namelabelcomments       r   __init_hotkeyszSetup.__init_hotkeysv   s`    NO 	404' 4'r   c                    |dk(  r| j                   j                  d      }n<|dk(  r| j                   j                  d      }n| j                  j                  |      }| j                  j	                  d|z        }| j                  j	                  d|z        }|j                  dj                  |             dj                  |      }|d k7  r|d|z   z  }|j                  |       |dk(  r$|j                  d	| j                  dd
|z   ||       y |dk(  r!|j                  d	| j                  dd||       y |j                  d	| j                  |d||       y )Nr<   hotkeyr>   zunicode-hotkeyz	button_%szentry_%s; 
clickedzpanel/panel/emojizgeneral/hotkey)
r)   get_strvr'   r2   
get_objectset_textr.   set_tooltip_textconnect"_Setup__shortcut_button_clicked_cb)r   rA   rB   rC   	shortcutsbuttonentrytooltips           r   __init_hotkeyzSetup.__init_hotkey   s@   7?--66x@IY--667GHI..77=I**;+>?))*u*<=tyy+,))I&d?tg~%Gw'7?NN9d&G&Ghoue=YNN9d&G&G$mUEC NN9d&G&G*E5:r   c                 
     j                   j                  d       _         j                  j	                  d j                  dt
        j                  j                          j                   j                  d       _         j                  j	                  d j                  dt
        j                  j                          j                   j                  d       _	         j                  j                  d        j                   j                  d       _         j                  j	                  d	 j                  dt
        j                  j                          j                   j                  d
       _         j                  j	                  d j                  dt
        j                  j                          j                  j	                  d	 j                  dt
        j                  j                          j                   j                  d       _         j                   j                  d       _         j                   j                  d       _         fd} |d d        j                  j	                  d j                   dt
        j                  j                          j                  j#                  d|        j                  j	                  d j                  dt
        j                  j                          j                  j#                  d j$                          j                   j                  d       _         j                   j                  d       _         j                   j                  d       _         fd} |d d        j                  j	                  d j*                  dt
        j                  j                          j                  j#                  d|        j                  j	                  d j(                  dt
        j                  j                          j(                  j#                  d j,                          j                   j                  d       _         j                  j	                  d j.                  dt
        j                  j                          j                   j                  d       _         j                  j	                  d  j0                  dt
        j                  j                          j                   j                  d!       _         j                  j	                  d" j2                  dt
        j                  j                         y )#N!combobox_lookup_table_orientationzlookup-table-orientationactivecombobox_panel_showshowcombobox_panel_position   checkbutton_custom_fontzuse-custom-fontfontbutton_custom_fontzcustom-font	font-name	sensitivemodel_custom_themecombobox_custom_themecheckbutton_custom_themec                    j                         }j                  j                          |D ]  }j                  j                  |g         j                  j                  |      }	 |j                  |      }j                  j                  |       y # t        $ rJ j                  j                  |       j                  j                  |      }|j                  |      }Y nw xY wr   )!_Setup__init_available_gtk_themes_Setup__model_custom_themeclearappendr(   
get_stringindex
ValueErrorreset_Setup__combobox_custom_theme
set_active)settingskeytheme_name_listrA   current_themecurrent_theme_numberr   s         r   update_combobox_custom_themez8Setup.__init_panel.<locals>.update_combobox_custom_theme   s    ">>@O%%++-' 9))00$89 11<<SAML'6'<'<]'K$
 ((334HI	  L%%++C0 $ 5 5 @ @ E'6'<'<]'K$L   +B AC+*C+custom-themezuse-custom-themezchanged::custom-themechangedmodel_custom_iconcombobox_custom_iconcheckbutton_custom_iconc                    j                         }j                  j                          |D ]  }j                  j                  |g         j                  j                  |      }	 |j                  |      }j                  j                  |       y # t        $ rJ j                  j                  |       j                  j                  |      }|j                  |      }Y nw xY wr   ) _Setup__init_available_gtk_icons_Setup__model_custom_iconrg   rh   r(   ri   rj   rk   rl   _Setup__combobox_custom_iconrn   )ro   rp   icon_name_listrA   current_iconcurrent_icon_numberr   s         r   update_combobox_custom_iconz7Setup.__init_panel.<locals>.update_combobox_custom_icon   s    !<<>N$$**,& 8((//7800;;C@LI&4&:&:<&H#
 ''223FG	  I%%++C0#44??D&4&:&:<&H#Iru   custom-iconzuse-custom-iconzchanged::custom-icon checkbutton_show_icon_on_systrayzshow-icon-on-systraycheckbutton_show_im_namezshow-im-name&checkbutton_use_glyph_from_engine_langzuse-glyph-from-engine-lang)r2   rL   )_Setup__combobox_lookup_table_orientationr(   bindr   SettingsBindFlagsDEFAULT_Setup__combobox_panel_show_Setup__combobox_panel_positionrn   _Setup__checkbutton_custom_font_Setup__fontbutton_custom_fontGETrf   rm    _Setup__checkbutton_custom_themerO   (_Setup__on_combobox_custom_theme_changedr}   r~   _Setup__checkbutton_custom_icon'_Setup__on_combobox_custom_icon_changed(_Setup__checkbutton_show_icon_on_systray _Setup__checkbutton_show_im_name*_Setup__checkbutton_glyph_from_engine_lang)r   rt   r   s   `  r   __init_panelzSetup.__init_panel   s   37>>3L3L3450""#=#'#K#K#+#&#8#8#@#@	B &*^^%>%>%&'"""6#'#=#=#+#&#8#8#@#@	B *.)B)B)*+&&&11!4 *.)B)B)*+&""#4#'#A#A#+#&#8#8#@#@	B
 )-(A(A()*%""=$($A$A#.#&#8#8#@#@	B 	""#4$($A$A#.#&#8#8#<#<	> %)NN$=$=$%&!'+~~'@'@'()$*...*C*C*+,'	J 	%T>:""#5#'#B#B#+#&#8#8#@#@	B 	%%&=#?	A""#5#'#?#?#.#&#8#8#@#@	B 	$$,,Y#'#J#J	L
 $(>>#<#<#$% &*nn&?&?&'(#)-)B)B)*+&	H 	$D-8""#4#'#A#A#+#&#8#8#@#@	B 	%%&<#>	@""#4#'#>#>#.#&#8#8#@#@	B 	##++I#'#I#I	K 37..2K2K234/""#9#'#J#J#+#&#8#8#@#@	B +/..*C*C*+,'"">#'#B#B#+#&#8#8#@#@	B
 59NN4M4M85:1""#?#'#L#L#+#&#8#8#@#@	Br   c                      j                   j                  d       _         j                  j	                  d j                  dt
        j                  j                          j                   j                  d       _         j                  j	                  d j                  dt
        j                  j                          j                   j                  d       _	         j                  j	                  d j                  dt
        j                  j                          j                  j                          _         j                   j                  d       _         j                  r6 j                  j                  d	        j                  j!                          n% j                  j#                   j                         i } j                  D ]  }|||j%                         <     j                  j'                  d
      }|D cg c]  }||v s||    }} j                   j                  d       _         j(                  j#                  |        j                   j                  d      } j                  r.|j+                  d	       |j-                  d j.                         n|j-                  d j0                          j                   j                  d      }|j-                  d fd        j                   j                  d      }|j-                  d fd        j                   j                  d      }|j-                  d fd        j                   j                  d      }|j-                  d j2                         i  _         j                   j                  d      }|j-                  d j6                          j                  j-                  d j8                          j(                  j-                  d j:                          j(                  j-                  d j:                         y c c}w )Ncheckbutton_embed_preedit_textzembed-preedit-textrX   checkbutton_use_sys_layoutzuse-system-keyboard-layoutcheckbutton_use_global_enginezuse-global-enginecombobox_enginesTpreload-enginestreeview_enginesbutton_engine_addrI   button_engine_removec                  8    j                   j                         S r   )_Setup__treeviewremove_engineargsr   s    r   <lambda>z&Setup.__init_general.<locals>.<lambda>Z  s    t/L/L/N r   button_engine_upc                  8    j                   j                         S r   )r   move_up_enginer   s    r   r   z&Setup.__init_general.<locals>.<lambda>\  s    t/M/M/O r   button_engine_downc                  8    j                   j                         S r   )r   move_down_enginer   s    r   r   z&Setup.__init_general.<locals>.<lambda>`  s    T__==? r   button_engine_aboutbutton_engine_preferencesznotify::active-engineznotify::engines)r2   rL   &_Setup__checkbutton_embed_preedit_textr&   r   r   r   r   "_Setup__checkbutton_use_sys_layout%_Setup__checkbutton_use_global_enginer*   list_engines_Setup__engines_Setup__comboboxr-   set_no_show_allhideset_enginesget_namerK   r   set_sensitiverO   _Setup__button_engine_add_cb&_Setup__button_engine_add_cb_deprecate_Setup__button_engine_about_cb_Setup__engine_setup_exec_list$_Setup__button_engine_preferences_cb(_Setup__combobox_notify_active_engine_cb_Setup__treeview_notify_cb)r   tmp_dicteengine_namesrA   enginesrR   s   `      r   __init_generalzSetup.__init_general(  s[   040I0I012-$$%9$($I$I$,$'$9$9$A$A	C -1NN,E,E,-.)$$%A$($E$E$,$'$9$9$A$A	C 04~~/H/H/01,$$%8$($H$H$,$'$9$9$A$A	C 002..334FGOO++D1OO  "OO''7 	'A%&HQZZ\"	'..778IJ.:Oddh>N8D>OO..334FG##G,**+>?  &NN9d&A&ABNN9d&K&KL**+ABy"NO**+=>y"OP**+?@y?	A **+@Ay$"?"?@(*%**+FGy$"E"EF 777	9 79R9RS 143L3LM= Ps   	QQc                 0     j                   j                  d       _         j                  j                  d        j                  j                  d j                  dt        j                  j                          j                   j                  d       _	         j                  j                  d j                  dt        j                  j                          j                   j                  d       _
         j                  j                         }t        |      t        j                  k(  r$|j                  dd	       |j                  d
d        j                   j                  d       _         j                  j                  d j                  dt        j                  j                          j                  j                  d j                   dt        j                  j"                          fd} fd} |d d        j                   j%                         j'                  d|        j                  j'                  d|        j                   j                  d       _         j                  j                  d j(                  dt        j                  j"                          j                   j                  d       _         j                   j                  d       _         j                   j                  d       _         fd} fd} |d d        j*                  j'                  d|        j,                  j'                  d|        j.                  j'                  d|        j                  j'                  d|       y )Nfontbutton_emoji_fontu   🙂🍎🚃💓📧⚽🐳fontr_   button_emoji_langlangcheckbutton_emoji_partial_matchwrapTzmax-width-charsJ   spinbutton_emoji_partial_matchzhas-partial-matchrX   r`   c                     d}t        j                               }|j                  j                  |      k(  ry j                  j	                  ||       y )Npartial-match-length)int	get_valuer)   get_intset_int)objrp   value
adjustmentr   s      r   adjustment_value_changed_cbz7Setup.__init_emoji.<locals>.adjustment_value_changed_cb  sM    (C
,,./E--55c::!!))#u5r   c                     j                   j                  |      }t        j                  j	                               }||k(  ry j                  j                  |       y r   )r)   r   r   &_Setup__spinbutton_emoji_partial_matchr   	set_value)ro   rp   r   	old_valuer   s       r   &settings_emoji_partial_match_length_cbzBSetup.__init_emoji.<locals>.settings_emoji_partial_match_length_cb  sQ    ))11#6EDAAKKMNI	!11;;EBr   r   zvalue-changedzchanged::partial-match-lengthhbox_emoji_partial_matchradiobutton_emoji_prefix_matchradiobutton_emoji_suffix_matchradiobutton_emoji_contain_matchc                     d}d}| j                         sy | j                  k(  rd}n0| j                  k(  rd}n| j                  k(  rd}nt	        d       y j
                  j                  ||       y )Npartial-match-conditionr         z Wrong emoji partial match object)
get_active&_Setup__radiobutton_emoji_prefix_match&_Setup__radiobutton_emoji_suffix_match'_Setup__radiobutton_emoji_contain_matchprintr)   r   )r   rp   	conditionr   s      r   !radiobuton_emoji_partial_match_cbz=Setup.__init_emoji.<locals>.radiobuton_emoji_partial_match_cb  su    +CI>>#d;;;	===	>>>	89!!))#y9r   c                    j                   j                  |      }d }|dk(  rj                  }n0|dk(  rj                  }n|dk(  rj                  }nt        d       y |j                         ry |j                  d       y )Nr   r   r   z#Wrong emoji partial match conditionT)r)   r   r   r   r   r   r   rn   )ro   rp   r   r   r   s       r   )settings_emoji_partial_match_condition_cbzESetup.__init_emoji.<locals>.settings_emoji_partial_match_condition_cb  sy    ))11#6ECz;;!;;!<<;<~~NN4 r   r   toggledz changed::partial-match-condition)r2   rL   _Setup__fontbutton_emoji_fontset_preview_textr)   r   r   r   r   _Setup__button_emoji_lang'_Setup__checkbutton_emoji_partial_match	get_childtyper   Labelset_propertyr   r   get_adjustmentrO    _Setup__hbox_emoji_partial_matchr   r   r   )r   checkbutton_labelr   r   r   r   r   s   `     @r   __init_emojizSetup.__init_emojin  s   '+~~'@'@'()$$$556ST""6$($@$@#.#&#8#8#@#@	B $(>>#<#<#$% ""6$($<$<#)#&#8#8#@#@	B 261J1J123. BBLLN!"cii/**648**+<bA040I0I012-""#6#'#I#I#+#&#8#8#@#@	B 	""#6#'#H#H#.#&#8#8#<#<	>
	6	C 	/t5KL::IIK
?,GH%%&E&L	N +/..*C*C*+,'""#6#'#B#B#.#&#8#8#<#<	> 150I0I012-040I0I012-151J1J123.	:	!  	2$2K	M--551	3 	--551	3 	..661	3 	%%&H&O	Qr   c                    | j                   j                  d      | _        | j                  j                  dt        j
                         | j                  j                  d| j                         | j                   j                  d      | _        | j                  j                  dt        j
                         | j                          | j                          | j                          | j                          y )Nwindow_preferenceszdelete-eventznotify::windowbutton_closerI   )r2   rL   _Setup__windowrO   r   	main_quit_Setup__gdk_window_set_cb_Setup__button_close_Setup__init_hotkeys_Setup__init_panel_Setup__init_general_Setup__init_emojir   s    r   	__init_uizSetup.__init_ui  s    112FGncmm<.0H0HI"nn77G##Is}}=r   c                     |j                         }t        |      t        j                  k7  ry dt        j                  j	                  |      z  }t        j                  d|d       y )Nz%uIBUS_SETUP_XIDT)
get_windowr   r   	X11Windowget_xidr   setenv)r   objectpspecwindowss        r   __gdk_window_set_cbzSetup.__gdk_window_set_cb  sQ    ""$<6+++6##++F33$a.r   c                     | j                   j                         }| j                  j                  d      }|j	                  |d k7  xr || j
                  j                         v       y )Nr   )r   get_active_enginer2   rL   r   r   get_engines)r   comboboxpropertyenginerR   s        r   "__combobox_notify_active_engine_cbz(Setup.__combobox_notify_active_engine_cb  sV    224**+>?$N61L1L1N#N	Pr   c                    g }|d k(  r|S t        |j                               }t        |      dk7  r:|j                         }|j	                  dt        j                  |d                |S t        |j                               }t        j                  d   }|d k7  r|dz   dz   nd|j                  d      d   z   }t        j                  |      r5|j                  |       |j                  t        j                  |             |S )Nr   r   IBUS_LIBEXECDIR/zibus-setup-:)str	get_setuplensplitinsertr
   basenamer   osenvironexistsrh   )r   r  r   setuprA   
libexecdir
setup_paths          r   __get_engine_setup_exec_argsz"Setup.__get_engine_setup_exec_args  s    T>;F$$&'u:?;;=DKK4==a12K6??$%ZZ 12
:D:Lj3&6$**S/!"45
;;z"KK
#KKj12r   c                    |j                   dvry | j                  j                         }| j                  j                         }| j                  j                  d      j                  |d k7         | j                  j                  d      j                  |d k7         | j                  j                  d      j                  ||d d v       | j                  j                  d      j                  ||dd  v       | j                  j                  d      }t        | j                  |            d	k7  r|j                  d
       n|j                  d       |j                   dk(  rT| j                  j                         }|D cg c]  }|j                          }}| j                  j                  d|       y y c c}w )N)zactive-enginer   r   r   r   r   r   r   r   TFr   r   )rA   r   get_sorted_enginesr  r2   rL   r   r   "_Setup__get_engine_setup_exec_argsr  r   r&   set_strv)r   treeviewpropr   r  r   r   r   s           r   __treeview_notify_cbzSetup.__treeview_notify_cb  su   9988//446224!!"89GGRVW!!"78FFvQU~V!!"45CCFRYZ\[\R]D]^!!"67EEfT[\^\_T`F`ann''(CDt0089Q>d#e$99	!oo113G29:QAJJL:L:##,,->M ":s   F;c                 X   t        | j                        }|j                  | j                         |j	                         }|t
        j                  j                  k7  r|j                          y |j                         }|j                          | j                  j                  |       y )N)transient_for)r   r   r   r   runr   ResponseTypeAPPLYdestroyget_selected_enginer   append_engine)r   rR   dialogidr  s        r   __button_engine_add_cbzSetup.__button_engine_add_cb  sx    dmm<4>>*ZZ\!!'''NN++-%%f-r   c                 n    | j                   j                         }| j                  j                  |       y r   )r   r  r   r:  )r   rR   r  s      r    __button_engine_add_cb_deprecatez&Setup.__button_engine_add_cb_deprecate+  s&    224%%f-r   c                     | j                   j                         }|r8t        || j                        }|j	                          |j                          y y )N)r  r4  )r   r  r   r   r5  r8  )r   rR   r  abouts       r   __button_engine_about_cbzSetup.__button_engine_about_cb/  s>    224OEIIKMMO r   c                    | j                   j                         }| j                  |      }t        |      dk(  ry |j	                         }|t        | j                  j                               v rI	 t        j                  | j                  |   t        j                        \  }}|dk(  ry 	 | j                  |= t        j                  t        j                  g| | j                  |<   y # t        $ r Y Jw xY w)Nr   )r   r  r.  r   r   listr   keysr$  waitpidWNOHANGOSErrorspawnlP_NOWAIT)r   rR   r  r   rA   wpidstss          r   __button_engine_preferences_cbz$Setup.__button_engine_preferences_cb6  s    224008t9> 455::<==JJt'D'DT'J')zz3	c 19  --d3.0ii.Kd.K%%d+  s   19C+ +	C76C7c                 T   t        j                         | _        | j                  j                         ry t	        d      }t        j                  t
        j                  j                  t
        j                  j                  |      }|j                         }|j                          | j                          |t
        j                  j                  k7  rt!        j"                  d       t%        j&                         d}t%        j(                  |fd       | j                  j+                  dfd       t-        j.                  t,        j0                  ddd	d
       j                          | j                  j                         rt	        d      }t        j                  t
        j                  j2                  t
        j                  j4                  |      }|j                         }|j                          | j                          y t	        d      }t        j                  t
        j                  j2                  t
        j                  j4                  ||z        }|j                         }|j                          | j                          t!        j"                  d       y )Nz8The IBus daemon is not running. Do you wish to start it?)message_typebuttonstextr      c                  $    j                         S r   quitr   	main_loops    r   r   z"Setup.__init_bus.<locals>.<lambda>Z  s    	8H r   	connectedc                  $    j                         S r   rT  rV  s    r   r   z"Setup.__init_bus.<locals>.<lambda>[  s    inn6F r   zibus-daemonz--ximz--daemonizezIBus has been started! If you cannot use IBus, add the following lines to your $HOME/.bashrc; then relog into your desktop.
  export GTK_IM_MODULE=ibus
  export XMODIFIERS=@im=ibus
  export QT_IM_MODULE=ibusz/IBus daemon could not be started in %d seconds.)r	   Busr*   is_connectedr   r   MessageDialogMessageTypeQUESTIONButtonsTypeYES_NOr5  r8  _Setup__flush_gtk_eventsr6  YESsysexitr   MainLooptimeout_add_secondsrO   r$  spawnlprJ  INFOOK)r   messagedlgr<  timeoutrW  s        @r   
__init_buszSetup.__init_busH  s   XXZ
::""$NOs/G/G*-//*@*@'.0 WWY!!!%%%HHQKMMO	  *HI

;(FG


2;;}g}U::""$ - G ##3??3G3G.1oo.@.@+24C BKKM##% IJG##3??3G3G.1oo.@.@+2W+<>C BKKM##%HHQKr   c                 Z   t        d      t        j                  j                  t        d      t        j                  j                  f}t        d      }t        d      }||z  }	t        j                  |	| j                        }
 |
j                  |  |j                         }|r|j                  d      }nd }|
j                  |       |
j                         }|
j                         }|
j                          |t        j                  j                  k7  ry |dk(  r| j                  j!                  ||       n| j"                  j!                  ||       dj%                  |      }|j'                  |       dj%                  |      }|dt        d	      z   z  }|j)                  |       y )
N_Cancel_OKzSelect keyboard shortcut for %szswitching input methods)titler4  rG   rJ   rH   r;   )r   r   r6  CANCELri  keyboardshortcutKeyboardShortcutSelectionDialogr   add_buttonsget_textr!  set_shortcutsr5  get_shortcutsr8  r)   r/  r'   r.   rM   rN   )r   rR   rA   section_namerS   rP  title1title2rq  r;  rQ  rQ   r<  rT   s                  r   __shortcut_button_clicked_cbz"Setup.__shortcut_button_clicked_cby  sk   Y<!1!1!8!8U8S--00245,-!AAt}}>G$~~

4(IIY'ZZ\((*	!!$$$m#!!**4;""++D)<yy#t))I&4NOP 	Pw'r   c           
      ,   g }|j                  t        j                  j                  t	        j
                         d             |j                  t        j                  j                  t	        j                         d             |j                  t        t        d t	        j                                            g }g }|D ])  }|j                  t        j                  |dz                + |D ]j  }|j                  t        j                  j                  t        j                  j                  t        j                  j                  |                         l |j                  g d       t        t        |            }|j                          |S )Nz.themesthemesc                 B    t         j                  j                  | d      S )Nr  r$  r
   r.   xs    r   r   z3Setup.__init_available_gtk_themes.<locals>.<lambda>  s    BGGLLx- r   z/*/gtk-*/gtk.css)AdwaitaHighContrastHighContrastInverse)rh   r$  r
   r.   r   get_home_dirget_user_data_dirextendrD  mapget_system_data_dirsglobr#  r/   setsort)r   	path_listrq   gtk_theme_pathr
   s        r   __init_available_gtk_themesz!Setup.__init_available_gtk_themes  s;   	d&7&7&99EFd&<&<&>IJc #3357 8 	9 	HD!!$))D3E,E"FG	H" 	9D""277#3#3 56$8 9	9 	  
 	 s?34r   c                     | j                   j                         }|?| j                   j                         }||   d   }| j                  j	                  d|       y y )Nr   rv   )rm   get_active_iter	get_modelr(   
set_string)r   r  	tree_itermodel
theme_names        r   "__on_combobox_custom_theme_changedz(Setup.__on_combobox_custom_theme_changed  sZ    00@@B	 00::<Ey)!,J!!,,^ZH !r   c           	      p   g }|j                  t        j                  j                  t	        j
                         d             |j                  t        j                  j                  t	        j                         d             |j                  t        t        d t	        j                                            g }g }|D ])  }|j                  t        j                  |dz                + |D ]  }t        j                  j                  |      }t        j                  j                  t        j                  j                  |d            r`|j                  t        j                  j                  |              |j                  dg       t        t        |            }|j!                          |S )Nz.iconsiconsc                 B    t         j                  j                  | d      S )Nr  r  r  s    r   r   z2Setup.__init_available_gtk_icons.<locals>.<lambda>  s    BGGLLw- r   z/*/index.themecursorsr  )rh   r$  r
   r.   r   r  r  r  rD  r  r  r  r/   r&  r#  r  r  )r   r  r   gtk_icon_pathr
   dirs         r   __init_available_gtk_iconsz Setup.__init_available_gtk_icons  sH   	d&7&7&98DEd&<&<&>HIc #2246 7 	8 	ED  42B+B!CD	E! 	=D''//$'C77>>"'',,sI">?%%bgg&6&6s&;<	=
 	yk*c.12r   c                     | j                   j                         }|?| j                   j                         }||   d   }| j                  j	                  d|       y y )Nr   r   )r~   r  r  r(   r  )r   r  r  r  	icon_names        r   !__on_combobox_custom_icon_changedz'Setup.__on_combobox_custom_icon_changed  sZ    //??A	 //99;Ei(+I!!,,]IF !r   c           	         |j                  |      }|j                  |t              }|t           dk(  r,	 | j                  j                  |t           |t                  n+	 | j                  j)                  |t           |t                  |t            |t        <   |j+                  |t,        |t                  y # t        $ r}t        j                  t        j                  j                  | j                  t        j                  j                  t!        |            }|j#                          |j%                          | j'                          Y d }~y d }~ww xY w# t        $ r}t        j                  t        j                  j                  | j                  t        j                  j                  t!        |            }|j#                          |j%                          | j'                          Y d }~y d }~ww xY w)NF)rO  r4  rP  rQ  )get_iter_from_stringr   COLUMN_DATADATA_STARTEDr*   register_start_engine	DATA_LANG	DATA_NAME	Exceptionr   r\  r]  ERRORr   r_  CLOSEr  r5  r8  ra  register_stop_enginer  COLUMN_ENABLE)r   cellpath_strr  iterdatar   rk  s           r    __item_started_column_toggled_cbz&Setup.__item_started_column_toggled_cb  sw    ))(3t[1 &


00i$y/R


//YiQ "&l!33\ 			$tL'9:1  ''s7L7L(,"%//"7"7"1v' 	'')  ''s7L7L(,"%//"7"7"1v' 	'')s1   *B; !*E ;	EBEE	G<&BG77G<c                 N   |j                  |      }|j                  |t              }|t            |t        <   |t           d|t
           }|t           rY|| j                  vr| j                  j                  |       | j                  j                  dt        | j                               nX|| j                  v rJ| j                  j                  |       | j                  j                  dt        | j                               |j                  |t        |t                  y )Nr  r   )r  r   r  DATA_PRELOADr  r  _Setup__preload_enginesaddr&   r/  rD  remover  COLUMN_PRELOAD)r   r  r  r  r  r  r  s          r    __item_preload_column_toggled_cbz&Setup.__item_preload_column_toggled_cb  s     ))(3t[1!%l!33\ OT)_=T333&&**62''001B15d6L6L1MO ///&&--f5''001B15d6L6L1MO 			$\(:;r   c                 8    | j                   j                          y r   )r   present)r   r   s     r   __sigusr1_cbzSetup.__sigusr1_cb  s    r   c                     | j                   j                          t        j                  t        j                  | j                         t        j                          y r   )r   show_allsignalSIGUSR1_Setup__sigusr1_cbr   mainr   s    r   r5  z	Setup.run  s3     fnnd&7&78
r   r   )__name__
__module____qualname__ra  r$   r  r@   r  r  r  r5   r  r   r.  r   r   r   r   r   r+   rP   re   r   r|   r   &_Setup__item_started_column_toggled_cb&_Setup__item_preload_column_toggled_cbr  r5  __classcell__)r7   s   @r   r   r   S   s    !<(:0KBZDNLiQV/P$N...L$/b(@,I*G";H<. r   r   __main__ zUsing the fallback 'C' locale)fileCzxkeyboard-config)>
__future__r   r$  r  rc  timer  gir   gi_require_versiongi.repositoryr   set_prgnamer   r   r   r	   r
   i18nrs  locale	emojilangr   enginecomboboxr   enginedialogr   enginetreeviewr   engineaboutr   r   r   r   rD  rangeCOLUMN_NAMEr  r  COLUMN_VISIBLECOLUMN_ICONr  r  DATA_LOCAL_NAMEr  	DATA_ICONDATA_AUTHORDATA_CREDITS	DATA_EXECr  r  r  r   r  	setlocaleLC_ALLErrorr   stderrinit_textdomainr'  r5   r   r   <module>r     s  4 & 	  
   4 65 ! 8U # 5%   5%   65 !               % ) % ) # " " 	qN 	qN
@F @D z-+
 D$D+,GE	IIK  << --CJJ?,-s   6E A FF