o
    W9boY                     @   sp   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Z	G d	d
 d
e
ZG dd de
ZdS )    )Gio)GLib)Gtk)	DomainCpu)log   )vmmInspectionaa  
/* Lighter colored text in some wizard summary fields */
.vmm-lighter {
    color: @insensitive_fg_color
}

/* Text on the blue header in our wizards */
.vmm-header-text {
    color: white
}

/* Subtext on the blue header in our wizards */
.vmm-header-subtext {
    color: #59B0E2
}

/* The blue header */
.vmm-header {
    background-color: #0072A8
}
c                   @   sX   e Zd 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S )_SettingsWrapperz
    Wrapper class to simplify interacting with gsettings APIs.
    Basically it allows simple get/set of gconf style paths, and
    we internally convert it to the settings nested hierarchy. Makes
    client code much smaller.
    c                 C   s|   || _ |rt|d}ntj }tj| j || _d| ji| _i | _	| j
 D ]}| j d | }tj||| j|< q(d S )N/ .)_rootr   keyfile_settings_backend_newSettingsBackendget_defaultSettingsnew_with_backend	_settings_settingsmap_handler_maplist_children)selfsettings_idgsettings_keyfilebackendchildchildschema r   -/usr/share/virt-manager/virtManager/config.py__init__/   s   
z_SettingsWrapper.__init__c                 C   s.   | d}d}d|v r|dd\}}||fS )Nr
   r   r   )striprsplit)r   keyvaluesettingskeyr   r   r   
_parse_keyF   s
   
z_SettingsWrapper._parse_keyc                 C   s   |  |\}}| j| |fS N)r%   r   )r   r"   r$   r#   r   r   r   _find_settingsM      z_SettingsWrapper._find_settingsc                 C   d   |  |d }|| jv rdS | jd }d| jdd |ddd  d }tj||| j|< dS )zC
        Initialize per-VM relocatable schema if necessary
        r   Tz.vmr
   r   r   r%   r   r   replacer!   r   r   new_with_pathr   r"   r$   schemapathr   r   r   make_vm_settingsV      

&
z!_SettingsWrapper.make_vm_settingsc                 C   r)   )zE
        Initialize per-conn relocatable schema if necessary
        r   Tz.connectionr
   r   r   r*   r-   r   r   r   make_conn_settingsd   r1   z#_SettingsWrapper.make_conn_settingsc                    sJ   |  |\}} fdd}|jd| |g R i }|| j|< |S )Nc                     s    i S r&   r   )ignoreargscbkwargsr   r   wrapcbt      z+_SettingsWrapper.notify_add.<locals>.wrapcbzchanged::%s)r'   connectr   )r   r"   r6   r5   r7   settingsr8   retr   r4   r   
notify_addr   s
   
z_SettingsWrapper.notify_addc                 C   s   | j |}||S r&   )r   pop
disconnect)r   hr;   r   r   r   notify_removey   s   
z_SettingsWrapper.notify_removec                 C   s   |  |\}}|| S r&   )r'   	get_valueunpack)r   r"   r;   r   r   r   get}   r(   z_SettingsWrapper.getc                 O   s>   |  |\}}|| }|j|t||g|R i |S r&   )r'   rB   get_type_string	set_valuer   Variant)r   r"   r#   r5   r7   r;   fmtr   r   r   set   s   z_SettingsWrapper.setN)__name__
__module____qualname____doc__r   r%   r'   r0   r2   r=   rA   rD   rI   r   r   r   r   r	   (   s    	r	   c                   @   s6  e Zd ZdZdZdZdZdZededede	j
je	jdd	ed
diedededddedededddededede	j
jdiZdZdZdZdZedd Ze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d0d1 Z d2d3 Z!d4d5 Z"d6d7 Z#d8d9 Z$d:d; Z%d<d= Z&d>d? Z'd@dA Z(dBdC Z)dDdE Z*dFdG Z+dHdI Z,dJdK Z-dLdM Z.dNdO Z/dPdQ Z0dRdS Z1dTdU Z2dVdW Z3dXdY Z4dZd[ Z5d\d] Z6d^d_ Z7d`da Z8dbdc Z9ddde Z:dfdg Z;dhdi Z<djdk Z=dldm Z>dndo Z?dpdq Z@drds ZAdtdu ZBdvdw ZCdxdy ZDdzd{ ZEd|d} ZFd~d ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdddZ[dddZ\dddZ]dddZ^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd ZhdddÄZiddń ZjdddǄZkddɄ Zldd˄ Zmdd̈́ Znddτ Zoddф Zpddӄ ZqddՄ Zrddׄ Zsddل Ztddۄ Zudd݄ Zvdd߄ Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd ZdS )	vmmConfigimageisomediafloppymedia
screenshotfsTzLocate or create storage volumezLocate existing storage)enable_createstorage_titlelocal_titledialog_typechoose_buttongsettings_keyrY   FzLocate ISO media volumezLocate ISO mediamedia)rT   rU   rV   rY   zLocate floppy media volumezLocate floppy mediazLocate directory volume)rT   rU   rV   rW   r   r      Nc                 O   s   | j st|i || _ | j S r&   )	_instancerN   )clsr5   r7   r   r   r   get_instance   s   zvmmConfig.get_instancec                 C   s
   t | jS r&   )boolr\   )r]   r   r   r   is_initialized   s   
