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



]*@sddlZddlTddlmZGdddeZGdddZGdd	d	eZGd
ddeZGdd
d
eZddZ	e
dkrddlZejdddddddl
mZee	dS)N)*)	Delegatorc@seZdZdZddZddZddZdd	Zd
dZdd
Z	dZ
ddZd#ZddZ
dddZdddZddZddZdddZdd Zd!d"ZdS)$
UndoDelegatoricCstj||jdS)N)r__init__
reset_undo)selfr2/opt/alt/python35/lib64/python3.5/UndoDelegator.pyrs
zUndoDelegator.__init__cCs|jdk	r6|jd|jd|jdtj|||dk	r|jd|j|jd|j|jd|jdS)Nz<<undo>>z<<redo>>z<<dump-undo-state>>)delegateZunbindrsetdelegatebind
undo_event
redo_event
dump_event)rr
rrr	rs


zUndoDelegator.setdelegatecCsddlm}||jd|jtd|jddtd|jddtd|jddtd|j||j|jdd	S)
Nr)pprintzpointer:end zsaved:z
can_merge:zget_saved():break)rundolistpointerprintsaved	can_merge	get_saved)reventrrrr	r&szUndoDelegator.dump_eventcCs5d|_d|_g|_d|_|jddS)Nr)	was_savedrr	undoblock	set_saved)rrrr	r0s
				zUndoDelegator.reset_undocCs5|r|j|_n	d|_d|_|jdS)NrFr)rrrcheck_saved)rflagrrr	r7s
		zUndoDelegator.set_savedcCs|j|jkS)N)rr)rrrr	r?szUndoDelegator.get_savedNcCs
||_dS)N)saved_change_hook)rhookrrr	set_saved_change_hookDsz#UndoDelegator.set_saved_change_hookrcCs;|j}||jkr7||_|jr7|jdS)N)rrr")rZis_savedrrr	r Is
		zUndoDelegator.check_savedcCs|jt|||dS)N)addcmd
InsertCommand)rindexcharstagsrrr	insertPszUndoDelegator.insertcCs|jt||dS)N)r%
DeleteCommand)rindex1index2rrr	deleteSszUndoDelegator.deletecCs,|jdkrt|_|jjdS)Nr)rCommandSequence
bump_depth)rrrr	undo_block_startaszUndoDelegator.undo_block_startcCsq|jjddkrm|j}d|_t|dkrmt|dkr]|jd}|j|ddS)Nrrr)rr0lengetcmdr%)rcmdrrr	undo_block_stopfs		zUndoDelegator.undo_block_stopTcCs$|r|j|j|jdkr9|jj|dS|jrx|jdkrx|j|jd}|j|rxdS|g|j|jd<|j|jkrd|_|jd|_t	|j|j
kr
|jd=|jd|_|jdkr
|jd|_d|_|jdS)NrrTr)dor
rappendrrrmergerr2max_undor )rr4ZexecuteZlastcmdrrr	r%rs(	
	zUndoDelegator.addcmdcCsh|jdkr|jdS|j|jd}|j|j|jd|_d|_|jdS)NrrrF)rbellrundor
rr )rrr4rrr	r
s
	
zUndoDelegator.undo_eventcCsm|jt|jkr&|jdS|j|j}|j|j|jd|_d|_|jdS)NrrF)rr2rr:redor
rr )rrr4rrr	rs
	
