
    ?g                     H   d dl Z  e j                  dd       d dlmZ d dlmZ d dl d ed      fd	 ed
      fd ed      fd ed      fd ed      fd ed      fgZd ed      fd ed      fd ed      fd ed      fd ed      fgZ	d ed      fd ed      fd  ed!      fd" ed#      fd$ ed%      fd& ed'      fgZ
d$ ed%      fd& ed'      fd( ed)      fd* ed+      fd, ed-      fd. ed/      fd0 ed1      fd2 ed3      fd  ed4      fg	Z ed5       ed6       ed7      d8Z ed9      \	  ZZZZZZZZZ	 ej.                   d< Zd=Zd>Z G d? d@      ZdA Z G dB dCe      Z G dD dEe      Z  G dF dGe      Z!y# e$ r  G d: d;      Zee_        Y Nw xY w)H    N
UPowerGlibz1.0)r   )SidePage)*blankzLock the screensuspendSuspendshutdownShut down immediately	hibernate	HibernateinteractivezAsk what to donothing
Do nothing   z5%
   z10%   z30%2   z50%K   z75%z
30 seconds<   z
60 secondsZ   z
90 secondsx   z	2 minutes,  z	5 minutesiX  z
10 minutesi  z
15 minutesi  z
30 minutesi
  z
45 minutesi  z1 houri   z2 hoursi0*  z3 hoursNeverzPower SaverBalancedPerformance)zpower-saverbalancedperformance	   c                   (    e Zd ZdZdZdZdZdZdZdZ	y)DeviceLevel               r   N)
__name__
__module____qualname__UNKNOWNNONELOWCRITICALNORMALHIGHFULL     9/usr/share/cinnamon/cinnamon-settings/modules/cs_power.pyr    r    ;   s%    r1   r    c                    t        | dz  dz         }|dk(  rt        d      }|S |dk  r+|dk(  rd|z  t        d      z   }|S d|z  t        d	      z   }|S |dz  }|dz  }|dk(  r+|dk(  rd|z  t        d
      z   }|S d|z  t        d      z   }|S |dk(  rO|dk(  r%d|z  t        d
      z   d|z  t        d      z   z   }|S d|z  t        d
      z   d|z  t        d	      z   z   }|S d|z  t        d      z   d|z  t        d	      z   z   }|S )Ng      N@g      ?r   zUnknown timer   r!   z%d minuteminuteshourhoursz %d )int_)time_secondsr5   time_stringr7   s       r2   get_timestringr<   F   sN   <$&#-.G!|'|a< 7?ak9K  !7?a	l:KbLElG!|A: 5=AfI5K 5=AgJ6Kza< 5=1V94'9IAhK9WXK 5=1V94'9IAiL9XYK5=1W:-&72BQy\2QRKr1   z*org.cinnamon.settings-daemon.plugins.powerzorg.cinnamon.SessionManagerc                   h    e Zd ZdZdZ ed      Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd ZddZd Zd Zy)ModulepowerhardwarezManage power settingsc                 X    t        d      }t        t        d      d||d|       | _        y )NzCpower, suspend, hibernate, laptop, desktop, brightness, screensaverzPower Managementzcs-power)module)r9   r   sidePage)selfcontent_boxkeywordss      r2   __init__zModule.__init__s   s+    Z[ #5!6
Hk[]fjkr1   c                    | j                   ry t        d       t        j                  j	                         | _        t        j                  j                  t        j                  t        j                  j                  d       t        j                  j                  d dddd       | _        t        j                  j	                  d      | _        | j                  j#                         D cg c]  }|t$            }}t        j&                  j(                  |v xs t        j&                  j*                  |v | _        | j
                  j/                         | _        t3               | j4                  _        t9               }|j;                  t=        d            }t?        | j
                        \  }}}}}	}
