
    |~gK'                        d dl m Z d dlZd dlmZmZmZmZmZ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 d d	lmZ d d
lmZ d dlmZmZ d dlZ ej8                  dd       d dlmZ d dlmZ d dlm Z  erd dl!m"Z"  G d d      Z#y)    )gettextN)DictTupleTYPE_CHECKINGAnyOptionalSequence)Adapter)Device)Manager)ManagerDeviceList)ManagerDeviceMenu)show_about_dialog)WEBSITE)launchadapter_path_to_nameGtkz3.0)r   )GLib)Gio)Bluemanc            
       4   e Zd ZddZdej
                  deddfdZdej                  deddfd	Z
d
edee   dej                  ddfdZdededededdf
dZdej
                  deddfdZdee   deddfdZdededdfdZddZdej0                  ddfdZy)ManagerMenuc                     | _         t        j                  d       _        i  _        g  _        d _         j                   j                  j                  dt        j                         _         j                   j                  j                  dt        j                         _         j                   j                  j                  dt        j                         _         j                   j                  j                  dt        j                         _        |j                  j                  dt        j                        }|j!                  d	d
        |j                  j                  dt        j                        } j                   j"                  J  j                   j"                  j%                         }t'        |t        j(                        sJ ||j!                  d	fd       |j                  j                  dt        j*                        } j                   j                  j-                  d|dt        j.                  j0                         |j                  j                  dt        j*                        } j                   j                  j-                  d|dt        j.                  j0                         |j                  j                  dt        j*                        } j                   j                  j-                  d|dt        j.                  j0                         d  _        |j                  j                  dt        j*                         _        |j                  j                  dt        j*                         _         j                  d   }|dk(  rd j4                  j8                  _        nd j6                  j8                  _        |j                  j                  dt        j*                         _         j                  d   dk(  rd j<                  j8                  _        nd j<                  j8                  _        |j                  j                  dt        j                        }	|	j!                  d	 j>                         |j                  j                  dt        j                        }
