o
    Oeb2  ã                   @   sB   d dl Z d dlmZ ddlmZ G dd„ dƒZG dd„ deƒZdS )	é    N)ÚGioé   )ÚDialogUaAttachc                   @   s   e Zd Zdd„ ZdS )Ú	UaServicec                 C   s"   || _ || _|| _|| _d| _d S ©NF)Ú
bus_objectÚnameÚentitledÚstatusÚrequest_in_progress)Úselfr   r   r	   r
   © r   úF/usr/lib/python3/dist-packages/softwareproperties/gtk/UbuntuProPage.pyÚ__init__   s
   
zUaService.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s    r   c                   @   s|   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚUbuntuProPagec                    s~  |ˆ_ dˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|j	ˆ_	|j
ˆ_
|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|jˆ_|j dˆj¡ |j dˆj¡ ˆj dˆj¡ˆ_ˆj	 dˆj¡ˆ_ ˆj dˆj!¡ˆ_"ˆj dˆj#¡ˆ_$ˆj dˆj%¡ˆ_&ˆj dˆj'¡ˆ_(d ˆ_)t*j+ ,¡ }|d urÈ| -dd¡}|d urÈt*j. /d¡}| 0d¡rÈ|ˆ_)ˆj)d uræˆj
 dˆj1¡ˆ_2ˆj) dˆj3¡ˆ_4ˆ 3ˆj)d¡ t5 6¡ ‰ ˆ  7d	d
¡ˆ_8dˆ_9i ˆ_:‡ ‡fdd„}‡fdd„}‡fdd„}ˆ  7d	d¡}|j;d|dd |j;d|dd ˆ j<|d	dddd |j=dd}	|	D ]
}
||
|	|
 ƒ q2d S )NFZclickedznotify::activezcom.ubuntu.update-notifierTúshow-livepatch-status-iconZtoggledz#changed::show-livepatch-status-iconúcom.canonical.UbuntuAdvantageú&/com/canonical/UbuntuAdvantage/Managerc                    sd   | dkr|d d ˆ_ n |  d¡r,| d¡}ˆ  d| ¡}t||d |d |d	 ƒˆj| < ˆ ¡  d S )
Nr   ú%com.canonical.UbuntuAdvantage.ManagerÚAttachedú(/com/canonical/UbuntuAdvantage/Services/ú%com.canonical.UbuntuAdvantage.Servicer   ÚNameÚEntitledÚStatus)ÚattachedÚ
startswithÚgetÚ
get_objectr   ÚservicesÚupdate_status)ÚpathZinterfaces_and_propertiesÚ
propertiesr   ©Zbusr   r   r   Úon_interfaces_added[   s   

 z3UbuntuProPage.__init__.<locals>.on_interfaces_addedc                    s    d|v r
ˆ j  | ¡ ˆ  ¡  d S )Nr   )r"   Úpopr#   )r$   Z
interfaces©r   r   r   Úon_interfaces_removedc   s   z5UbuntuProPage.__init__.<locals>.on_interfaces_removedc                    sr   dd„ }|dkr| dkr||dˆ j ƒˆ _ n| d¡r3| dkr3ˆ j| }||d|jƒ|_||d	|jƒ|_ˆ  ¡  d S )
Nc                 S   s   |   |¡}|d u r|}|S ©N)r    )r%   r   ÚdefaultÚvaluer   r   r   Úget_propertyh   s   
zKUbuntuProPage.__init__.<locals>.on_properties_changed.<locals>.get_propertyr   r   r   r   r   r   r   )r   r   r"   r	   r
   r#   )Z	interfaceZchanged_propertiesZinvalidated_propertiesr$   r.   Úservicer)   r   r   Úon_properties_changedg   s   