zvmmConfig.is_initializedc                 C   s   d| _ |j| _d| j  | _|j| _td|j| _|| _| jj	r$| 
d | jjr-| d | jjr6| d d | _|j| _|j| _d| _d| _g | _d | _|   d S )Nzvirt-managerz/org/virt-manager/%s/zorg.virt-manager.virt-managerTFqcow2r   )appnameversion
appversionconf_dirui_dirr	   r   confCLITestOptionsxmleditor_enabledset_xmleditor_enabledenable_libguestfsset_libguestfs_inspect_vmsdisable_libguestfs_keyringdefault_graphicsdefault_graphics_from_configdefault_hvs"default_storage_format_from_configdefault_console_resizeguest_objectscolor_insensitive	_init_css)r   BuildConfigrh   r   r   r   r      s,   


zvmmConfig.__init__c                 C   st   ddl m} |j }t }|td t	 }|
||tj |d\}}|s3td d S | | _d S )Nr   )Gdkzutf-8insensitive_fg_colorz)Didn't find insensitive_fg_color in theme)gi.repositoryrx   Screenr   r   CssProviderload_from_dataCSSDATAencodeStyleContextadd_provider_for_screenSTYLE_PROVIDER_PRIORITY_USERlookup_colorr   debug	to_stringru   )r   rx   screencss_providercontextfoundcolorr   r   r   rv      s   

