
    |~gB                         d dl 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Z	d dl
mZ d dlZ ej                  dd       d dlmZ d dlmZ d d	lmZ  G d
 dej$                        Zy)    N)Optional)Builder)ServicePluginGtkz3.0)r   )GLib)Gioc                   |     e Zd Zd fdZddZddZddZddZded	e	d
e	ddfdZ
dej                  ddfdZ xZS )BluemanServicesreturnNc                     t            d       d  _        t        d       _        t        j                  d       _        dt        dt        f fd}t        j                  t        j                        }|j                  |       |j                          t
        j                   j#                  d	d       }|j%                  d
 fd        j'                  |       y )Nzorg.blueman.Services)application_idzservices-window.uizorg.blueman.general)	schema_id_r   c                 &    j                          y)NFquit)r   selfs    7/usr/lib/python3/dist-packages/blueman/main/Services.pydo_quitz)BluemanServices.__init__.<locals>.do_quit   s    IIK    r   activatec                 $    j                         S Nr   )xyr   s     r   <lambda>z*BluemanServices.__init__.<locals>.<lambda>"   s    diik r   )super__init__windowr   builderr   SettingsConfigobjectboolr   unix_signal_source_newsignalSIGINTset_callbackattachSimpleActionnewconnect
add_action)r   r   sclose_action	__class__s   `   r   r   zBluemanServices.__init__   s    (>?,034ll-BC	v 	$ 	 ''6	w	
''++FD9Z)AB%r   c                    | j                   s| j                  j                  dt        j                        | _         | j                   j                  |        | j                  j                  dt        j                        | _        | j                  j                  dt        j                        | _	        | j                  j                  d| j                         | j                          | j                  j                  d| j                  dt        j                   j"                         | j                   j%                  t        j&                                y )Nr   notebookapplyclickedzservices-last-itempage)r   r    
get_widgetr   ApplicationWindowset_applicationNotebookr2   Buttonb_applyr,   on_apply_clickedload_pluginsr"   bindr   SettingsBindFlagsDEFAULTpresent_with_timeget_current_event_timer   s    r   do_activatezBluemanServices.do_activate%   s    {{,,11(C<Q<QRDKKK''- LL33JMDM<<227CJJGDLLL  D,A,ABKK14==&#J_J_JgJgh%%c&@&@&BCr   c                 j    t         j                  j                  |        | j                  dg d       y )Nzapp.quit)z<Ctrl>wz<Ctrl>qEscape)r   Application
do_startupset_accels_for_actionrC   s    r   rH   zBluemanServices.do_startup3   s%    ""4("":/OPr   c                     t         j                  D cg c]  }|j                          }}d}|D ]#  }|dk(  rd} nt        |t              sJ |xs |}% || j
                  j                  _        y c c}w )NF)r   	instanceson_query_apply_state
isinstancer$   r;   props	sensitive)r   pluginrets
show_applyrets        r   option_changedzBluemanServices.option_changed7   s{    <I<S<ST&++-TT
 	+Cby"
c4(((#*sJ	+ (2$ Us   A2c                 z   t         j                  j                  t        j                  j
                  j                        }g }t        j                  |      D ]W  \  }}}|D ]L  }|j                  d      s|j                  d      r'|j                  d      r9|j                  |dd        N Y |j                          t        j                  |       |D ]  }	 t        j                  d|         t#        j$                         D ]b  }	  ||       }	|j&                  st        j(                  d|        1|j&                  \  }
}|	j+                          | j-                  |	|
|       d y # t        $ r t        j                   d| dd	
       Y w xY w#  t        j                   d| d	
       Y xY w)Nz.pyz.pycz_.pyr   zblueman.plugins.services.zUnable to load z pluginT)exc_infozFailed to create instance of zInvalid plugin info in )ospathdirnamebluemanpluginsservices__file__walkendswithappendsortlogginginfo	importlibimport_moduleImportErrorerrorr   __subclasses____plugin_info__warningon_loadadd_page)r   rZ   r]   rootdirsfilesfrQ   clsinstnameicons               r   r=   zBluemanServices.load_pluginsC   s   www77@@A!# 	,D$ ,::e$ajj.@AJJvDVNN1Qr7+,	, 	W 	PFP''*CF8(LM	P !//1 	0C4y &&"9# ?@"22tdD$/	0  Pxw?$OP =cUCdSs   E2F2$FFF:rt   ru   	icon_namec                     t        j                  ddd      }t        j                  |d      }t        j                  |d      }|j	                  |       |j	                  |       | j
                  j                  |j                  |       y )NT   )vexpandvisiblespacing)labelr{   )rw   r{   )r   BoxLabelImageaddr2   append_pagewidget)r   rt   ru   rw   boxr}   rv   s          r   rn   zBluemanServices.add_page`   sb    ggdD!<		d3yy9d;!!$++s3r   _buttonc                 n    t         j                  D ]  }|j                           | j                          y r   )r   rL   on_applyrU   )r   r   rQ   s      r   r<   z BluemanServices.on_apply_clickedh   s-    #-- 	FOO	r   )r   N)__name__
__module____qualname__r   rD   rH   rU   r=   r   strrn   r   r:   r<   __classcell__)r0   s   @r   r
   r
      sV    &$DQ
20:4] 4# 4# 4$ 4

 t r   r
   )rY   rd   rf   r&   typingr   blueman.main.Builderr   blueman.plugins.servicesr\   blueman.plugins.ServicePluginr   girequire_versiongi.repositoryr   r   r   rG   r
    r   r   <module>r      sM    	     (  7 	   5%     Ycoo Yr   