z5UbuntuProPage.__init__.<locals>.on_properties_changedú/ZInterfacesAddedz"org.freedesktop.DBus.ObjectManager)Údbus_interfaceZInterfacesRemovedZPropertiesChangedzorg.freedesktop.DBus.Propertiesr$   )Zbus_nameZsignal_namer2   Zpath_keyword)>Ú_parentÚ	detachingÚstack_ua_attachÚbox_ua_attachedÚbox_ua_unattachedÚ
box_ua_esmÚswitch_ua_esmÚlabel_ua_esm_errorÚbox_ua_livepatchÚswitch_ua_livepatchÚcheckbutton_livepatch_topbarÚlabel_ua_livepatch_errorÚbox_ua_fipsÚswitch_ua_fipsÚlabel_ua_fips_errorÚbox_ua_fips_updatesÚswitch_ua_fips_updatesÚlabel_ua_fips_updates_errorÚbox_ua_cc_ealÚswitch_ua_cc_ealÚlabel_ua_cc_eal_errorÚbox_ua_cis_toolsÚswitch_ua_cis_toolsÚlabel_ua_cis_tools_errorZbutton_ua_attachZconnectÚon_button_ua_attach_clickedZbutton_ua_detachÚon_button_ua_detach_clickedÚon_ua_esm_changedÚon_ua_esm_changed_handlerÚon_ua_livepatch_changedÚon_ua_livepatch_changed_handlerÚon_ua_fips_changedÚon_ua_fips_changed_handlerÚon_ua_fips_updates_changedÚ"on_ua_fips_updates_changed_handlerÚon_ua_cc_eal_changedÚon_ua_cc_eal_changed_handlerÚon_ua_cis_tools_changedÚon_ua_cis_tools_changed_handlerÚupdate_notifier_settingsr   ZSettingsSchemaSourceÚget_defaultÚlookupZSettingsÚnewZhas_keyÚ'on_checkbutton_livepatch_topbar_toggledÚ/on_checkbutton_livepatch_topbar_toggled_handlerÚ#on_update_notifier_settings_changedÚ+on_update_notifier_settings_changed_handlerÚdbusZ	SystemBusr!   Ú	ua_objectr   r"   Zconnect_to_signalZadd_signal_receiverZGetManagedObjects)r   ÚparentÚsourceZschemaÚsettingsr'   r*   r0   Zobject_manager_objectZobjectsr$   r   r&   r   r   "   sv   


ÿzUbuntuProPage.__init__c                 C   s&   | j  ¡ D ]}|j|kr|  S qd S r+   )r"   Úvaluesr   )r   r   r/   r   r   r   Úget_service|   s
   
ÿzUbuntuProPage.get_servicec           	      C   sH  | j  | j ¡ | jr| j  | j¡ n| j  | j¡ dd„ }dd„ }|  d¡}|| j|ƒ || j	|| j
ƒ |  d¡}|| j|ƒ || j|| jƒ | j | jd uoT| j ¡ ¡ |  d¡}|| j|ƒ || j|| jƒ |  d¡}|| j|ƒ || j|| jƒ |  d	¡}|| j|ƒ || j|| jƒ |  d
¡}|| j|ƒ || j|| jƒ d S )Nc                 S   s$   |   |d uo|jdko|j ¡ d S )NZyes)Úset_sensitiver	   r   )Zboxr/   r   r   r   Úupdate_sensitive‰   s   $z5UbuntuProPage.update_status.<locals>.update_sensitivec                 S   sB   |d ur	|j r	d S |  |¡ |  |d uo|jdk¡ |  |¡ d S )NÚenabled)r   Úhandler_blockÚ
set_activer
   Úhandler_unblock)Úswitchr/   Zhandlerr   r   r   Úupdate_switchŒ   s
   
z2UbuntuProPage.update_status.<locals>.update_switchú	esm-infraÚ	livepatchÚfipsúfips-updatesúcc-ealÚcis)r5   rh   r4   r   Zset_visible_childr6   r7   rg   r8   r9   rN   r;   r<   rP   r=   rY   Ú
get_activer?   r@   rR   rB   rC   rT   rE   rF   rV   rH   rI   rX   )	r   ri   ro   Zesm_infra_serviceZlivepatch_serviceZfips_serviceZfips_updates_serviceZcc_eal_serviceZcis_servicer   r   r   r#   ‚   s2   





