;i$gdZddlZddlmZmZddlmZGddeZGd d eejZ Gd d e Z Gd de Z Gddej Z GddeejZdS)) Container HContainer VContainer TContainerN)QtCore QtWidgets)Dockc\eZdZdZdZdZdZddZddZd Z d Z d Z dd Z d Z dZdS)rct|||_d|_d|_t j|_dS)N) r)object__init__area _container_stretchweakrefWeakKeyDictionary stretchesselfrs PC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/dockarea/Container.pyrzContainer.__init__ s=    244c|jSN)rrs r containerzContainer.containers rcB||_| d|_dS|j|_dSr)rr)rcs rcontainerChangedzContainer.containerChangeds& 9DIIIDIIIrcdSrrs rtypezContainer.typestrNct|ts|g}|D]}|d||dkrd}n=|}n(||}|dkrd}|dkr|dz }|D]Q}||||||dz }|j|j R| dS)Nbeforerafterr ) isinstancelist setParentcountindexOf _insertItemr!sigStretchChangedconnectchildStretchChanged updateStretch)rnewposneighbornindexs rinsertzContainer.insert s#t$$ %C  A KK      h LL**E{{g~~  B BA   Q & & &  t $ $ $ QJE  ' '(@ A A A A rTc|j}|}|dkrdS|dkr~|d}|j#||jjurt |t r|dS||d|| |r|| dSdSdS)Nr rr&) rr,widgetr topContainerr)rrr8closeapoptose)r propagatecontr chs rr=zContainer.apoptose<s JJLL q55 F 66QB %$$)2H*H*HQ[\^`iQjQj*Hoso}o}oopH NN   # #B$ 7 7 7  ) MMOOOOO  ))rc|d|j|jj|ur d|j_|ddSr)r+rr;r!rs rr<zContainer.closeMsO t 9 TY%;t%C%C%)DI " d#####rc|}|rNt|dr@ |j|jn#YnxYw|dSdSdS)Nr/)childremovedhasattrr/ disconnectr1r2)revr@s r childEvent_zContainer.childEvent_Ss XXZZ ::<< !GB(;<< ! $//0HIIII      ! ! ! !s AAc.|dSr)r2rs rr1zContainer.childStretchChangedas rcJ||f|_|jdSr)rr/emit)rxys r setStretchzContainer.setStretches(A  ##%%%%%rcdSrr#rs rr2zContainer.updateStretchjs rc|jS)z-Return the stretch factors for this container)rrs rstretchzContainer.stretchns }r)NN)T)__name__ __module__ __qualname__rrr!r$r8r=r<rHr1rNr2rQr#rrrr s5558"$$$ ! ! !&&&&    rrcXeZdZdZejZdZdZdZ dZ fdZ xZ S)SplitContainerz[Horizontal or vertical splitter with some changes: - save/restore works correctly ctj|||t||dSr)r QSplitterrsetOrientationr)rr orientations rrzSplitContainer.__init__ysI$$T*** K(((4&&&&&rcZ||||dSr) insertWidgetshowritemr7s rr.zSplitContainer._insertItems) %&&& rc|}td|Drdgt|z}d|iS)Nc3"K|] }|dkV dS)rNr#).0rLs r z+SplitContainer.saveState..s&%%!qAv%%%%%%rrsizes)rdalllen)rrds r saveStatezSplitContainer.saveStatesK  %%u%%% % % &D3u::%Erc|d}||tt|D]}||||dS)Nrd)setSizesrangerfsetStretchFactor)rstaterdis r restoreStatezSplitContainer.restoreStatesag es5zz"" / /A  ! !!U1X . . . . / /rct|t||dSr)super childEventrrHrrG __class__s rrqzSplitContainer.childEvents7 2dB'''''r) rRrSrT__doc__rSignalr/rr.rgrnrq __classcell__rss@rrVrVss& '''    /// (((((((((rrVc eZdZdZdZdZdS)rcft||tjjjdSr)rVrrQt Orientation Horizontalrs rrzHContainer.__init__s(dFI,A,LMMMMMrcdS)N horizontalr#rs rr$zHContainer.types|rcd}d}g}t|D]V}||\}}||z }t ||}||W|||tt|}|dkrdn| |z | fd|DdS)Nr?c4g|]}t|zSr#intrbsscales r z,HContainer.updateStretch..#333s1U7||333r) rjr,r:rQmaxappendrNfloatsumwidthri rrLrMrdrmwxwytotrs @rr2zHContainer.updateStretchs  tzz||$$  A[[^^++--FB GAAr A LL     1CJJ !88EEJJLL3&E 3333U33344444rNrRrSrTrr$r2r#rrrrsDNNN55555rrc eZdZdZdZdZdS)rcft||tjjjdSr)rVrrrzr{Verticalrs rrzVContainer.__init__s(dFI,A,JKKKKKrcdS)Nverticalr#rs rr$zVContainer.typeszrcd}d}g}t|D]V}||\}}||z }t ||}||W|||tt|}|dkrdn| |z | fd|DdS)Nrrc4g|]}t|zSr#rrs rrz,VContainer.updateStretch..rr) rjr,r:rQrrrNrrheightrirs @rr2zVContainer.updateStretchs  tzz||$$  A[[^^++--FB GAAr A LL     1CJJ !88EEKKMMC'E 3333U33344444rNrr#rrrrsDLLL55555rrc(eZdZfdZfdZxZS) StackedWidgetcVt||_dSr)rprr)rrrss rrzStackedWidget.__init__s$ "rc~t||j|dSr)rprqrrHrrs rrqzStackedWidget.childEvents7 2 ""2&&&&&r)rRrSrTrrqrvrws@rrrsQ#####'''''''''rrc^eZdZejZdZdZd dZdZ dZ dZ dZ d Z dS) rc tj|t||tj|_|jd|jdddd||jtj |_ tj|_ |j |j |j d|j dddd|j |j ddt||_|j |jdd||jdD]&}t||t!|j|'dS)Nrrr )r)r,r:r-)r QWidgetrr QGridLayoutlayout setSpacingsetContentsMargins setLayout QHBoxLayout hTabLayouthTabBox addWidgetrstacksetattrgetattr)rrr6s rrzTContainer.__init__s""4(((4&&&+--  q!!! &&q1Q/// t{####/11 (**  t/// ""1%%% **1Qq333 dlAq111"T222  dj!Q/// t{###/ 5 5A D!WTZ33 4 4 4 4 5 5rc@t|tstd|j|||j||j|jj|j | |jdS)Nz9Tab containers may hold only docks, not other containers.) r)r Exceptionrr\rlabel sigClickedr0 tabClickedr^s rr.zTContainer._insertItems$%% YWXX X t,,, $$UDJ777 %%do666  #####rNc|,|tjjjkrt |D]q}||}||jur5|j d|j |U|j dpdSdS)NFT) buttonrrz MouseButton LeftButtonrjr,r:dockrsetDimrsetCurrentIndex)rtabrGrmws rrzTContainer.tabClickeds : (=(HHH4::<<(( ) )KKNN==GNN5)))J..q1111GNN4((((IH ) )rc|jjd|j||jddS)z#Move *dock* to the top of the stackTFN)r currentWidgetrrsetCurrentWidget)rrs r raiseDockzTContainer.raiseDocksY   ""(//555 ##D))) %     rcdS)Nrr#rs rr$zTContainer.typesurc8d|jiSNr7)r currentIndexrs rrgzTContainer.saveStates002233rcF|j|ddSr)rr)rrls rrnzTContainer.restoreStates" ""5>22222rcd}d}t|D]L}||\}}t ||}t ||}M|||dS)Nr)rjr,r:rQrrN)rrLrMrmrrs rr2zTContainer.updateStretchs  tzz||$$  A[[^^++--FBAr AAr AA 1rr)rRrSrTrrur/rr.rrr$rgrnr2r#rrrrs% 5550$$$))))!!!444333rr)__all__rrzrr r rrrXrVrrQStackedWidgetrrrr#rrrsj A A A""""""""ggggggggT(((((Y 3(((N55555555>55555555<'''''I,'''EEEEEI-EEEEEr