t@        jC                  t@        jD                  jF                        }| j,                  retI               }t@        jK                         }|jM                  dt=        d      z         |jO                  |       t@        jK                         }|jM                  dt=        d	      z         |jO                  |       |jQ                  |d
d
d       |jQ                  |d
d
d       |jS                  |       |jS                  tU        t=        d      tV        ddtX        d|             |jS                  tU        t=        d      tV        ddtX        d|             | j0                  r|jS                  tU        t=        d      tV        dd||             n|jS                  t[        t=        d      tV        dtX        t\        |             |jS                  t[        t=        d      tV        dtX        t\        |             | j0                  r,|jS                  t[        t=        d      tV        d||             |j;                  t=        d            }t@        jC                  t@        jD                  jF                        }|jS                  t[        t=        d      tV        d||             | j0                  r)|jS                  t_        t=        d      tV        d             | j,                  rRt        j`                  dk(  r?t        jb                  dk  r,|jS                  t[        t=        d      tV        d||             |r|	rt_        t=        d       td        d!      | _3        | jf                  ji                  t=        d"             | jf                  jj                  jm                  d#| jn                         |jS                  | jf                         |r|
rt_        t=        d$      td        d%      | _8        | jp                  ji                  t=        d&             | jp                  jj                  jm                  d#| jr                         |jS                  | jp                         t        j                  t        j                  jt                  d       }d }d }d'D ]w  }	 d(|jw                  d)d(      z   }t        j                  j                  |t        j                  j                  d ||d*d       }|jy                  d+|d,      }t        d-|         n |r8t{        ||      }|ji                  t=        d.             |jS                  |       t9               | _>        d
| _?        t@        jC                  t@        jD                  jF                        | _@        | j                          | j                  jm                  d/| j                         t        j                  j                  t        j                  t        j                  j                  d       t        j                  j                  d ddd0d       }	 |j                         }| j4                  jO                  | j4                  j6                         | j4                  j6                  j                  |d1t=        d2             | j~                  r:| j4                  j6                  j                  | j|                  d3t=        d4             t9               }| j4                  j6                  j                  |d5t=        d6             t@        jC                  t@        jD                  jF                        }|j;                  t=        d7            }|jS                  t        ||t=        d7                   |jS                  t_        t=        d8      tV        d9             |j                  t[        t=        d:      tV        d;t        t\        |      tV        d9       |j                  t[        t=        d<      tV        d=t        t\        |      tV        d9       t        j                  j                  t        j                  t        j                  j                  d       t        j                  j                  d ddd>d       }	 |j                         }|j;                  t=        d?            }|jS                  t        ||t=        d@                   y c c}w #  Y [xY w# t        j                  $ r"}t        dA|j                  z         Y d }~y d }~ww xY w# t        j                  $ r}t        dB|j                  z         | j~                  r| j4                  jO                  | j4                  j6                         | j4                  j6                  j                  |d1t=        d2             | j4                  j6                  j                  | j|                  d3t=        d4             n | j4                  jO                  |       Y d }~y Y d }~y d }~ww xY w)CNzLoading Power modulez!org.cinnamon.SettingsDaemon.Powerz"/org/cinnamon/SettingsDaemon/Powerzorg.cinnamonzPower options)modez	<b>%s</b>zOn A/C powerzOn battery powerFr   z%Turn off the screen when inactive forzsleep-display-aczsleep-display-batteryr8   )valtype
size_groupzSuspend when inactive forzsleep-inactive-ac-timeoutzsleep-inactive-battery-timeoutzWhen the lid is closedzlid-close-ac-actionzlid-close-battery-action)rL   zExtra optionsz When the power button is pressedzbutton-powerz>Perform lid-closed action even with external monitors attachedz'lid-close-suspend-with-external-monitorc   z"When the battery is critically lowzcritical-battery-actionzEnable Hybrid Sleepzprefer-hybrid-sleepz"Replaces Suspend with Hybrid Sleepznotify::activezEnable Hibernate after suspendzsuspend-then-hibernatezJFirst suspend the machine and hibernate it after a certain amount of time.)znet.hadess.PowerProfilesz$org.freedesktop.UPower.PowerProfiles/.zorg.freedesktop.DBus.Properties(ss)Profilesz Found power profiles on Dbus at zlPower mode controls the power usage of your computer. It can impact performance, battery life and fan noise.zg-properties-changedz(org.cinnamon.SettingsDaemon.Power.Screenr?   Power	batteries	Batteries
brightness
BrightnesszScreen brightnessz$On battery, dim screen when inactivezidle-dim-batteryzBrightness level when inactivezidle-brightnesszDim screen after inactive forzidle-dim-timez*org.cinnamon.SettingsDaemon.Power.KeyboardzKeyboard backlightzBacklight brightnessz&Power module no keyboard backlight: %sz.Power module brightness page not available: %s)Kloadedprintr   Clientnew	up_clientGio	DBusProxynew_syncbus_get_syncBusTypeSESSIONDBusProxyFlagsr*   csd_power_proxySettingssettings
GetDevicesUP_TYPE
DeviceKindBATTERYUPShas_batteryget_lid_is_presenthas_lidSettingsStackrD   stackSettingsPageadd_sectionr9   get_available_optionsGtk	SizeGroupSizeGroupMode
HORIZONTALSettingsWidgetLabel
set_markup
add_widgetpack_endadd_rowGSettings2ComboBox
CSD_SCHEMASLEEP_DELAY_OPTIONSGSettingsComboBoxr8   GSettingsSwitchMAJOR_VERSIONMINOR_VERSION
CSM_SCHEMAhybrid_switchset_tooltip_textcontent_widgetconnecton_hybrid_toggled
sth_switchon_sth_toggledSYSTEMreplaceGetPowerModeComboBoxbattery_pageshow_battery_pagebattery_label_size_groupbuild_battery_pageGetPercentage
add_titledBrightnessSlideradd_reveal_rowIDLE_BRIGHTNESS_OPTIONSIDLE_DELAY_OPTIONSGLibErrormessage)rE   xdevice_types
power_pagesectionlid_optionsbutton_power_optionscritical_optionscan_suspendcan_hybrid_sleepcan_hibernaterL   headerlabel_aclabel_battery
connectionproxyprofiles	dbus_name	dbus_pathcomborU   pagees                           r2   on_module_selectedzModule.on_module_selectedw   s	   ;;$%#**..0"}}55S[[00$7##/0/  ((8,0,@,@,K,K,MNq'
NN%0088LHuJLaLaLeLeiuLu~~88:+o "^
((?);< mB  CG  CQ  CQ  mRi)+;[JZ\i]](9(9(D(D]E
#%Fyy{Ha.? ?@!!(+IIKM$$[15G3H%HI!!-0OOM5%;OOHeUA6OOF#OO.q1X/Y[egy  |S  Uh  rw  DN  O  POO.q1L/Mz[v  yY  [n  x}  JT  U  V|| 215M3NPZ\q  tN  P[  hr  !s  t OO-a0W.XZdfx  {N  X[  hr  s  tOO-a0K.LjZu  xK  UX  eo  p  q|| 1!4L2Mz[pr}  KU  !V  W((?);<]](9(9(D(D]E
)!,N*OQ[]k  nB  OY  Z  	[<<OOOA.n,oq{  ~g  h  i
 8 8A =*BZBZ^`B`OO-a0T.UWac|  O  \f  g  h+!03H1I:Wl!mD//2V0WX--556FH^H^_OOD../=-a0P.QS]_wxDOOO,,Q/{-|}OO**223CTEXEXYOODOO, %%ckk&8&8$?
] 		I)"3"3C"==	..z3;M;M;R;RTX%y2SUY[ 99VY
C8DE		 %eYAE""1  &T  $U  VOOE" )N!&(+c6G6G6R6R(S%!$$%;T=T=TU&&S[[00$7##/06-	],,.J MM$$T]]%8%89MM**:w'
K%%##..t/@/@+qQ\~^>DMM**4qOC,=,=,H,HIJ&&q)<'=>GOO,WeQ?R=STUOOOA.T,UWacuvw""#4Q7W5XZdfw  zQ  [^  ku  $v  xB  DV  W""#4Q7V5WYcet  wI  SV  cm  $n  pz  |N  OMM**3+;+;CKK<O<OQU+V+.+=+=+B+B+/+N+O+W+/1E]"002
 **1-A+BC 0%CYAZ [\q ObD :: L>JKKLO zz 	5BQYYNO%%(()<)<=##..z7AgJO##..t/@/@+qQ\~^((44 _	5sD   *j%A3j*0k* j2 *j/2k'k""k'*o%=Co  o%c                 z    |j                         }|r)t        | d      r| j                  j                  d       y y y )Nr   F)
get_activehasattrr   	set_valuerE   widgetgparamactives       r2   r   zModule.on_sth_toggled$  s7    ""$gdO4((/ 56r1   c                 z    |j                         }|r)t        | d      r| j                  j                  d       y y y )Nr   F)r   r   r   r   r   s       r2   r   zModule.on_hybrid_toggled)  s5    ""$gdL1OO%%e, 26r1   c                    i | _         | j                  j                  d      }|D ]&  }	 |j                  d      \  }}|| j                   |<   ( | j                  j                         D ]  }|j                           d }d }| j                  j                         }	d}
d}d}d}|	D ]N  }|t           t        j                  j                  k(  s(|t           t        j                  j                  k(  sMd}
P |	D ]  }|t           t        j                  j                   k(  r)|t           t        j                  j                  k(  rq|
ro|sL| j                  j#                  t%        d            }|j'                  | j)                  |             d| _        |j'                  | j)                  |             |t           t        j                  j,                  k(  rQ|
sO|s$| j                  j#                  t%        d            }|j'                  | j/                  |             d| _        3|sL| j                  j#                  t%        d            }|j'                  | j1                  |             d| _        n |j'                  | j1                  |             |t           t        j                  j2                  k(  rd}|t           t        j                  j4                  k(  rd}d} |s|s|r| j                  j#                  t%        d            }|s|r)|j'                  t7        t%        d      t8        d	             |s|r)|j'                  t7        t%        d
      t8        d             |r)|j'                  t7        t%        d      t8        d             | j                  j;                         }| j                  j=                          | j                  j?                  |       y #  Y xY w)Ndevice-aliases:=FTrT   DeviceszLow battery notificationszFor wireless keyboardz power-notifications-for-keyboardzFor wireless mousezpower-notifications-for-mousezFor other connected devicesz%power-notifications-for-other-devices) aliasesre   get_strvsplitr   get_childrendestroyrc   rf   rg   r   rh   rj   UP_STATEDeviceStateDISCHARGING
LINE_POWERrq   r9   r|   set_device_ups_primaryr   ri   set_device_battery_primaryadd_battery_device_secondaryKEYBOARDMOUSEr   r~   get_visibleshow_allset_visible)rE   argsdevice_aliasesalias	device_iddevice_nicknamer   secondary_settingsprimary_settingsdevicesups_as_primaryhave_keyboard
have_mouse
have_otherdevicenotification_settingsvisibles                    r2   r   zModule.build_battery_page.  s   //0@A# 	E/4{{4/@,O*9Y'	 ''446 	FNN	 " &&113

  	&Fg*"7"7";";;x@PT^TjTjTvTv@v!%	&  	&Fg*"7"7"B"BBJ$9$9$=$==.''+'8'8'D'DQ{^'T$$,,T-H-H-PQ-1D*$,,T-H-H-PQJ$9$9$A$AA.''+'8'8'D'DQ{^'T$ (()H)H)PQ)-&))-):):)F)Fq|)T&&..t/P/PQW/XY-1D*&..t/P/PQW/XY'?j&;&;&D&DD$(MG_
(=(=(C(CC!%J!%J7	&: J*$($5$5$A$A!D_B`$a!
%--oa@W>XZd  gI  /J  KZ%--oa@T>UWa  dC  /D  E%--oa@]>^`j  mT  /U  V ##//1""$%%g.Is   #O--O2c                 ~   |t            }|t           }|t           }|t           }|t           }|t
           }|t           }d }	|dkD  rkt        |      }
|t        j                  j                  k(  r#|dk  rt        d      |
z  }	nt        d      |
z  }	nyt        j                  j                  |      }	nY|t        j                  j                  k(  r|dk  rt        d      }	n+t        d      }	nt        j                  j                  |      }	t        d      }|dk7  s|dk7  r|d	|}| j                  |d
||||	      }|S )Nr      zCaution low UPS, %s remainingzUsing UPS power - %s remainingzCaution low UPSzUsing UPS powerrj     battery)UP_IDUP_PERCENTAGEUP_BATTERY_LEVELr   
UP_SECONDS	UP_VENDORUP_MODELr<   r   r   r   r9   Devicestate_to_stringcreate_battery_rowrE   r   r   
percentagebattery_levelstatetimevendormodeldetailsr;   descr   s                r2   r   zModule.set_device_ups_primary|  s7   5M	M*
/0x j!	"x !8(.K
..:::? ?@;NG @AKOG$++;;EB
..:::? 12G 12G$++;;EBxB;&B,$e,D((ItZQ^`ghr1   c                    |t            }|t           }|t           }|t           }|t           }|t
           }|t           }d }	|dkD  rt        |      }