zUbuntuProPage.update_statusc                 C   s"   t | jj| jj| jƒ}| ¡  d S r+   )r   r3   Zwindow_mainZdatadirrb   Úrun)r   ÚbuttonZdialogr   r   r   rK   ¬   s   z)UbuntuProPage.on_button_ua_attach_clickedc                    s<   ‡ fdd„}‡ fdd„}ˆ j j||dd dˆ _ˆ  ¡  d S )Nc                      s   dˆ _ ˆ  ¡  d S r   )r4   r#   r   r)   r   r   Úon_reply±   ó   z;UbuntuProPage.on_button_ua_detach_clicked.<locals>.on_replyc                    s   t | ƒ dˆ _ˆ  ¡  d S r   )Úprintr4   r#   ©Úerrorr)   r   r   Úon_error´   s   z;UbuntuProPage.on_button_ua_detach_clicked.<locals>.on_errorr   ©Zreply_handlerZerror_handlerr2   T)rb   ZDetachr4   r#   )r   rx   ry   r~   r   r)   r   rL   °   s
   z)UbuntuProPage.on_button_ua_detach_clickedc                    s~   ˆ   d¡ ˆ |¡‰ˆd u rd S ‡‡fdd„}‡ ‡‡fdd„}| ¡ r-ˆjj||dd n	ˆjj||dd dˆ_ˆ ¡  d S )	NFc                      s   dˆ_ ˆ  ¡  d S r   )r   r#   r   )r   r/   r   r   ry   Â   rz   z3UbuntuProPage.set_service_enabled.<locals>.on_replyc                    s$   t | ƒ ˆ  d¡ dˆ_ˆ ¡  d S )NTF)r{   Úset_visibler   r#   r|   ©Úerror_labelr   r/   r   r   r~   Å   s   
z3UbuntuProPage.set_service_enabled.<locals>.on_errorr   r   T)r€   rg   rv   r   ZEnableZDisabler   r#   )r   Zservice_namern   r‚   ry   r~   r   r   r   Úset_service_enabled½   s   

z!UbuntuProPage.set_service_enabledc                 C   ó   |   d| j| j¡ d S )Nrp   )rƒ   r9   r:   ©r   rn   Zparamr   r   r   rM   Ò   ó   zUbuntuProPage.on_ua_esm_changedc                 C   r„   )Nrq   )rƒ   r<   r>   r…   r   r   r   rO   Õ   r†   z%UbuntuProPage.on_ua_livepatch_changedc                 C   s4   | j  | j¡ | j  d| j ¡ ¡ | j  | j¡ d S ©Nr   )rY   rk   r`   Zset_booleanr=   rv   rm   )r   rx   r   r   r   r]   Ø   ó   z5UbuntuProPage.on_checkbutton_livepatch_topbar_toggledc                 C   s4   | j  | j¡ | j  | j d¡¡ | j  | j¡ d S r‡   )r=   rk   r^   rl   rY   Zget_booleanrm   )r   re   Úkeyr   r   r   r_   Ý   rˆ   z1UbuntuProPage.on_update_notifier_settings_changedc                 C   r„   )Nrr   )rƒ   r@   rA   r…   r   r   r   rQ   â   r†   z UbuntuProPage.on_ua_fips_changedc                 C   r„   )Nrs   )rƒ   rC   rD   r…   r   r   r   rS   å   r†   z(UbuntuProPage.on_ua_fips_updates_changedc                 C   r„   )Nrt   )rƒ   rF   rG   r…   r   r   r   rU   è   r†   z"UbuntuProPage.on_ua_cc_eal_changedc                 C   r„   )Nru   )rƒ   rI   rJ   r…   r   r   r   rW   ë   r†   z%UbuntuProPage.on_ua_cis_tools_changedN)r   r   r   r   rg   r#   rK   rL   rƒ   rM   rO   r]   r_   rQ   rS   rU   rW   r   r   r   r   r       s    Z*r   )ra   Zgi.repositoryr   r   r   Úobjectr   r   r   r   r   Ú<module>   s
   