
    ?g!                        d dl Z d dlZd dlZ ej                  dd       d dlmZmZmZ dZ	dZ
ej                  j                  d      dz   Zej                  j                   ej                         d	d
      Zedz   ZdZ G d d      Z G d d      Zedk(  r3 ee j.                        dkD  r ee j.                  d         Zy e       Zyy)    NGtkz3.0)r   GioGLibzorg.cinnamon.desklets.launcherzlauncher-list~/cinnamonzpanel-launchersz.cinnamon/panel-launchers/zB/usr/share/cinnamon/desklets/launcher@cinnamon.org/editorDialog.uic                   V    e 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y)EditorDialogc                 H   t         j                  j                  t              | _        d| _        d| _        || _        |dk7  r| j                  j                  t              }d}|D ]E  }|j                  d      d   t        | j                        k(  s.|j                  d      d   d d } n || _        | j                  d d d	k(  rd
| _        t        j                         | _        | j                  j                  d       | j                  j!                  t"               | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j*                  j5                  | j                         | j(                  j7                         | _        | j8                  j;                  d      | j8                  j;                  d      g| _        | j(                  j?                  | j<                  | jA                  | j
                                  | jC                          | jE                          | jG                  | j0                  jI                                | j                  jK                  |        | j&                  jM                          | j&                  jO                  dt        jP                         | j&                  jO                  d| jR                         t        jT                          y )NApplication :r      i   zcinnamon-custom-launcherCustom Applicationr   dialoglauncher_type_combo_box
name_entrytitle_entrycommand_entryicon_name_entrylauncher_icon01destroykey_release_event)+r   SettingsnewSCHEMASlauncher_settingslauncher_typename
desklet_idget_strvLAUNCHER_KEYsplitstrr   Buildertreeset_translation_domainadd_from_fileEDITOR_DIALOG_UI_PATH
get_objectr   r   r   r   r   r   r   set_text	get_modelmodelget_iter_from_stringciterset_active_iterlauncher_type_to_indexupdate_sensitivityset_fields_by_nameon_icon_changedget_textconnect_signalsshow_allconnect	main_quiton_key_release_eventmain)selfr$   launcher_listlauncheritems        B/usr/share/cinnamon/desklets/launcher@cinnamon.org/editorDialog.py__init__zEditorDialog.__init__   s   !$!1!1'!:*	$ 22;;LIMH% ::c?1%T__)==#zz#q1#26H
 !DIyy"~!;;%9"KKM			((4		 56ii**84'+yy';';<U'V$))..|<99//>!YY11/B#yy334EF!YY11/B  +11;;=