|t        j                  j                  k(  s|t        j                  j                  k(  rt        d      |
z  }	n|t        j                  j                  k(  s|t        j                  j                  k(  r%|dk  rt        d      |
z  }	nFt        d      |
z  }	n6t        j                  j!                  |      }	n|t        j                  j                  k(  rt        d      }	n|t        j                  j                  k(  rt        d      }	n|t        j                  j                  k(  rt        d      }	n|t        j                  j                  k(  rt        d	      }	nq|t        j                  j"                  k(  rt        d
      }	nH|t        j                  j$                  k(  rt        d      }	nt        j                  j!                  |      }	t        d      }|dk7  s|dk7  r|d|}| j'                  |d||||	      }|S )Nr   z!Charging - %s until fully chargedr   z!Caution low battery, %s remainingz"Using battery power - %s remainingChargingzNot chargingzUsing battery powerzNot dischargingzCharging - fully chargedEmptyBatteryr   r   r   )r   r   r   r   r   r   r   r<   r   r   CHARGINGPENDING_CHARGEr9   r   PENDING_DISCHARGEr   r   FULLY_CHARGEDEMPTYr   r   s                r2   r   z!Module.set_device_battery_primary  s   5M	M*
/0x j!	"x !8(.K
..7775JDZDZDiDi;i?@;N*00<<<I_I_IqIq@q? CD{RG DESG$++;;EB
..777J-*00???N+*00<<<12*00BBB-.*00>>>67*00666G*$++;;EB|B;&B,$e,D((ItZQ^`ghr1   c                    |t            }|t           }|t           }|t           }|t           }|t
           }|t        j                  j                  k(  rd}t        d      }	ng|t        j                  j                  k(  rd}t        d      }	n;|t        j                  j                  k(  rd}t        d      }	n|t        j                  j                  k(  rd}t        d      }	n|t        j                  j                  k(  rd	}t        d
      }	n|t        j                  j                  k(  rd}t        d      }	n|t        j                  j                  k(  rd}t        d      }	nc|t        j                  j                   k(  rd}t        d      }	n8|t        j                  j"                  k(  rd}t        d      }	nd}t        d      }	|dk7  s|dk7  r|d|}	| j%                  |||	||      }
|
S )Nzuninterruptible-power-supplyzUninterruptible power supplyzinput-mousezWireless mousezinput-keyboardzWireless Keyboardzinput-tabletTabletpdazPersonal digital assistantphone	Cellphonezmultimedia-playerzMedia playercomputerComputerzinput-gamingr   r   r   r   )r   rg   r   r   r   r   r   rh   rj   r9   r   r   TABLETPDAPHONEMEDIA_PLAYERCOMPUTERGAMING_INPUTr   )rE   r   r   kindr   r   r   r   	icon_namer   r   s              r2   r   z#Module.add_battery_device_secondary  s   5M	gM*
/0	"x :((,,,6I34DZ**000%I%&DZ**333(I()DZ**111&IX;DZ**...I12DZ**000I[>DZ**777+I^$DZ**333"IZ=DZ**777&IiLD!IiLDB;&B,$e,D((ItZQ^_r1   Nc                    || j                   v r| j                   |   }t               }t        j                  t        j                  j
                        }t        j                  t        j                  j                        }	t        j                  t        j                  j                  d      }
t        j                  j                  |t        j                  j                        }t        j                         }|j                  |       |j                  d| j                  |       |
j                  |ddd       |
j                  |ddd       | j                   j#                  |
       |	j                  |
ddd       |t$        j&                  j(                  k(  rwt        j+                         }|j-                  dt/        |      z         |j1                  dd	       |	j                  |ddd       t        j                  t        j                  j
                        }t        j3                         }|j5                  t        j6                  j8                         |j;                  d       |j=                  d
       |j?                  dd       |j?                  dd       |jA                  t        jB                  jD                         |jG                  tI        |d
z               |j                  |ddd       |	j                  |ddd       n8t        j+                  | jK                  |            }|	jM                  |ddd       |j                  |	ddd       |rt        j+                         }|j-                  |       |jO                         jQ                  d       |jS                  t        jB                  jT                         |jM                  |ddd       |j                  |ddd       |S )N)orientation   )r  spacingzfocus-out-eventFr   z%d%%r   rB   r   highr   low   Tz	dim-label)+r   rw   rs   BoxOrientationVERTICALrv   Imagenew_from_icon_nameIconSizeDNDEntryset_textr   on_alias_changed
pack_startr   rz   r   r    r*   rx   ry   r8   set_size_requestLevelBarset_modeLevelBarModeDISCRETEset_min_valueset_max_valueadd_offset_value
set_valignAlignCENTERr   roundbat_level_to_labelr{   get_style_context	add_class
set_halignEND)rE   r   r  r   r   r   r   r   vboxhbox	label_boximageentrylabel	level_box	level_barstatus_labels                    r2   r   zModule.create_battery_row  s   $<<	*D!ww3??#;#;w<ww3??#=#=w>GG(B(BBGO			,,Y8H8HI		t')>)>	JUE5!4UE5!4%%00;	5%3J22777IIKEVc*o56""2r*OOE5%4COO,D,DEIIs//889##A&##B'&&vq1&&ua0  !1!12j2o 67  D$:OOItT1599T%<%<]%KLLMM,ua8eUA.IIKEW%##%//<SYY]]+MM%q1$dA.r1   c                    |t         j                  j                  k(  rt        d      S |t         j                  j                  k(  rt        d      S |t         j                  j
                  k(  rt        d      S |t         j                  j                  k(  rt        d      S |t         j                  j                  k(  rt        d      S y )NzBattery fullzBattery almost fullzBattery goodzLow batteryzCritically low battery)r   r    r/   r9   r.   r-   r+   r,   )rE   levels     r2   r-  zModule.bat_level_to_label0  s    J**///^$$j,,111*++j,,333^$$j,,000]##j,,555-.. 6r1   c                     |j                         | j                  |<   g }| j                  D ]%  }|j                  |d| j                  |          ' | j                  j	                  d|       y )Nr   r   )get_textr   appendre   set_strv)rE   r6  eventr   r   r   s         r2   r  zModule.on_alias_changed<  s`    "'.."2Y\\ 	DENNudll5.ABC	D/9r1   N)r&   r'   r(   namecategoryr9   commentrH   r   r   r   r   r   r   r   r   r-  r  r0   r1   r2   r>   r>   n   sX    DH'(Glk]Z0
-
L/\"H+Z+Z4l
/:r1   r>   c           	         d}d}d}	 t         j                  t         j                  j                  d       }t         j                  j                  |t         j                  j                  d dddd       }|j                         dk(  }|j                         dk(  }|j                         dk(  }	 t         j                  t         j                  j                  d       }t         j                  j                  |t         j                  j                  d dddd       }|xs |j                         dk(  }|xs |j                         dk(  }|xs |j                         dk(  }d	 }d
t        d      fdt        d      fdt        d      fdt        d      fdt        d      fg}dt        d      fd
t        d      fdt        d      fdt        d      fdt        d      fdt        d      fg}dt        d      fdt        d      fdt        d      fg}	|s|||	fD ]  }
 ||