zvmmConfig._init_cssc                 C      | j S r&   )rb   r   r   r   r   get_appname      zvmmConfig.get_appnamec                 C   r   r&   )rd   r   r   r   r   get_appversion   r   zvmmConfig.get_appversionc                 C   r   r&   )rf   r   r   r   r   
get_ui_dir   r   zvmmConfig.get_ui_dirc                 C   s   ddg}|S )Nvncspicer   r   r<   r   r   r   embeddable_graphics   s   zvmmConfig.embeddable_graphicsc                 C   s   t  sdS |  S )NF)r   libguestfs_installedget_libguestfs_inspect_vmsr   r   r   r   inspection_supported  s   zvmmConfig.inspection_supportedc                 C      | j | d S r&   )rg   rA   )r   r@   r   r   r   remove_notifier	     zvmmConfig.remove_notifierc                 C   r   r&   )rt   appendr   objr   r   r   
add_object  r   zvmmConfig.add_objectc                 C   r   r&   )rt   remover   r   r   r   remove_object  r   zvmmConfig.remove_objectc                 C   s   | j d d  S r&   )rt   r   r   r   r   get_objects  r9   zvmmConfig.get_objectsc                 C      d| dd|f S )Nz	/vms/%s%s-r   r+   r   uuidr"   r   r   r   _make_pervm_key     zvmmConfig._make_pervm_keyc                 O   2   |  ||}| j| | jj|g|R i |S r&   )r   rg   r0   r=   )r   r   r"   r5   r7   r   r   r   listen_pervm     zvmmConfig.listen_pervmc                 O   6   |  ||}| j| | jj|g|R i |}|S r&   )r   rg   r0   rI   )r   r   r"   r5   r7   r<   r   r   r   	set_pervm"     zvmmConfig.set_pervmc                 C   $   |  ||}| j| | j|S r&   )r   rg   r0   rD   r   r   r   r   	get_pervm(     zvmmConfig.get_pervmc                 C   r   )Nz/conns/%s%sr
   r   r   r   urir"   r   r   r   _make_perconn_key2  r   zvmmConfig._make_perconn_keyc                 O   r   r&   )r   rg   r2   r=   )r   r   r"   r5   r7   r   r   r   listen_perconn5  r   zvmmConfig.listen_perconnc                 O   r   r&   )r   rg   r2   rI   )r   r   r"   r5   r7   r<   r   r   r   set_perconn:  r   zvmmConfig.set_perconnc                 C   r   r&   )r   rg   r2   rD   r   r   r   r   get_perconn@  r   zvmmConfig.get_perconnc                 C      | j dS Nz/vmlist-fields/cpu-usagerg   rD   r   r   r   r   !is_vmlist_guest_cpu_usage_visibleK     z+vmmConfig.is_vmlist_guest_cpu_usage_visiblec                 C   r   Nz/vmlist-fields/host-cpu-usager   r   r   r   r    is_vmlist_host_cpu_usage_visibleM  r   z*vmmConfig.is_vmlist_host_cpu_usage_visiblec                 C   r   Nz/vmlist-fields/memory-usager   r   r   r   r   is_vmlist_memory_usage_visibleO  r   z(vmmConfig.is_vmlist_memory_usage_visiblec                 C   r   Nz/vmlist-fields/disk-usager   r   r   r   r   is_vmlist_disk_io_visibleQ  r   z#vmmConfig.is_vmlist_disk_io_visiblec                 C   r   Nz/vmlist-fields/network-trafficr   r   r   r   r   !is_vmlist_network_traffic_visibleS  r   z+vmmConfig.is_vmlist_network_traffic_visiblec                 C      | j d| d S r   rg   rI   r   stater   r   r   "set_vmlist_guest_cpu_usage_visibleV     z,vmmConfig.set_vmlist_guest_cpu_usage_visiblec                 C   r   r   r   r   r   r   r   !set_vmlist_host_cpu_usage_visibleX  r   z+vmmConfig.set_vmlist_host_cpu_usage_visiblec                 C   r   r   r   r   r   r   r   set_vmlist_memory_usage_visibleZ  r   z)vmmConfig.set_vmlist_memory_usage_visiblec                 C   r   r   r   r   r   r   r   set_vmlist_disk_io_visible\  r   z$vmmConfig.set_vmlist_disk_io_visiblec                 C   r   r   r   r   r   r   r   "set_vmlist_network_traffic_visible^  r   z,vmmConfig.set_vmlist_network_traffic_visiblec                 C      | j d|S r   rg   r=   r   r6   r   r   r   )on_vmlist_guest_cpu_usage_visible_changeda  r9   z3vmmConfig.on_vmlist_guest_cpu_usage_visible_changedc                 C   r   r   r   r   r   r   r   (on_vmlist_host_cpu_usage_visible_changedc  r9   z2vmmConfig.on_vmlist_host_cpu_usage_visible_changedc                 C   r   r   r   r   r   r   r   &on_vmlist_memory_usage_visible_changede  r9   z0vmmConfig.on_vmlist_memory_usage_visible_changedc                 C   r   r   r   r   r   r   r   !on_vmlist_disk_io_visible_changedg  r9   z+vmmConfig.on_vmlist_disk_io_visible_changedc                 C   r   r   r   r   r   r   r   )on_vmlist_network_traffic_visible_changedi  r9   z3vmmConfig.on_vmlist_network_traffic_visible_changedc                 C   s   | j d}|s