zUndoDelegator.redo_eventr)__name__
__module____qualname__r9rrrrrrr"r$rr r*r.r1r5r%r
rrrrr	rs$
rc@syeZdZdZdddZddZddZdd	Zd
dZdd
Z	ddZ
ddZdS)CommandNcCs@i|_i|_||_||_||_|r<||_dS)N)marks_beforemarks_afterr,r-r(r))rr,r-r(r)rrr	rs					zCommand.__init__cCsW|jj}|j|j|j|jf}|jdkrI|dd}|t|S)Nrr)	__class__r=r,r-r(r)repr)rstrrr	__repr__s
zCommand.__repr__cCsdS)Nr)rtextrrr	r6sz
Command.docCsdS)Nr)rrHrrr	r<szCommand.redocCsdS)Nr)rrHrrr	r;szCommand.undocCsdS)Nrr)rr4rrr	r8sz
Command.mergecCsLi}x?|jD]1}|dkr|dkr|j|||<qW|S)Nr*current)Z
mark_namesr')rrHmarksnamerrr	
save_markss
zCommand.save_markscCs1x*|jD]\}}|j||q
WdS)N)itemsmark_set)rrHrJrKr'rrr		set_marksszCommand.set_marks)r=r>r?r)rrGr6r<r;r8rLrOrrrr	r@s	r@c@soeZdZdddZddZddZdd	Zd
dZej	ej
dZd
dZdS)r&NcCstj||d||dS)N)r@r)rr,r(r)rrr	rszInsertCommand.__init__cCs|j||_|j|j|_|j|jddrQ|jd|_|j|j|j|j|jd|jt|jf|_	|j||_
dS)N>zend-1cz%s+%dc)rLrAr'r,comparer*r(r)r2r-rB)rrHrrr	r6s(zInsertCommand.docCsS|jd|j|j|j|j|j|j||j|jddS)Nr*)rNr,r*r(r)rOrBsee)rrHrrr	r<szInsertCommand.redocCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r.r-rOrArR)rrHrrr	r;szInsertCommand.undocCs|j|jk	rdS|j|jkr,dS|j|jkrBdSt|jdkr[dS|jr|j|jd|j|jkrdS|j|_|j|j|_dS)NFrTr)rCr-r,r)r2r(classify)rr4rrr	r8s	(zInsertCommand.merge_cCs'||jkrdS|dkr#dSdS)Nalphanumeric
newlinepunctuation)rU)rcrrr	rSs
zInsertCommand.classify)
r=r>r?rr6r<r;r8string
ascii_lettersdigitsrUrSrrrr	r&sr&c@sCeZdZdddZddZddZdd	ZdS)
r+NcCstj|||dddS)N)r@r)rr,r-rrr	rszDeleteCommand.__init__cCs|j||_|j|j|_|jrH|j|j|_n|j|jd|_|j|jddr|jd|_|j|j|j|_|j|j|j|j||_	dS)Nz +1crPzend-1c)
rLrAr'r,r-rQgetr(r.rB)rrHrrr	r6s	zDeleteCommand.docCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r.r-rOrBrR)rrHrrr	r<szDeleteCommand.redocCsM|jd|j|j|j|j|j||j|jddS)Nr*)rNr,r*r(rOrArR)rrHrrr	r;%szDeleteCommand.undo)r=r>r?rr6r<r;rrrr	r+sr+c@sseZdZddZddZddZddZd	d
ZddZd
dZ	dddZ
dS)r/cCsg|_d|_dS)Nr)cmdsdepth)rrrr	r1s	zCommandSequence.__init__cCsS|jj}g}x%|jD]}|jd|fqW|ddj|dS)Nz    %rz(
z,
z
))rCr=r^r7join)rrEZstrsr4rrr	rG5s
zCommandSequence.__repr__cCs
t|jS)N)r2r^)rrrr	__len__<szCommandSequence.__len__cCs|jj|dS)N)r^r7)rr4rrr	r7?szCommandSequence.appendcCs|j|S)N)r^)rirrr	r3BszCommandSequence.getcmdcCs%x|jD]}|j|q
WdS)N)r^r<)rrHr4rrr	r<EszCommandSequence.redocCs?|jdd}|jx|D]}|j|q$WdS)N)r^reverser;)rrHr^r4rrr	r;Is

zCommandSequence.undorcCs|j||_|jS)N)r_)rZincrrrr	r0OszCommandSequence.bump_depthN)r=r>r?rrGrar7r3r<r;r0rrrr	r/,sr/cswddl}ddl}ddlm}|j}|jdttt|j	d|j
\}}}}|j
d||dft|dd}	|	j|	j
||	}
t|
jt|d	d
dfdd
}|jddt|d	ddfdd
}|jddt|d	ddfdd
}
|
jdddS)Nr)
PercolatorzTest UndoDelegatorz[x+]z+%d+%dheight
rHZUndoZcommandcs
jdS)N)r
r)drr	<lambda>dsz!_undo_delegator.<locals>.<lambda>ZsideleftZRedocs
jdS)N)rr)rhrr	rifsZDumpcs
jdS)N)rr)rhrr	rihs)retkinterZidlelib.PercolatorrdZTopleveltitlelistmapintsplitZgeometryZTextpackZ	focus_setrZinsertfilterZButton)parentrkZtkrdZundowinwidthrfxyrHpr;r<dumpr)rhr	_undo_delegatorTs&
3

	
$$$ry__main__z$idlelib.idle_test.test_undodelegator	verbosityexitF)run)rZrlZidlelib.Delegatorrrr@r&r+r/ryr=ZunittestmainZidlelib.idle_test.htestr~rrrr	<module>s
.:$(
Back to Directory File Manager