d
        |s|||	fD ]  }
 ||
d        |||	|||fS #  Y xY w#  Y xY w)NFzorg.freedesktop.login1z/org/freedesktop/login1zorg.freedesktop.login1.Manageryeszorg.freedesktop.ConsoleKitz#/org/freedesktop/ConsoleKit/Managerz"org.freedesktop.ConsoleKit.Managerc                 H    | D ]  }|d   |k(  s| j                  |        y  y Nr   )remove)optionsitemoptions      r2   rJ  z%get_available_options.<locals>.removem  s,     	FayD v&	r1   r   r   r	   r
   r   r   r   zLock Screenr   r   r   Ask)r\   r_   r`   r   r]   r^   rb   r*   
CanSuspendCanHibernateCanHybridSleepr9   )r[   r   r   r   r   r   rJ  r   r   r   rK  s              r2   rr   rr   D  s   KM%%ckk&8&8$?
&&##$%, &&(E1**,5 //1U:
%%ckk&8&8$?
&&##(10 "Be&6&6&8E&A%J%*>*>*@E*I+P0D0D0F%0O 
AiL!	Q./0	an%	!M"#	AlO$K 
!M"#	AiL!	Q./0	an%	%!	AlO$ 
Q./0	an%	AlO$ "$8:JJ 	'G7I&	' "$8:JJ 	)G7K(	) ,.>M]_lllu"s   B$I  -B0I  IIc                   <     e Zd ZdZ fdZd ZddZd Zd Z xZ	S )r   r   c                 &   t         t        |           | j                  t        j
                  j                         | j                  d       d | _        || _	        || _
        t        j                         }t        j                  j                  |      | _        | j                  j                  t        j                   j"                         t        j                         | _        t        j                         | _        | j$                  j)                  dd       | j&                  j)                  dd       | j$                  j+                  d       | j&                  j-                  d       | j$                  j/                  d       | j&                  j/                  d       d}	 |j1                         }t        j2                  j5                  t        j
                  j6                  dd|      | _        d}|d|z
  k  rC||z  }| j8                  j;                  |t        j<                  j>                  d        |d|z
  k  rC|| _"        | j8                  jG                  d
       | j8                  jI                  d       |jK                  | j$                  d
d
d       |jK                  | j8                  ddd       |jK                  | j&                  d
d
d       | jK                  | j                  d
d
d       | jK                  |ddd       | j                  jM                  d| jN                         | j8                  jM                  d| jP                         | j8                  jM                  d| jR                         | j8                  jM                  d| jT                        | _+        | jO                          y # t@        jB                  $ rC t        j2                  j5                  t        j
                  j6                  d	d|      | _        Y w xY w)Nr   g      ?g      ?r$   z<i><small>0%</small></i>z<i><small>100%</small></i>r   d   r!   FTg-signalzscroll-eventzchange-valuezvalue-changed),superr   rH   set_orientationrs   r  r  set_spacingtimerr   r   r  rx   rZ   r7  r0  r*  r+  	min_label	max_labelset_alignmentset_margin_rightset_margin_leftry   GetStepScalenew_with_rangerv   r   add_markPositionTypeBOTTOMr   r   stepset_draw_value
set_digitsr   r   on_dbus_changedon_scroll_eventon_change_valueapply_latervalue_changed_id)rE   r   r   r7  r3  re  val	__class__s          r2   rH   zBrightnessSlider.__init__  s   .0S__556

wwyYY]]5)


cii../		$$S$/$$S$/''*&&q)!!"<=!!">?	e==?D"%))":":3??;U;UWXZ]_c"dDCd
"t##,,S#2B2B2I2I4P d
" 	**51&&q)ua8++T4;ua8

E5!4dD!,

:t';';<##ND4H4HI##ND4H4HI $ 3 3 ; ;OTM]M] ^+ zz 	e"%))":":3??;U;UWXZ]_c"dD	es   'BN: :APPc                     d }| j                   rt        j                  | j                          t        j                  d||       | _         y )Nc                 z    | j                   j                  d| j                  j                                d | _        y )Nz(u))r   SetPercentager   	get_valuerY  )rE   s    r2   applyz+BrightnessSlider.apply_later.<locals>.apply  s,    JJ$$UD,?,?,I,I,KLDJr1   r   )rY  r   source_removetimeout_add)rE   r   rs  s      r2   rk  zBrightnessSlider.apply_later  s8    	 ::tzz*%%c5$7
r1   c                     d}t        |      }| j                  }|dk  r%|||z   kD  r||z  }||z   |z
  ||z
  k  r||z   }n|}	 | j                  j                  |       y)Nr   rT  T)r,  re  r   r   )rE   rangescroll_typevaluedataivre  s           r2   rj  z BrightnessSlider.on_change_value  su     %Lyy#g1t8|T	TQ1q5)H%%a(r1   c                     |j                         \  }}}| j                  j                  |j                         || j                  z  z
         y)NT)get_scroll_deltasr   r   rr  re  )rE   r   rA  founddelta_xdelta_ys         r2   ri  z BrightnessSlider.on_scroll_event  sG    "'"9"9";w 	%%f&6&6&87TYY;N&NOr1   c                 F   	 | j                   j                         }| j                  j                  | j                         | j                  j                  |       | j                  j                  | j                         y #  | j                  j                          Y y xY wrB  )	r   r   r   handler_blockrl  r   handler_unblockr   hide)rE   r   rU   s      r2   rh  z BrightnessSlider.on_dbus_changed  sx    	 113J--d.C.CD))*5//0E0EF	 LLs   A?B B rB  )
r&   r'   r(   re  rH   rk  rj  ri  rh  __classcell__rn  s   @r2   r   r     s"    D9v88 r1   r   c                   8     e Zd Zd fd	Zd Zd Zd Zd Z xZS )r}   c	                    t         t        |   |       t        j                  j                  |      | _        || _        || _        i | _	        t        j                  j                  |      | _        |dk(  r$t        j                  t        t              | _        n#t        j                  t         t              | _        d }	|D ]p  }
| j                  j#                  d d       }| j                  j%                  |d|
d          | j                  j%                  |d|
d          || j                  |
d   <   r t        j&                  j)                  | j                        | _        t        j-                         }| j*                  j/                  |d       | j*                  j1                  |dd       || j*                  _        t        j&                  j)                  | j                        | _        t        j-                         }| j4                  j/                  |d       | j4                  j1                  |dd       || j4                  _        | j/                  | j                  ddd       | j7                  | j4                  ddd       | j7                  | j*                  ddd       | j*                  j9                  d| j:                         | j4                  j9                  d| j:                         | j                  j9                  d	| j                  z   | j<                         | j                  j9                  d	| j                  z   | j>                         | j=                          | j?                          |r| jA                  |       y y )
Ndep_keystringr   r!   TtextFchangedz	changed::)!rV  r}   rH   r\   rd   rZ   re   key1key2
option_maprs   rx   r7  	ListStorestrr   r8   insert_beforer   ComboBoxnew_with_modelcontent_widget1CellRendererTextr   add_attributekeycontent_widget2r{   r   on_my_value_changedon_my_setting_changed1on_my_setting_changed2add_to_size_group)rE   r7  schemar  r  rK  rK   r  rL   selectedrM  iterrenderer_textrn  s                r2   rH   zGSettings2ComboBox.__init__
  s    $00A((0		YY]]5)
hsC0DJsC0DJ 	.F::++D$7DJJ  q&)4JJ  q&)4)-DOOF1I&		.  #||::4::F,,.''t<**=&!D#' "||::4::F,,.''t<**=&!D#' 

E5!4d**E4;d**E4;$$Y0H0HI$$Y0H0HIkDII5t7R7RSkDII5t7R7RS##%##%"":. r1   c                 |    |j                         }|*| j                  |   d   | j                  |j                  <   y y rI  )get_active_iterr   re   r  )rE   r   	tree_iters      r2   r  z&GSettings2ComboBox.on_my_value_changed9  s;    **,	 (,

9(=a(@DMM&**% !r1   c                     	 | j                   j                  | j                  | j                  | j                               y #  | j                   j                  d        Y y xY wrB  )r  set_active_iterr  re   r  rE   r   s     r2   r  z)GSettings2ComboBox.on_my_setting_changed1>  L    	7  00tyyAY1Z[	7  006   ?A A!c                     	 | j                   j                  | j                  | j                  | j                               y #  | j                   j                  d        Y y xY wrB  )r  r  r  re   r  r  s     r2   r  z)GSettings2ComboBox.on_my_setting_changed2D  r  r  c                 p    |j                  | j                         |j                  | j                         y rB  )rz   r  r  rE   groups     r2   r  z$GSettings2ComboBox.add_to_size_groupJ  s*    --.--.r1   )r  NN)	r&   r'   r(   rH   r  r  r  r  r  r  s   @r2   r}   r}   	  s    -/^A
77/r1   r}   c                   8     e Zd Zd fd	Zd Zd Zd Zd Z xZS )r   c                 &   t         t        |   |       || _        || _        	 g }|D ];  }|d   }|}	|t
        j                         v r	t
        |   }	|j                  ||	g       = i | _        t        j                  j                  t        d            | _        t        j                  t        t              | _        |D ]p  }
| j                   j#                  d d       }| j                   j%                  |d|
d          | j                   j%                  |d|
d          || j                  |
d   <   r t        j&                  j)                  | j                         | _        t        j-                         }| j*                  j/                  |d       | j*                  j1                  |dd       | j/                  | j                  ddd       | j3                  | j*                  ddd       | j*                  j5                  d	| j6                         | j                  j5                  d
| j8                         | j;                          |r| j=                  |       y y # t>        j@                  $ r"}tC        d|jD                          Y d }~y d }~ww xY w)Nr  Profilez
Power moder   r!   Tr  Fr  rU  z&Power profiles options not available: )#rV  r   rH   r   r   POWER_PROFILESkeysr?  r  rs   rx   rZ   r9   r7  r  r  r   r  r   r  r  r   r  r   r  r{   r   r  rh  on_my_setting_changedr  r   r   rX   r   )rE   r   r   r   r  rL   profiles_optionsprofilerC  r7  rM  r  r  r   rn  s                 r2   rH   zPowerModeComboBox.__init__P  s%   //@
"#	H!# 7y)>..00*40E ''u67 !DOq7DJsC0DJ* 2zz//d;

$$T1fQi8

$$T1fQi8-1q	*	2 #&,,"="=djj"ID002M**=$?--mVQGOODJJua8MM$--udA>''	43K3KLJJz4+?+?@&&(&&z2 zz 	H:199+FGG	Hs   H4I J.JJc                     |j                         }|Z| j                  |   d   }t        j                  j	                  |      }| j
                  j                  d| j                  d|       y y )Nr   z(ssv)ActiveProfile)r  r   r   Variant
new_stringr   Setr   )rE   r   r  r  ry  s        r2   r  z%PowerModeComboBox.on_my_value_changed{  s\    **,	 jj+A.GLL++G4EJJNN7DNNOUK !r1   c                 0    |dk(  r| j                          y y )NPropertiesChanged)r  )rE   r   sendersignalparamss        r2   rh  z!PowerModeComboBox.on_dbus_changed  s    ((&&( )r1   c                    	 | j                   j                  d| j                  d      }| j                  j	                  | j
                  |          y # t        $ r0}t        |       | j                  j	                  d        Y d }~y d }~ww xY w)NrP   r  )r   r   r   r   r  r  	ExceptionrX   )rE   active_profiler   s      r2   r  z'PowerModeComboBox.on_my_setting_changed  sl    	6!ZZ^^FDNNOTN//0OP 	6!H//55	6s   AA 	B&BBc                 :    |j                  | j                         y rB  )rz   r   r  s     r2   r  z#PowerModeComboBox.add_to_size_group  s    ,,-r1   )NN)	r&   r'   r(   rH   r  rh  r  r  r  r  s   @r2   r   r   O  s    )HVL)6.r1   r   )"girequire_versiongi.repositoryr   SettingsWidgetsr   xapp.GSettingsWidgetsr9   POWER_BUTTON_OPTIONSr   r   r   r  rw  r   r   r   rg   UP_ICONr   r   r   r   r    AttributeErrorr<   r~   r   r>   rr   rw   r   r}   r   r0   r1   r2   <module>r     sP   
   < ' $ $ # a!"#)*+,!K.!A&'(,   $L5N5N5N5N  <<<!K.!K.!L/  	!K.!L/!L/	1\?	1\?	1X;	1Y<
AiL'
O
  ]#*]# innohp e	8Wg}hHXZd)"J :
*
S: S:lNm`s ~ s jC/ C/L@. @.k  	)  )J	)s   F F! F!