|
j!                  d	d        |j                  j                  d t        j                        x _         }|j!                  d	 fd!       |j                  j                  d"t        j                         _!         jB                  j!                  d	 fd#       |j                  j                  d$t        j                        }|j!                  d	 fd%       tE                _#         jF                  jI                  d& jJ                          jF                  jI                  d' jL                         |jN                  j!                  d( jP                          jF                  jS                         D ]"  } jK                  d |jU                                $  j                  j!                  d) jV                          j4                  j!                  d	 jX                  d        j6                  j!                  d	 jX                  d*        j<                  j!                  d	 jX                  d+       y ),Nzorg.blueman.general)	schema_id   item_adapteritem_device	item_view	item_helpreportactivatec                 (    t        dt         d      S )Nz	xdg-open z/issues)r   r   )xs    A/usr/lib/python3/dist-packages/blueman/gui/manager/ManagerMenu.py<lambda>z&ManagerMenu.__init__.<locals>.<lambda>(   s    &9WIW9U2V     helpc                 6    t        dt        d      z         S )NzBlueman zDevice Manager)parent)r   _)r#   windows    r$   r%   z&ManagerMenu.__init__.<locals>.<lambda>/   s    0A*qQaObBbkq0r r&   show_tb_itemzshow-toolbaractiveshow_sb_itemzshow-statusbarhide_unnamed_itemhide-unnamedsort_name_itemsort_added_itemsort-byaliasTsort_descending_item
sort-order	ascendingFplugins_itemservices_itemc                  .    t        dt        d            S )Nzblueman-serviceszService Preferences)name)r   r*   )argss    r$   r%   z&ManagerMenu.__init__.<locals>.<lambda>P   s    ?QXYZoXp8q r&   search_itemc                 8    j                   j                         S N)bluemaninquiryr#   selfs    r$   r%   z&ManagerMenu.__init__.<locals>.<lambda>S   s    $,,2F2F2H r&   
prefs_itemc                 8    j                   j                         S r?   )r@   adapter_propertiesrB   s    r$   r%   z&ManagerMenu.__init__.<locals>.<lambda>V   s    T\\=\=\=^ r&   	exit_itemc                 8    j                   j                         S r?   )r@   quitrB   s    r$   r%   z&ManagerMenu.__init__.<locals>.<lambda>Y   s    0A0A0C r&   zadapter-addedzadapter-removedzdevice-selectedchanged	timestamp	sort-type)-r@   r   SettingsConfigadapter_items_adapters_group_insert_adapter_item_posbuilder
get_widgetr   MenuItemr   r   r   r   ImageMenuItemconnectr+   get_toplevel
isinstanceWindowCheckMenuItembindSettingsBindFlagsDEFAULTdevice_menu_sort_alias_item_sort_timestamp_itempropsr-   _sort_type_item_on_plugin_dialog_activateSearch_adapter_settingsr   _managerconnect_signalon_adapter_addedon_adapter_removedListon_device_selectedget_adaptersget_object_path_on_settings_changed_on_sorting_changed)rC   r@   report_item	help_itemwidgetitem_toolbaritem_statusbaritem_unnamedsort_configitem_pluginsitem_servicesr=   rG   adapterr+   s   `             @r$   __init__zManagerMenu.__init__   s   ll-BCKM<>()% LL00;;NCLLY<<//::=#,,W--88cllS--88cllSoo003;L;LMJ(VWOO..vs7H7HI	||""...$$113&#**---*&rs11.#BSBST  xI^I^IfIfg 33NCDUDUV  !1>8SMbMbMjMjk112EsGXGXY  xI^I^IfIfg8< ' : :;KSM^M^ _$+OO$>$>?PRURcRc$d!kk),'!15D!!''.59D%%++2&99:PRURcRcd;;|$305D  &&-04D  &&-11.#BSBSTZ)H)HI22?CDUDUVj*qr$+OO$>$>}cN_N_$``kJ(HI!(!;!;L#J[J[!\&&z3^_OO..{C<M<MN	*&CD	$$_d6K6KL$$%68O8OP.0G0GH}}113 	CG!!$(?(?(AB	C 	It'@'@A%%j$2J2JGT!!))*d6N6NP[\$$Z1I1I;Wr&   btnsort_optreturnNc                 &   |dk(  r&|j                   j                  rd| j                  d<   y |dk(  r&|j                   j                  rd| j                  d<   y |dk(  r6|j                   j                  rd| j                  d<   y d| j                  d<   y y )Nr4   r3   rK   rL   
descendingr6   r7   )ra   r-   rN   )rC   r{   r|   s      r$   ro   zManagerMenu._on_sorting_changedi   s|    w399#3#3%,DKK	"$)9)9%0DKK	"$yy,8L),7L) %r&   settingskeyc                    ||   }|dk(  r|dk(  r<| j                   j                  j                  s_d| j                   j                  _        y |dk(  r=| j                  j                  j                  sd| j                  j                  _        y y y y |dk(  r|dk(  r<| j                  j                  j                  sYd| j                  j                  _        y | j                  j                  j                  sd| j                  j                  _        y y y |dk(  rDt        j                  d	       | j                  j                  j                  j                          y y )
Nr3   r4   TrK   rL   r7   Fr0   refilter)r_   ra   r-   r`   rb   loggingdebugr@   rj   filterr   )rC   r   r   values       r$   rn   z ManagerMenu._on_settings_changedu   s)   ),,22999=D))//6+%0066===AD--33: > & :
 K#++11888<D((..5++11888=D((..5 9 9
 N"MM*%LL$$--/ #r&   _lstdevice	tree_iterc                 v    |r|rd j                   j                  _         j                  @t	         j
                         _         j                   j                   j                         y dt        f fd}t        j                  |t        j                         y d j                   j                  _        y )NTr}   c                  V     j                   J  j                   j                          y)NF)r^   generaterC   s   r$   idlez,ManagerMenu.on_device_selected.<locals>.idle   s*    ++777$$--/ r&   )priorityF)r   ra   	sensitiver^   r   r@   set_submenuboolr   idle_addPRIORITY_LOW)rC   r   r   r   r   s   `    r$   rk   zManagerMenu.on_device_selected   s    /3D"",'#4T\\#B   ,,T-=-=>!d ! dT->->? 05D"",r&   _adapterr;   r   pathc                 $   |dk(  s|dk(  r$| j                   |   d   }|j                  |       y |dk(  rG| j                  r:|rd| j                  j                  _        y d| j                  j                  _        y y |dk(  r| j                          y y )NNameAliasr   DiscoveringFTPowered)rO   	set_labelrd   ra   r   _update_power)rC   r   r;   r   r   items         r$   on_adapter_property_changedz'ManagerMenu.on_adapter_property_changed   s    6>TW_%%d+A.DNN5!]"{{27DKK%%/26DKK%%/	 
 Y  r&   menuitemadapter_pathc                    |j                   j                  r| j                  j                  j                  J || j                  j                  j                  j                         k7  r`t        j                  d|        t        |      | j                  j                  d<   | j                  j                  j                  |       y y y )Nz	selected zlast-adapter)ra   r-   r@   rj   r
   rm   r   infor   rN   set_adapter)rC   r   r   s      r$   on_adapter_selectedzManagerMenu.on_adapter_selected   s    >>  <<$$,,888t||0088HHJJy786J<6X##N3!!--l; K !r&   rf   c                 4   t        |      }| j                  j                         }t        |t        j
                        sJ t        j                  j                  | j                  |j                               }|j                          |j                         | _        |j                  d| j                  |      | _        |j                  d| j                         | _        |j%                  || j&                         | xj&                  dz  c_        ||f| j(                  |<   | j*                  j,                  j                   J || j*                  j,                  j                   j/                         k(  rd|j0                  _        | j5                          y )N)obj_pathr!   zproperty-changed   T)r
   r   get_submenurX   r   MenuRadioMenuItemnew_with_labelrP   get_nameshow	get_grouprV   r   _itemhandlerrg   r   _adapterhandlerinsertrQ   rO   r@   rj   rm   ra   r-   r   )rC   rf   r   ry   menur   s         r$   rh   zManagerMenu.on_adapter_added   s8   <0  ,,.$)))  //0D0DgFVFVFXY		#~~/ LLT5M5M|\&556H$JjJjkD$778%%*%,0'?<(||  ((4444<<,,44DDFF $DJJr&   c                    | j                   j                  |      \  }}| j                  j                         }t	        |t
        j                        sJ |j                  | j                         |j                  | j                         |j                  |       | xj                  dz  c_        | j                          y )Nr   )rO   popr   r   rX   r   r   