dS |S )N/console/grab-keysz65507,65513r   r   r   r   r   get_keys_combinationm  s   zvmmConfig.get_keys_combinationc                 C   s&   d dd |D }| jd| d S )N,c                 S   s   g | ]}t |qS r   )str).0vr   r   r   
<listcomp>u  s    z2vmmConfig.set_keys_combination.<locals>.<listcomp>r   )joinrg   rI   r   valr   r   r   set_keys_combinations  s   zvmmConfig.set_keys_combinationc                 C   r   )Nr   r   r   r   r   r   on_keys_combination_changedw  r9   z%vmmConfig.on_keys_combination_changedc                 C   r   Nz/confirm/forcepoweroffr   r   r   r   r   get_confirm_forcepoweroff{  r   z#vmmConfig.get_confirm_forcepoweroffc                 C   r   Nz/confirm/poweroffr   r   r   r   r   get_confirm_poweroff}  r   zvmmConfig.get_confirm_poweroffc                 C   r   Nz/confirm/pauser   r   r   r   r   get_confirm_pause  r   zvmmConfig.get_confirm_pausec                 C   r   Nz/confirm/removedevr   r   r   r   r   get_confirm_removedev  r   zvmmConfig.get_confirm_removedevc                 C   r   Nz/confirm/unapplied-devr   r   r   r   r   get_confirm_unapplied  r   zvmmConfig.get_confirm_unappliedc                 C   r   Nz/confirm/delete-storager   r   r   r   r   get_confirm_delstorage  r   z vmmConfig.get_confirm_delstoragec                 C   r   r   r   r   r   r   r   set_confirm_forcepoweroff  r   z#vmmConfig.set_confirm_forcepoweroffc                 C   r   r   r   r   r   r   r   set_confirm_poweroff  r   zvmmConfig.set_confirm_poweroffc                 C   r   r   r   r   r   r   r   set_confirm_pause  r   zvmmConfig.set_confirm_pausec                 C   r   r   r   r   r   r   r   set_confirm_removedev  r   zvmmConfig.set_confirm_removedevc                 C   r   r   r   r   r   r   r   set_confirm_unapplied  r   zvmmConfig.set_confirm_unappliedc                 C   r   r   r   r   r   r   r   set_confirm_delstorage  r   z vmmConfig.set_confirm_delstoragec                 C   r   Nz/system-trayr   r   r   r   r   on_view_system_tray_changed  r9   z%vmmConfig.on_view_system_tray_changedc                 C   r   r   r   r   r   r   r   get_view_system_tray  r   zvmmConfig.get_view_system_trayc                 C   r   r   r   r   r   r   r   set_view_system_tray  r   zvmmConfig.set_view_system_trayc                 C   r   Nz/xmleditor-enabledr   r   r   r   r   on_xmleditor_enabled_changed  r9   z&vmmConfig.on_xmleditor_enabled_changedc                 C   r   r   r   r   r   r   r   get_xmleditor_enabled  r   zvmmConfig.get_xmleditor_enabledc                 C   r   r   r   r   r   r   r   rj     r   zvmmConfig.set_xmleditor_enabledc                 C   r   Nz /enable-libguestfs-vm-inspectionr   r   r   r   r   r     r   z$vmmConfig.get_libguestfs_inspect_vmsc                 C   r   r   r   r   r   r   r   rl     r   z$vmmConfig.set_libguestfs_inspect_vmsc                 C   s   dS )Nx   r   r   r   r   r   get_stats_history_length  s   z"vmmConfig.get_stats_history_lengthc                 C   s"   | j jrdS | jd}t|dS )Ng?/stats/update-intervalr   )rh   
short_pollrg   rD   maxr   intervalr   r   r   get_stats_update_interval  s   
z#vmmConfig.get_stats_update_intervalc                 C   r   Nr   r   r  r   r   r   set_stats_update_interval  r   z#vmmConfig.set_stats_update_intervalc                 C   r   r  r   r   r   r   r    on_stats_update_interval_changed  r9   z*vmmConfig.on_stats_update_interval_changedc                 C   r   Nz/stats/enable-cpu-pollr   r   r   r   r   get_stats_enable_cpu_poll  r   z#vmmConfig.get_stats_enable_cpu_pollc                 C   r   Nz/stats/enable-disk-pollr   r   r   r   r   get_stats_enable_disk_poll  r   z$vmmConfig.get_stats_enable_disk_pollc                 C   r   Nz/stats/enable-net-pollr   r   r   r   r   get_stats_enable_net_poll  r   z#vmmConfig.get_stats_enable_net_pollc                 C   r   Nz/stats/enable-memory-pollr   r   r   r   r   get_stats_enable_memory_poll  r   z&vmmConfig.get_stats_enable_memory_pollc                 C   r   r  r   r   r   r   r   set_stats_enable_cpu_poll  r   z#vmmConfig.set_stats_enable_cpu_pollc                 C   r   r
  r   r   r   r   r   set_stats_enable_disk_poll  r   z$vmmConfig.set_stats_enable_disk_pollc                 C   r   r  r   r   r   r   r   set_stats_enable_net_poll  r   z#vmmConfig.set_stats_enable_net_pollc                 C   r   r  r   r   r   r   r   set_stats_enable_memory_poll  r   z&vmmConfig.set_stats_enable_memory_pollc                 C      | j d||S r  r   r   r6   rowr   r   r    on_stats_enable_cpu_poll_changed  r   z*vmmConfig.on_stats_enable_cpu_poll_changedc                 C   r  r
  r   r  r   r   r   !on_stats_enable_disk_poll_changed  r   z+vmmConfig.on_stats_enable_disk_poll_changedc                 C   r  r  r   r  r   r   r    on_stats_enable_net_poll_changed  r   z*vmmConfig.on_stats_enable_net_poll_changedc                 C   r  r  r   r  r   r   r   #on_stats_enable_memory_poll_changed  r   z-vmmConfig.on_stats_enable_memory_poll_changedc                 C   r   Nz/console/scalingr   r   r   r   r   get_console_scaling  r   zvmmConfig.get_console_scalingc                 C   r   r  r   r   prefr   r   r   set_console_scaling  r   zvmmConfig.set_console_scalingc                 C   s   | j d}|dkr| j}|S )N/console/resize-guest)rg   rD   rs   r   r   r   r   get_console_resizeguest  s   z!vmmConfig.get_console_resizeguestc                 C   r   )Nr   r   r  r   r   r   set_console_resizeguest  r   z!vmmConfig.set_console_resizeguestc                 C      t | jdS Nz/console/auto-redirectr_   rg   rD   r   r   r   r   get_auto_usbredir  r   zvmmConfig.get_auto_usbredirc                 C   r   r%  r   r   r   r   r   set_auto_usbredir  r   zvmmConfig.set_auto_usbredirc                 C   r$  Nz/console/autoconnectr&  r   r   r   r   get_console_autoconnect  r   z!vmmConfig.get_console_autoconnectc                 C   r   r)  r   r   r   r   r   set_console_autoconnect  r9   z!vmmConfig.set_console_autoconnectc                 C   s   | j d}|d u rd}|S )N/details/show-toolbarTr   )r   resr   r   r   get_details_show_toolbar     z"vmmConfig.get_details_show_toolbarc                 C   r   )Nr,  r   r   r   r   r   set_details_show_toolbar  r   z"vmmConfig.set_details_show_toolbarc                 C   .   | j d}|dvrd}|dkr|s| jS |S )N/new-vm/graphics-type)systemr   r   r3  )rg   rD   rp   r   rawr<   r   r   r   get_graphics_type     zvmmConfig.get_graphics_typec                 C      | j d|  d S )Nr2  rg   rI   lower)r   gtyper   r   r   set_graphics_type     zvmmConfig.set_graphics_typec                 C   r1  )N/new-vm/storage-format)defaultr5  ra   r?  )rg   rD   rr   r4  r   r   r   get_default_storage_format  r7  z$vmmConfig.get_default_storage_formatc                 C   r8  )Nr>  r9  )r   typr   r   r   set_storage_format  r=  zvmmConfig.set_storage_formatc                 C   s    | j d}|tjvrtj}|S Nz/new-vm/cpu-default)rg   rD   r   SPECIAL_MODESSPECIAL_MODE_APP_DEFAULTr   r   r   r   get_default_cpu_setting  s   
z!vmmConfig.get_default_cpu_settingc                 C   r8  rC  r9  r   r   r   r   set_default_cpu_setting  r=  z!vmmConfig.set_default_cpu_settingc                 C   s   | j d}|dvrd}|S )N/new-vm/firmware)r?  uefir?  r   r   r   r   r   get_default_firmware_setting  r/  z&vmmConfig.get_default_firmware_settingc                 C   r8  )NrH  r9  r   r   r   r   set_firmware_setting  r=  zvmmConfig.set_firmware_settingc                 C   sz   d}| j |p	g }||dkr7t|dkr9| s;|d| t||kr.|t|d = | j || d S d S d S d S )N
   r   r   )rg   rD   countlenisspaceinsertrI   )r   gsettings_pathurl	maxlengthurlsr   r   r   _url_add_helper!  s   "zvmmConfig._url_add_helperc                 C      |  d| d S Nz/urls/containersrU  r   rR  r   r   r   add_container_url,  r   zvmmConfig.add_container_urlc                 C      | j dpg S rW  r   r   r   r   r   get_container_urls.  r   zvmmConfig.get_container_urlsc                 C   rV  Nz
