Viewing File: /opt/alt/python35/lib64/python3.5/idlelib/__pycache__/ReplaceDialog.cpython-35.pyc



©ÕYf9ã@s¹dZddlTddlmZddlmZddlZdd„ZGdd	„d	eƒZd
d„Z	e
dkrµddlZejd
ddddƒddl
mZee	ƒdS)zÀReplace dialog for IDLE. Inherits SearchDialogBase for GUI.
Uses idlelib.SearchEngine for search capability.
Defines various replace related functions like replace, replace all,
replace+find.
é)Ú*)ÚSearchEngine)ÚSearchDialogBaseNcCsV|jƒ}tj|ƒ}t|dƒs<t||ƒ|_|j}|j|ƒdS)zvReturns a singleton ReplaceDialog instance.The single dialog
     saves user entries and preferences across instances.Ú_replacedialogN)Z_rootrÚgetÚhasattrÚ
ReplaceDialogrÚopen)ÚtextÚrootÚengineZdialog©r
ú:/opt/alt/python35/lib64/python3.5/idlelib/ReplaceDialog.pyÚreplace
s	rc@sÊeZdZdZdZdd„Zdd„Zdd„Zd	d
„Zddd
„Z	ddd„Z
ddd„Zdd„Zddd„Z
ddd„Zdd„Zdd„Zddd„ZdS)rzReplace DialogÚReplacecCs&tj|||ƒt|ƒ|_dS)N)rÚ__init__Z	StringVarÚreplvar)Úselfrrr
r
rrszReplaceDialog.__init__cCsªtj||ƒy|jdƒ}Wntk
r=d}YnXy|jdƒ}Wntk
rkd}YnX|p~|jdƒ}|pŠ|}|j||ƒd|_dS)zDisplay the replace dialogz	sel.firstNzsel.lastÚinserté)rr	ÚindexÚTclErrorÚshow_hitÚok)rr
ÚfirstÚlastr
r
rr	!s

zReplaceDialog.opencCs-tj|ƒ|jd|jƒd|_dS)z#Create label and text entry widgetsz
Replace with:rN)rÚcreate_entriesZ
make_entryrZreplent)rr
r
rr1s
zReplaceDialog.create_entriescCs`tj|ƒ|jd|jƒ|jd|jƒ|jd|jdƒ|jd|jƒdS)NZFindrzReplace+FindrzReplace All)rÚcreate_command_buttonsZmake_buttonÚfind_itÚ
replace_itÚdefault_commandÚreplace_all)rr
r
rr6s

z$ReplaceDialog.create_command_buttonsNcCs|jdƒdS)Nr)Údo_find)rÚeventr
r
rr=szReplaceDialog.find_itcCs |j|jƒr|jƒdS)N)r"rÚ
do_replace)rr#r
r
rr@szReplaceDialog.replace_itcCs/|j|jƒr+|jƒr+|jdƒdS)zReplace and find next.rN)r"rr$)rr#r
r
rr DszReplaceDialog.default_commandcCs`|jjƒrVy|j|ƒ}Wq\tjk
rR|jj|dƒd}Yq\Xn|}|S)za Helper function for expanding a regular expression
            in the replace field, if needed. zInvalid Replace ExpressionN)rZisreÚexpandÚreÚerrorZreport_error)rÚmÚreplÚnewr
