B
    v9a8                 @   sN   d dl Z d dlmZ G dd dZdd ZedkrJd dlmZ ed	d
d dS )    N)
messageboxc               @   s^   e Zd ZddlmZ dd ZdddZddd	Zdd
dZdd Z	dd Z
dd Zdd ZdS )FileListr   )EditorWindowc             C   s   || _ i | _i | _i | _d S )N)rootdictinversedictvars)selfr    r
   /usr/lib/python3.7/filelist.py__init__   s    zFileList.__init__Nc             C   s   |  |}tj|r2tjdd|f | jd d S tj|}|| jkr`| j| }|j	
  |S |rl||S | | ||}|jr|S |  d S d S )Nz
File Errorz%r is a directory.)master)canonizeospathisdirtkMessageBox	showerrorr   normcaser   topwakeupr   Z	good_loadZ_close)r	   filenameactionkeyeditr
   r
   r   open   s&    




zFileList.openc             C   s(   |  |}|d k	r$|d k	r$|| d S )N)r   Zgotoline)r	   r   linenor   r
   r
   r   gotofileline,   s    
zFileList.gotofilelinec             C   s   |  | |S )N)r   )r	   r   r
   r
   r   new1   s    zFileList.newc             O   s*   x$t | jD ]}| }|dkrP qW dS )NZcancelbreak)listr   close)r	   argskwdsr   Zreplyr
   r
   r   close_all_callback4   s
    zFileList.close_all_callbackc             C   sT   y| j | }W n tk
r*   td d S X |r8| j|= | j |= | j sP| j  d S )Nz-Don't know this EditorWindow object.  (close))r   KeyErrorprintr   r   quit)r	   r   r   r
   r
   r   unregister_maybe_terminate;   s    z#FileList.unregister_maybe_terminatec             C   s   |   y| j| }W n tk
r2   td d S X |jj}|sZ|rL| j|= d | j|< d S | |}tj	
|}||kr|d S || jkr| j| }d | j|< tjdd|f | jd || j|< || j|< |ry| j|= W n tk
r   Y nX d S )Nz.Don't know this EditorWindow object.  (rename)zName Conflictz.You now have multiple edit windows open for %r)r   )Zsaved_change_hookr   r%   r&   ior   r   r   r   r   r   r   r   r   )r	   r   r   r   ZnewkeyZconflictr
   r
   r   filename_changed_editG   s<    







zFileList.filename_changed_editc             C   sH   t j|s<yt  }W n tk
r,   Y nX t j||}t j|S )N)r   r   isabsgetcwdOSErrorjoinnormpath)r	   r   pwdr
   r
   r   r   g   s    zFileList.canonize)N)N)N)__name__
__module____qualname__idlelib.editorr   r   r   r   r   r$   r(   r*   r   r
   r
   r
   r   r      s   


 r   c              C   sd   ddl m}  ddlm} ddlm} |  }|| || |  t|}|  |j	r`|
  d S )Nr   )Tk)fixwordbreaks)fix_scaling)tkinterr5   r4   r6   Zidlelib.runr7   Zwithdrawr   r   r   Zmainloop)r5   r6   r7   r   flistr
   r
   r   _testr   s    r:   __main__)mainzidlelib.idle_test.test_filelist   )	verbosity)	r   r8   r   r   r   r:   r1   Zunittestr<   r
   r
   r
   r   <module>   s   k