/urls/urlsrX  rY  r   r   r   add_media_url1  r   zvmmConfig.add_media_urlc                 C   r[  r]  r   r   r   r   r   get_media_urls3  r   zvmmConfig.get_media_urlsc                 C   rV  Nz
/urls/isosrX  )r   r/   r   r   r   add_iso_path6  r   zvmmConfig.add_iso_pathc                 C   r[  r`  r   r   r   r   r   get_iso_paths8  r   zvmmConfig.get_iso_pathsc                 C   r   r`  r   r   r   r   r   on_iso_paths_changed:  r9   zvmmConfig.on_iso_paths_changedc                 C   s<   |   pg }|D ]}||v rq|| q| jd| d S Nz/paths/perms-fix-ignore)get_perms_fix_ignorer   rg   rI   )r   pathlistcurrent_listr/   r   r   r   add_perms_fix_ignore?  s   zvmmConfig.add_perms_fix_ignorec                 C   r   rd  r   r   r   r   r   re  F  r   zvmmConfig.get_perms_fix_ignorec                 C   r[  )N/connections/urisr   r   r   r   r   get_conn_urisK  r   zvmmConfig.get_conn_urisc                 C   s:   |   }||vr|t|d | | jd| d S d S )Nr   ri  )rj  rP  rN  rg   rI   r   r   urisr   r   r   add_conn_uriM  s
   zvmmConfig.add_conn_uric                 C   s^   |   }||v r|| | jd| | |r-| jd}|| | jd| d S d S )Nri  /connections/autoconnect)rj  r   rg   rI   get_conn_autoconnectrD   rk  r   r   r   remove_conn_uriR  s   