jj55c:4::;Z;Z[^;_`
$$44TZZ@[@[\`\n\n@o5pq!!T11::<=		!!$'Is}}5/1J1JK
    c                     |dk(  ry|dk(  ryy )Nr   r   r   r    )r@   r"   s     rD   r5   z#EditorDialog.launcher_type_to_indexC   s    M)22 3rF   c                    d}| j                   dk(  rd}| j                  j                  |        | j                  j                  |       | j                  j                  |       | j
                  j                  |       | j                   dk(  r| j                  j                          y | j                  j                          y )NTr   F)r"   r   set_sensitiver   r   r   
grab_focus)r@   	sensitives     rD   r6   zEditorDialog.update_sensitivityI   s    	.I%%)m4&&y1((3**95.OO&&('')rF   c                     | j                   j                         | _        | j                          | j	                  | j
                         y N)r   get_active_textr"   r6   on_name_changedr   r@   widgets     rD   "on_launcher_type_combo_box_changedz/EditorDialog.on_launcher_type_combo_box_changedW   s7    !99IIK!T__-rF   c                 l    | j                   j                  | j                  j                         d       y )N0   )r   set_from_icon_namer   r9   rQ   s     rD   r8   zEditorDialog.on_icon_changed\   s'    --d.B.B.K.K.MrRrF   c                 D    | j                   dk(  r| j                          y y )Nr   )r"   r7   rQ   s     rD   rP   zEditorDialog.on_name_changed_   s!    .##% /rF   c                 H   t        | j                  j                         dz         }|j                  rp| j                  j                  |j                         | j                  j                  |j                         | j                  j                  |j                         y y )N.desktop)
r   r   r9   titler   r/   r   commandr   	icon_name)r@   applications     rD   r7   zEditorDialog.set_fields_by_namec   sz    !$//":":"<z"IJ%%k&7&78''(;(;<  ))+*?*?@ rF   c                 F    |j                   dk(  r| j                  |       y y )Ni  )keyvalon_edit_ok_clicked)r@   rR   events      rD   r>   z!EditorDialog.on_key_release_eventj   s!    <<5 ##F+ !rF   c                 8    | j                   j                          y rN   )r   r   rQ   s     rD   on_edit_close_clickedz"EditorDialog.on_edit_close_clickedn   s    rF   c                    | j                   dk(  r9| j                  j                         sy | j                  j                         dz   }n| j                   dk(  r| j                         }d }| j                  dk(  rt
        j                  j                  d      }|j                  d      | _        |j                  d| j                  dz          |j                  d      }|j                  d	| j                  z         | j                  j                  t              }|D ]>  }|j                  d
      d   t        | j                        k(  s.|j!                  |       @ |j                  t        | j                        d
z   z          | j                  j#                  t        |       |rj#                  d|       | j$                  j'                          y )Nr   rY   r   r   zorg.cinnamonznext-desklet-idr   zenabled-deskletszlauncher@cinnamon.org:%s:0:100r   r   )r"   r   r9   write_custom_applicationr$   r   r   r   get_intset_intr%   appendr!   r&   r'   r(   removeset_strvr   r   )r@   rR   launcher_nameenabled_deskletssettingsrA   rC   s          rD   r`   zEditorDialog.on_edit_ok_clickedq   s   .??++- OO446CM#77 99;M??b ||''7H&../@ADO.!0CD'001CD##$Dt$VW..77E " 	+Dzz#q!S%99$$T*	+ 	S1C7-GH''mD 02BCrF   c                    t        j                  t              }|j                  d       s|j	                  d        d}	 dt        |      z   dz   }t        j                  j                  t        |      }t        j                  j                  t        |      }t        j                  j                  |      s#t        j                  j                  |      s||fS |dz   })Nr   zcinnamon-custom-launcher-rY   )r   file_new_for_pathCUSTOM_LAUNCHERS_PATHquery_existsmake_directory_with_parentsr(   ospathjoinOLD_CUSTOM_LAUNCHERS_PATHexists)r@   	directoryir#   rt   oldPaths         rD   get_custom_pathzEditorDialog.get_custom_path   s    ))*?@	%%d+11$7.Q7*DD77<< 5t<Dggll#<dCG77>>$'w0GTz!AA rF   c                 T   | j                         \  }}| j                  j                         }| j                  j                         }| j                  j                         }t        |d      }ddd|z   dz   d|z   dz   d|z   dz   g}|j                  |       |j                          |S )Nzw+z[Desktop Entry]
zType=Application
zName=
zExec=zIcon=)r{   r   r9   r   r   open
writelinesclose)r@   	file_name	file_pathrZ   r[   r\   _file
write_lists           rD   re   z%EditorDialog.write_custom_application   s    #335	9  ))+$$--/((113	Yt$'(<goPT>TU\_fUfimUmnu  yB  oB  EI  oI  J
$rF   N)r   )__name__
__module____qualname__rE   r5   r6   rS   r8   rP   r7   r>   rc   r`   r{   re   rH   rF   rD   r
   r
      sB    -^*.
S&A, DrF   r
   c                       e Zd Zd Zy)r   c                    || _         d | _        d | _        d | _        d | _        t
        j                  j                  t        |      }t
        j                  j                  t        |      }t
        j                  j                  |      r|| _        nSt
        j                  j                  |      r|| _        n,t
        j                  j                  d|z         r
d|z   | _        | j                  rt        | j                  d      | _        | j                  rR| j                  j                         }t        |      dk(  rn(|j                  d      dk(  r;d|vr7|j!                  dd      j!                  dd      j!                  dd      | _        |j                  d	      dk(  rG|j!                  d	d      j!                  d
d      j!                  dd      j!                  dd      | _        |j                  d      dk(  r7|j!                  dd      j!                  dd      j!                  dd      | _        | j                  r| j                  r| j                  rn| j                  rR| j                  sd| _        | j                  sd| _        | j                  sd| _        | j                  j#                          y y )Nz/usr/share/applications/rr   Name[r   =r}   Icon Execzapplication-x-executabler   )r   _pathr\   rZ   r[   rs   rt   ru   rp   rv   rw   r~   r   readlinelenfindreplacer   )r@   r   custom_pathold_custom_pathlines        rD   rE   zApplication.__init__   s   "

ggll#8)D'',,'@)L77>>+&$DJWW^^O,(DJWW^^6BC3i?DJ::djj#.DJ**zz**,t9a<99V$)s$!%fR!8!@!@R!H!P!PQUVX!YDJ99V$)%)\\&%<%D%DS%L%T%TUXY[%\%d%deijl%mDN99V$)#'<<r#:#B#B3r#J#R#RSWXZ#[DL>>djjT\\ **" >>!;::*
<<!JJ3 rF   N)r   r   r   rE   rH   rF   rD   r   r      s    )rF   r   __main__r   )sysos.pathrs   girequire_versiongi.repositoryr   r   r   r    r&   rt   
expanduserHOME_DIRru   get_user_data_dirrp   rv   r-   r
   r   r   r   argvr   rH   rF   rD   <module>r      s      	   5%   ( (
*77c"3&%;T%;%;%=zK\] $'CC \ \ \~* *X z
388}qchhqk*	 rF   