disconnectr   r   removerQ   r   )rC   rf   r   r   ry   r   s         r$   ri   zManagerMenu.on_adapter_removed   s    **..|<g  ,,.$)))))*4//0D%%*%r&   c                 ~   | j                   | j                   j                          t        d | j                  j	                         D              r7d| j
                  j                  _        d| j                  j                  _        y d| j
                  j                  _        d| j                  j                  _        y )Nc              3   ,   K   | ]  \  }}|d      yw)r   N ).0r*   ry   s      r$   	<genexpr>z,ManagerMenu._update_power.<locals>.<genexpr>   s     Rlq'wy!Rs   TF)	r^   r   anyrO   valuesrd   ra   visiblere   r   s    r$   r   zManagerMenu._update_power   s    '%%'Rd6H6H6O6O6QRR(,DKK%37D""((0(-DKK%38D""((0r&   _itemc                     dt         j                  dt        dt        dd fd}| j                  j                  j                  |       y )N_proxy_res	_userdatar}   c                      y r?   r   )r   r   r   s      r$   cbz2ManagerMenu._on_plugin_dialog_activate.<locals>.cb   s    r&   )result_handler)r   	DBusProxyr   r@   AppletOpenPluginDialog)rC   r   r   s      r$   rc   z&ManagerMenu._on_plugin_dialog_activate   sB    	s}} 	C 	C 	D 	,,B,?r&   )r@   r   )r}   N)__name__
__module____qualname__rz   r   rZ   strro   r   rM   rn   r   r   r   TreeIterrk   r
   r   r   r   r   rh   ri   r   rT   rc   r   r&   r$   r   r      s   NX`
8s'8'8 
8C 
8D 
80S\\ 0 0 0(5'8 5(6BR 5_b_k_k 5pt 5"!G !3 !s !Z] !bf !<C,=,= <S <UY <'): # RV .7 # $ 	9@ @ @r&   r   )$r   r*   r   typingr   r   r   r   r   r	   blueman.bluez.Adapterr
   blueman.bluez.Devicer   blueman.bluez.Managerr   %blueman.gui.manager.ManagerDeviceListr   %blueman.gui.manager.ManagerDeviceMenur   blueman.gui.CommonUir   blueman.Constantsr   blueman.Functionsr   r   girequire_versiongi.repositoryr   r   r   blueman.main.Managerr   r   r   r&   r$   <module>r      s[       F F ) ' ) C C 2 % : 	   5%     ,I@ I@r&   