
    ?g\                         d dl Z  e j                  dd       d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZ dZdZd	Z G d
 d      Zy)    NGtkz3.0)Gior   )SidePage)GSettingsSwitchSettingsLabelSettingsPageSettingsRevealerSettingsWidgetSwitchzorg.cinnamon.desktop.privacyzremember-recent-fileszrecent-files-max-agec                   N    e Zd ZdZ ed      ZdZd Zd Zd Z	d Z
d Zd	 Zd
 Zy)ModuleprivacyzCinnamon privacy settingsprefsc                     t        d      }t        t        d      d|||       }|| _        t        j                  t
              | _        d | _        y )Nzprivacy, recent, gtk, privatePrivacyz
cs-privacy)module)schema)_r   sidePager   SettingsPRIVACY_SCHEMAsettings	nm_client)selfcontent_boxkeywordsr   s       ;/usr/share/cinnamon/cinnamon-settings/modules/cs_privacy.py__init__zModule.__init__   sB    45AiL,+VZ[ N;    c                     	 t        j                  dd       ddlm} |j                  j                         }t        |d      r|| _        y y # t        $ r Y y w xY w)NNMz1.0r   )r!    connectivity_check_get_available)	girequire_versiongi.repositoryr!   Clientnewhasattrr   
ValueError)r   r!   r   s      r   _init_nm_clientzModule._init_nm_client   sU    		tU+(		I y"DE!* F 		s   A	A 	AAc                 	   | j                   st        d       t               }| j                  j	                  |       t        dt        t              }|j                  j                  dt        d      z         |j                          |j                  |       |j                  t        d      t        t              }t        t        d            | _        | j                  j                   j#                  d| j$                         |j'                  | j                         t)               }t+        t        d            }|j-                  |d	d	d
       t.        j0                  j3                  ddd      | _        | j4                  j7                  d
       | j4                  j9                  dd       |j;                  | j4                  d	d	d
       t=               | _        t/        j@                  t.        jB                  jD                        }|j                  t/        jF                  t.        jB                  jH                               t/        jJ                         }t/        jL                         }|j                  |       |j                  |       |j                  |       | j>                  j                  |       |jN                  j                  | j>                         | jP                  jS                  tT              }	|	dk(  r\| j                  j                   jW                  d       | j>                  jY                  d	       | j4                  j[                  d       nu| j                  j                   jW                  d	       | j>                  jY                  d       |	d
k(  r | jP                  j]                  tT        d       | j_                          | ja                          | jb                  | jb                  je                         r|jg                  t        d            }
t        t        d            }|j                   jW                  | jb                  ji                                |j                   j#                  d| jj                         |
j'                  |       |
jm                  t        d             y y y y )NzLoading Privacy module z	<b>%s</b>z Remember recently accessed fileszRecent fileszNever forget old filesznotify::activez$Number of days to remember old filesFr   g      ?g     v@   
   )orientationT   zInternet connectivityzCheck connectivityzCheck that network connections can reach the Internet. This makes it possible to detect captive portals, but also generates periodic network traffic.)7loadedprintr   r   
add_widgetr   r   GTK_RECENT_ENABLE_KEYlabel
set_markupr   fill_rowaddadd_reveal_sectionr   indefinite_switchcontent_widgetconnecton_indefinite_toggledadd_rowr
   r   
pack_startr   
SpinButtonnew_with_rangespinner
set_digitsset_incrementspack_endr	   revealerBoxOrientationVERTICAL	Separator
HORIZONTALListBox
ListBoxRowboxr   get_intGTK_RECENT_MAX_AGE
set_activeset_reveal_child	set_valueset_intbind_spinnerr*   r   r"   add_sectionconnectivity_check_get_enabledon_connectivity_toggledadd_note)r   pageswitchr   widgetr6   vboxlist_boxrow	start_agesectionconnectivity_switchs               r   on_module_selectedzModule.on_module_selected&   sg   {{*+>DMM$$T*$R9NOFLL##K!4V2W$WXOOHHV..q/@.RghH%+A.F,G%HD"""1199:JDLfLfgT334#%F!!$J"KLEeUE15>>88eSIDLLL##A&LL''2.OODLL%:,.DM77s'?'?@DHHS]]s/I/IJK{{}H.."CGGFOLLHHXMMd#LLT]]+--.@AIB&&55@@F..u5&&r*&&55@@G..t4>MM))*<bA!!#  "~~)dnn.].]._**1-D+EF&,Q/C-D&E##22==dnn>k>k>mn#22::;KTMiMij 34    ${  "|  } /`)e r   c                     | j                   j                  t        | j                  dt        j
                  j                         y Nvalue)r   bindrQ   rC   r   SettingsBindFlagsDEFAULTr   s    r   rV   zModule.bind_spinnera   s+    -t||WcF[F[FcFcdr   c                     | j                   j                  t        | j                  dt        j
                  j                  t        j
                  j                  z         y rf   )r   rh   rQ   rC   r   ri   GETGET_NO_CHANGESrk   s    r   unbind_spinnerzModule.unbind_spinnerd   sB    
 	-t||W0044s7L7L7[7[[	]r   c                    |j                         }| j                  j                         }|rL| j                  j	                  d       | j                          | j                  j                  t        d       y | j                  j	                  d       | j                  j                  t              dk  r%|dkD  r | j                  j                  t        |       | j                          y )NFr0   Tr-   r   )
get_activerC   	get_valuerG   rS   ro   r   rU   rQ   rP   rV   )r   r]   gparamactivecur_vals        r   r>   zModule.on_indefinite_toggledl   s    ""$,,((*MM**51!MM!!"4b9MM**40}}$$%781<Q;MM))*<gFr   c                 Z    |j                         }| j                  j                  |       y )N)rq   r   connectivity_check_set_enabled)r   r]   rs   rt   s       r   rY   zModule.on_connectivity_toggled{   s"    ""$55f=r   N)__name__
__module____qualname__namer   commentcategoryr   r*   rd   rV   ro   r>   rY    r   r   r   r      s>    D+,GH
9}ve] >r   r   )r#   r$   r%   r   r   SettingsWidgetsr   xapp.GSettingsWidgetsr   r   r   r	   r
   r   r   r5   rQ   r   r~   r   r   <module>r      sC    	   5%   " $ x x// + o> o>r   