r
rÚ_replace_expandKszReplaceDialog._replace_expandcCs0|jjƒ}|sdS|jjƒ}|j}|jj||ƒ}|sZ|jƒdS|jdddƒ|jdddƒ|d}|djƒ}|jj	ƒrµd}d}d}d}	}
|j
ƒx*|jj||||d|ƒ}|súP|\}}|jd|d|dƒ}|jƒ}
|j
||ƒ}|dkrOP|jƒ\}}d	||f}	d	||f}
||
kr |jd
|
ƒnB|jd
|	ƒ|	|
krÌ|j|	|
ƒ|râ|j|	|ƒ|t|ƒ}d}qÒW|jƒ|	r"|
r"|j|	|
ƒ|jƒdS)z4Replace all instances of patvar with replvar in textNÚselz1.0ÚendÚhitrrz%d.0z%d.%dr)rÚgetprogrrr
Úsearch_textÚbellÚ
tag_removeÚstartZiswrapÚundo_block_startZsearch_forwardÚgroupr+ÚspanÚmark_setÚdeleterÚlenÚundo_block_stoprÚclose)rr#Úprogr)r
ÚresÚlineÚcolrrrr(ÚcharsZorigr*ÚiÚjr
r
rr!YsZ	



!

zReplaceDialog.replace_allrc
Cs£|jjƒsdS|j}|jj|d|ƒ}|sH|jƒdS|\}}|jƒ\}}d||f}d||f}	|j||	ƒd|_dS)NFz%d.%drT)rr/r
r0r1r6rr)
rrr
r=r>r(rArBrrr
r
rr"‹s	
	zReplaceDialog.do_findc
Csv|jjƒ}|sdS|j}y&|jdƒ}}|jdƒ}Wntk
rbd}YnX|s€|jdƒ}}}tj|ƒ\}}|jd|d|dƒ}|j||ƒ}	|sÏdS|j	|	|j
jƒƒ}
|
dkrúdS|jd|ƒ|jƒ|	j
ƒr0|j||ƒ|
rF|j||
ƒ|jƒ|j||jdƒƒd|_dS)	NFz	sel.firstzsel.lastrz%d.0rrT)rr/r
rrrZget_line_colrÚmatchr+rr7r4r5r8rr:rr)rr<r
rÚposrr>r?r@r(r*r
r
rr$›s:	


	zReplaceDialog.do_replacecCsŸ|j}|jd|ƒ|jdddƒ|jd||ƒ|jdddƒ||krq|jd|ƒn|jd||ƒ|jdƒ|jƒdS)zMHighlight text from 'first' to 'last'.
        'first', 'last' - Text indicesrr,z1.0r-r.N)r
r7r2Útag_addZseeZupdate_idletasks)rrrr
r
r
rrºs	
zReplaceDialog.show_hitcCs*tj||ƒ|jjdddƒdS)Nr.z1.0r-)rr;r
r2)rr#r
r
rr;ÉszReplaceDialog.close)Ú__name__Ú
__module__Ú__qualname__ÚtitleZiconrr	rrrrr r+r!r"r$rr;r
r
r
rrs2rc
sÿt|ƒ}|jdƒttttjd|jƒƒƒƒ\}}}}|jd||dfƒdd„}dd„}t|d	d
ƒ‰|ˆ_	|ˆ_
ˆjƒˆjddƒˆj
ƒ‡fd
d†}t|ddd|ƒ}	|	jƒdS)zhtest wrapper functionzTest ReplaceDialogz[x+]z+%d+%dé–cSsdS)Nr
r
r
r
rr4Ösz)_replace_dialog.<locals>.undo_block_startcSsdS)Nr
r
r
r
rr:Ùsz(_replace_dialog.<locals>.undo_block_stopZinactiveselectbackgroundZgrayrz"This is a sample sTring
Plus MORE.cs4ˆjtdtƒtˆƒˆjtdtƒdS)Nz1.0)rEZSELZENDrr2r
)r
r
rÚshow_replaceãs
z%_replace_dialog.<locals>.show_replacer
rZcommandN)ZToplevelrIÚlistÚmapÚintr&ÚsplitZgeometryZTextr4r:ZpackrZ	focus_setZButton)
ÚparentZboxÚwidthZheightÚxÚyr4r:rKZbuttonr
)r
rÚ_replace_dialogÎs
3		

rTÚ__main__z$idlelib.idle_test.test_replacedialogÚ	verbosityéÚexitF)Úrun)Ú__doc__ZtkinterZidlelibrZidlelib.SearchDialogBaserr&rrrTrFZunittestÚmainZidlelib.idle_test.htestrYr
r
r
rÚ<module>s
¶

Back to Directory File Manager