zvmmConfig.remove_conn_uric                 C   s    | j d}| j d}||fS Nz/manager-window-widthz/manager-window-heightr   r   wr@   r   r   r   get_manager_window_size^  s   z!vmmConfig.get_manager_window_sizec                 C   s    | j d| | j d| d S rq  r   rr  r   r   r   set_manager_window_sizeb  s   z!vmmConfig.set_manager_window_sizec                 C   s   | j d}|d uo||v S Nrn  r   rk  r   r   r   ro  g  s   zvmmConfig.get_conn_autoconnectc                 C   sP   | j dpg }|s||v r|| n|r||vr|| | j d| d S rv  )rg   rD   r   r   rI   )r   r   r   rl  r   r   r   set_conn_autoconnectk  s   
zvmmConfig.set_conn_autoconnectc                 C   sH   |}| j |i }|dd }d }|r| jd| }td|| |S )NrY   /paths/%s-defaultz"directory for type=%s returning=%s)browse_reason_datarD   rg   r   r   )r   conn_typer3   
browsedatar"   r/   r   r   r   get_default_directoryv  s   zvmmConfig.get_default_directoryc                 C   sF   | j |i }|dd }|sd S td|| | jd| | d S )NrY   z"saving directory for type=%s to %srx  )ry  rD   r   r   rg   rI   )r   folderr{  r|  r"   r   r   r   set_default_directory  s   zvmmConfig.set_default_directoryr&   )F)rJ   rK   rL   CONFIG_DIR_IMAGECONFIG_DIR_ISO_MEDIACONFIG_DIR_FLOPPY_MEDIACONFIG_DIR_SCREENSHOTCONFIG_DIR_FS_r   FileChooserActionSAVE
STOCK_OPENSELECT_FOLDERry  CONSOLE_SCALE_NEVERCONSOLE_SCALE_FULLSCREENCONSOLE_SCALE_ALWAYSr\   classmethodr^   r`   r   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   r   rl   r   r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r#  r'  r(  r*  r+  r.  r0  r6  r<  r@  rB  rF  rG  rJ  rK  rU  rZ  r\  r^  r_  ra  rb  rc  rh  re  rj  rm  rp  rt  ru  ro  rw  r}  r  r   r   r   r   rN      s4   	$

 






rN   N)rz   r   r   r   virtinstr   r   lib.inspectionr   r~   objectr	   rN   r   r   r   r   <module>   s   _