From de6fb7721df299d8d1cee705eefa6dcc2ce733a4 Mon Sep 17 00:00:00 2001 From: skv Date: Thu, 9 Oct 2014 17:30:30 +0400 Subject: [PATCH] 0022751: [EDF] Publish results of the Check Free Faces operation --- doc/salome/gui/GEOM/images/repair10.png | Bin 6999 -> 12380 bytes doc/salome/gui/GEOM/input/free_faces.doc | 4 +- src/GEOMGUI/GEOM_msg_en.ts | 4 + src/RepairGUI/RepairGUI_FreeFacesDlg.cxx | 323 ++++++++++------------- src/RepairGUI/RepairGUI_FreeFacesDlg.h | 25 +- 5 files changed, 160 insertions(+), 196 deletions(-) diff --git a/doc/salome/gui/GEOM/images/repair10.png b/doc/salome/gui/GEOM/images/repair10.png index ccdebd77b60674cc9bbcc4a6e3fed88cd7b5e0f7..9c67419a585812dadf59ce6a9cf5893769481ce7 100755 GIT binary patch literal 12380 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 literal 6999 zcma)hWmHtryElrUv`9^L~|Os~OmZ~dWrNI(B{-LJ4i%gBr+pGrN$j;%ESY%39sk=8cE2e{2FsSj*xv%oVNBUq!y0p5HgW5b+6Wh!;+#NIn(wto5;OEJp5T0 zw0blzAVn%g)zYtr9{BUD2vjMnh^8Amd0V8S&4V~``d%)`>K`DF$sDa&}hOxP)qT>qzw<(BcZq&lQ#)-)znx1`ktb z%9gIRgPO3q8`#~@p&Ba&ZRo617ZqAr{~k_^)5 zjwrg(Et7!%!XkF?<7#sg8N3!X4wgLVX(v}Nx=cqFPHr8qypbwR zlw`4xjXH;8(lcsbHjg#p#Z&rM3O4s#?S;Q3i%UIzDlBO(-s%)NM)G zWBJ?O(&^ku6zzSfn-(!zxKhA*h5MXom^_<_FZ;C@cW?m_xi98y>P}$ z+Zn#W!(8FA#?+;Pu=cI~+JYm?o=uL~j#Cl_nb2FoS%MqMZYX5gy~c0hig|g%Yk8e9 zVs38ceeV%PMEm9Phf}=ur8lc5a!XiUAE`3}22QCOb%DLQWyTMK5*?d{L_am1IaVBY z#ju>5nhpn77RVbJwbu)qLD#*V%RkW%eWVy%GI5L*n>fBs+zU*Xfknh8#O+IzN2q5M zTS(q|ZM@%^Hp^Y_Zw2P73Tjh!>qZm=S{W0;G*ygotIo5bb>%-`c6ZJX1IPF76$Z-3 zzQb_-vbqyHCK==EC#43-n3Z9|oiTrVhd-30udT0tDaCY)@lB{7&v)}I;k1`66arb1 z?#7Ui879rw3$Q6>oyf&G(k0vmKI+dU>)hiiqnoH)(PcV!s>bipS50p}MGtuXu^*e8 zbvB)m=;Dw$)UYpeVeSu17(Udg%fEQgd}?A)!`S%uPafa7<9$Dpvr2v`GbI?UxPd`O zxy26ZHsRc^sdp>i9gE}7IkcT73;~w#F62p*H)^x33td8qT7?Iqtrs-8?wpf}d)5b< zcpnCjS-|07U$k;P_909rB-t0YlJ%=8*@?MlpXSW2LtQxRk-zEdr)ViOqff_a(zyq8 z8k_l98g{pete7NK6w_n2a+E9#6wm~Po{NsrHc1mV)*t2hR*Uq*3)A z`RB?#BpMbIYwwv7E{B`U#!Nazy8^0DR^%R%6(X16b{UijJ65IW5HtW6J>8;ZMB~wsr%osK zz5(}xwe-srz#3w5CMo3P5;yORcmYhFb|fdKcq|bgmtBpEp3j;_>^&qWpx?|-jehEc zHPh6#GF}{1)HX_oBU~PlJBYriAy}izNcCbPGcBPe7yRN*`JaL%nGaqLUCx(E`Rk%@ zB_e(lV569nnALq`n_-hL<0?lYnJ$$TNQhPE4%gHJ`A5mvvps9%qK}EssqPm}vmN)D z8GWuN3XkQKdp&0Umj8KA?`E+(TQM5s$fTg4U{FpiN}P#`vQDbk1}lO!T_M3=4H^)0`m@TlySMDWQ0^Q}g*RVIdw!U6-GVl!{u{Vyt z$4pKhF<@1yPye_OnY7Xfchh+p4~IJvnCtE*G^Oj|D^K_F1%*@wLl`1;1i z(Om4`pMI#2*pc` zjV|ewS?;GZ`m5eA3>zGEyFD92I+9LKysfOPngvef&D+ML&e2}wCM_T1;vNw9E&nL1 zw7QNyG^nnAHwltKT(H1AA%|Oqkmuf8S~!_JhP{%zOJC~i(}#wX^Ruz{Is#8Y92~J8 z)-b`#pTo|#&O#a`X)y`ZSBq5Nk#@!E1;yc%4xbhOX4wLn8f|vN$AL(n(T*1OOh*Vj5W$3Vds7gWmX|jcr>b}`w(oY=)mTfbTf)Ae?_4$* zf(*41K%3(~tcJF?ONEAvS1p{c%9QJIqe8K~X&ma6)Rmn#QcRW5;HRmnsl;9W;xy2( zJ5l&#AW6yGFQu;*+T8eYu;&ENxm_{9IQV#Kdv-KpewR{Eu&Y`0MiV5`izRdUsj=|#l0aZl zGmh&>Kh(gs_pG5}NTYOyCr{>b7k{r+&B2DTTdg&Ww9$E?mqJrYF00bie>vj*5A{A5 zQF_-V`taJ?=liX@e0o)eV+-~LWBJlS*}@)ETuqX+4%-ekb~YbVQzt*)C>XV(q3A#t z)Mu~cp10aYMk;!G)P1pJ=SdrlE^x*3edL`u2xPPOH&KqPn+!10fQR}SH}}Hv9@Et+ zM!%x`C43MD6SC;W$>cNr`MXr-4(3GU*|T_Hb`w4t-!^Fr375tCl|-R&i<_&{L`KQX z2B+EllS?WZnjod}O=zFQCiGQT=S}lwe$dW!-rKitmpxm8HwnxGE;Af=P5H8__C?C( z1Z;*<0{>QO6g#dNpm4!OB3sjK5I20f@)VO4L1NrK0fRA7?`9m^dutqRJ%ra6lYQ`ph)L?8^9s-#%J0%-|FopOCPc29af19VP|9+|Kyf`&DwlE%zSE|iFg-3>1&ue#ipjcnO8*W`pUhU6 zmRL|a++)FJ+3McmQdjNaoD!G6nsA+Yqfqp1YK|=~E?Y|+AfEq4c(Bc3WAw3H-Ehn( zZ0FbSZu$?(X>Y`@a>PBX>V8W)&kN{vwEQsKp(ghtRFc&-kA4dJ>V9HN#*Nm{*ZQOt>VdhaA;rBcQ- zIP3NA#>A8<#ElnjH}q3sUPFO zH&;7pZ`r8(WP^5fGi{YGd8pk4j4C*~J}9pOt1S%}7o7J>!M#t)*7TiMHLD|edb`LC z)hW)995|y(gZe({IAB+2S+}5uN%(&Q8d@vM=BTKs(DOA>{GAt(5SiO-%fjMcmDXg` zGHp;*rQ+uSM@9ce6H%A@E5(YIjRn;$RKxc=!|NBEKN%$me`P0tZ5D*(>zjq*QN>RR-GEh1zBd8diQcdgkEV`dhx zE|Sc^y*j!S)pGQH0SxmiZ2mnsDMeq^)sl}uSpUNrQpOkeboEUglNt7W+r()1L>YWz z`PrzFK}j5ID;E$lS^?kD`16 zkFIPWo{C#EVN9%|5sn4`2TIC88jBm-2PiHFFbfF`fiOvCl2+-uz4^f_>$V&qb+%>Q z3B$v~Gx1-E8O;%jZP6UH9fwLt9ghk%{A}B;Y|DP(^Q=%Y>F)BF7;5eI1Z&u7C4nhT9?tH;KWEbp2pDqVR-1m@YOsz2-dD?ecnc zPW)3HuKimjVts-PTZtlXjJ$l?y?E7lE}m!obSu%1TXYLjS>3IE`v)7DQpIVMOrPug zpB<3#Brfh--18kwW+dt^8cu6Id{6J>qGMn%#K9cao64%>j}~;R26z^A1rYu}fzz}U zIMP(Eo-3N3o_-HG`*M>ZAwFIJp%<_ExmEyzgo~y4ZK*oH)i&FBGH9qcmtN_;Gfz-5 zy`8($irmLHC#V`e&xfsI+)lb2D}cmF0f~!_zW3(YVolX-Y}f!$ z{H9-J#>T-xLBSY>ry8~NiVHNxv4&yD51sR73fy8LBqYSa1oVt1ssXZP13tL!Srd8_ zh%;MmW*zv2T}CFKNQd9%w*AsyYKh$1*7j+e@BUE*vw#JTY8Kz=URptc=G(WFwzjs- zCY9kXB8c}Gz2lk{(Kt5>P3;nYQpWiR*y`X);^2xq00V5r$V+qL$5L^(_U9#ihF zr6f@oxJ4b@JqY2G$qQQHSexD{)hPk!Okb_}Zd+gSn4|R>dZDN||DxMJI9Tf68DM4Y z^OGAK{WFkoIfCwTA0EiE@SFG0ZEfDa+6^w88kpc?m*&k|=jVmdt*pfp=(}SQgK~r& z9`(hNaImnfr1K5oBsSaJgUHmRoaJ3ToMX?qo?=#hm-|vhg%FTEIDnRZNJSTeN5s^0 zpDf>K9q0@_TKcpWk_=R0nW*+j78L4y#iSIDux{xrLoDYNPvpvCicWzXA0Kh^&l%nR zZZC;+v=`XKYxCJ1>^3jxnKQ3gNnGl?+{UV>XJ$U4qkHY_T#hkW9zLrob0#NXw!}st zNa#h~kH^H0v29@}8z1~ndi1WiJnp*{O}|)&2YQ%gOH_YeI?rFw;l<3M6;Y!j3(Chf~^?i~~4JY$sfu|a322A@o_haSvx@$r56-W-=bPm4b5?$S%5 zRp`y_ozx6ja$J}5)Bqa^3o@trsB|n{dbRZr3STH_XET*vFDv{w1 zs1UTBIu*slCH;ffF9?xs^0`uf0W{SPP@JQgoQ9^VTWu?tt(}wM=0ek_Oy=u6r4Qc6 ze5Tfv|4Wc7;xp=upMGHKsU7eEzWlTkuS^Aed7;iu46tWxYMcy^=@VV>b<7@z4H*0> z?Vov!{?7p%CBrgZ;#V-}8XKo7&OHX>37oG0+z|3Cc3I{Mft+Ho!d z{lw>VbaXbGHgiq|_#G31tgMABZ6D%HF(6(2zL!085czH1t2ER%DUhh8&obrsy(^k5rcjyoO&9_57c!+LGv`!`(ynO8 zuL3V&Z&C#|gB|{rSJRHE0$*<*$#^#yu_Xc{Ak?y+CLMty2{io0wY4AP;|W`R_kQ+~ z$*MU!^JJNL614eYNF8oKNu^wh$qNe$4OfbQZ2^GVYOd0hWU))cagxSn$$yn3lh=6g z<5SfwK;h$ONqUV5DYd`2E z@>WJKm)Uo>;NoD+#r|IT?IT_X2ENG1$Y5hu?B0bVc8;1)In$Ho^{X33S%**uxk&%tjV82*G^_BX>5M%98{HU)V3yv{B^0T ztD}<+6xKHn5doYQ7hoU(;nAskl1eS~N5bYk ztcOQOZ2+peUM&sN0{j$$WAkV|%Y3R>ogU}t_*f8u?}zddYeI!evMMIxEbld;HhS(e z+YC=VWeLy#sS7^#YC{4h$!ozj>oT*&q|)(p&IgS>=WT+kTUxSgn!C%?*-e0igwm9l z0-{Scq^XWJ$sKvmpw_xA9NZ`|bphg|qoa#kEQT&*`yFwg#r4G@A{4$y`(Do5TX>U1 z3etw@%te`;(BqRZ^#kNTJTbxHq(iL)VOSq-(YzZPQN|tr2&C@eOy?SvolQGiX}oKk znU>afF#@xu#Rs|+K1|r#kP&zKd1p~YNF}n#sFhl>A{mlU0<KW8vqf|P^pvDTX&3DfVu>F9+n);?nb9(`kwW={NXz_fiQBwChKTTO&t;{r|@&yD) zd|8I=RFhF{%3oQfK9^{;Xvmef-Pk9E@h=RhTEH@=oI2<=P>j}i)co@^WHJ{xeJ<7e zc|OEUQnY<8S_W^2deBk8&cr%}`SG5QH)oCIicwI|_g&IJCwdi#Jm~m{o8$}w=p_C2 zh!>8@32ehk1IqK94FzDK4L2l(MySWa@3hjSW3?P>Se3$u(>Q=0MUITi3%)F(tPzFH z@w|Y8p8I7G>IfKf7&J%7{<+(d)MAs{1fs>ugWi>ph%mV~jTXpu=_WE5qa|R^tOpY<0S{HYD|5LeJ-o;yU3kud4p}rfPt;8~4WzGPlgmI%?YC4rV=*DemblNsT z&+J6t;^QOiMrL_gN{!jxezIzv&kliw#UmH%=N(S7%tIHPeG;NobQtQA7W`hY`C0(h zsiL;3VIF92I28flV1yoeQzW7d;0VxqizYwKI+*-ZrI%38{@)QqxPqF1^}pW$By64i z7^x2xsN(&V>cs;G@nTYS+nL-ldBYgxvM;xf%;ay)1HfP-(EkLF4^p7%CVMpio@)dR zzaB0sDbY8c{VWzS#{&izeS1!%`0k~+osEsKN)&+oxnTmu-%50i^)c?Fn} z%d?1lv&o>aRzHZ*@wbnCC^AIxQa(_3v%f*|Uy(8Lrpra7Xe~feih(isPwL z7!I3j6crx`WYM*qCz45(WxnFD|2{4*Iw5z-(E2ir&+rV@ur8Apply and Close button to publish the corresponding faces in the study. + TUI Command: GetFreeFacesIDs(Shape), where \em Shape is a shape to be checked. @@ -15,4 +17,4 @@ a shape to be checked. See also a \ref tui_free_faces_page "TUI example". -*/ \ No newline at end of file +*/ diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts index 06cb15a74..cc359f60e 100644 --- a/src/GEOMGUI/GEOM_msg_en.ts +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -836,6 +836,10 @@ Please, select face, shell or solid and try again GEOM_FREE_FACES Free faces + + GEOM_FREE_FACES_NAME + Free_face + GEOM_FREE_FACES_TITLE Free faces diff --git a/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx b/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx index 8fe66a4bd..051ca495a 100644 --- a/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx +++ b/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx @@ -26,38 +26,35 @@ // #include "RepairGUI_FreeFacesDlg.h" -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include #include +#include -#include -#include -#include - -#include -#include #include -#include #include +#include +#include +#include +#include #include -#include + #define SPACING 6 #define MARGIN 9 @@ -71,27 +68,32 @@ // TRUE to construct a modal dialog. //================================================================================= RepairGUI_FreeFacesDlg::RepairGUI_FreeFacesDlg( GeometryGUI* GUI, QWidget* parent, - bool modal ) - : QDialog( parent, 0 ), - GEOMBase_Helper( dynamic_cast( parent ) ), - myGeomGUI( GUI ), - myDisplayer( 0 ) + bool modal) + : GEOMBase_Skeleton(GUI, parent, modal), + myDisplayer (0), + myEdit (0) { - setAttribute( Qt::WA_DeleteOnClose ); - - setSizeGripEnabled( true ); - + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_FREE_FACES"))); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); setWindowTitle( tr( "GEOM_FREE_FACES_TITLE" ) ); /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_FREE_FACES")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); + + mainFrame()->GroupBoxName->hide(); + QGroupBox* aMainGrp = new QGroupBox( tr( "GEOM_SELECTED_SHAPE" ), this ); QLabel* lab = new QLabel( tr( "GEOM_OBJECT" ), aMainGrp ); - mySelBtn = new QPushButton( aMainGrp ); - mySelBtn->setIcon( image1 ); + QPushButton *aSelBtn = new QPushButton( aMainGrp ); + aSelBtn->setIcon( image1 ); myEdit = new QLineEdit( aMainGrp ); myEdit->setReadOnly( true ); myEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); @@ -101,37 +103,19 @@ RepairGUI_FreeFacesDlg::RepairGUI_FreeFacesDlg( GeometryGUI* GUI, QWidget* paren aMainLay->setSpacing( SPACING ); aMainLay->setMargin( MARGIN ); aMainLay->addWidget( lab ); - aMainLay->addWidget( mySelBtn ); + aMainLay->addWidget( aSelBtn ); aMainLay->addWidget( myEdit ); - QFrame* aFrame = new QFrame( this ); - aFrame->setFrameStyle( QFrame::Box | QFrame::Sunken ); - QPushButton* aCloseBtn = new QPushButton( tr( "GEOM_BUT_CLOSE" ), aFrame ); - QPushButton* aHelpBtn = new QPushButton( tr( "GEOM_BUT_HELP" ), aFrame ); + QVBoxLayout* aLay = new QVBoxLayout (centralWidget()); + aLay->setSpacing(SPACING); + aLay->setMargin(MARGIN); + aLay->addWidget(aMainGrp); - QHBoxLayout* aBtnLay = new QHBoxLayout( aFrame ); - aBtnLay->setSpacing( SPACING ); - aBtnLay->setMargin( MARGIN ); - aBtnLay->addWidget( aCloseBtn ); - aBtnLay->addSpacing( SPACING ); - aBtnLay->addStretch(); - aBtnLay->addWidget( aHelpBtn ); - - QVBoxLayout* aLay = new QVBoxLayout( this ); - aLay->setSpacing( SPACING ); - aLay->setMargin( MARGIN ); - aLay->addWidget( aMainGrp ); - aLay->addStretch(); - aLay->addWidget( aFrame ); + resize(minimumSizeHint()); + /***************************************************************/ myHelpFileName = "free_faces_page.html"; - connect( aCloseBtn, SIGNAL( clicked() ), SLOT( onClose() ) ); - connect( aHelpBtn, SIGNAL( clicked() ), SLOT( onHelp() ) ); - connect( mySelBtn, SIGNAL( clicked() ), - this, SLOT ( onSetEditCurrentArgument() ) ); - /***************************************************************/ - Init(); } @@ -145,70 +129,6 @@ RepairGUI_FreeFacesDlg::~RepairGUI_FreeFacesDlg() } -//================================================================================= -// function : onClose -// purpose : SLOT. Called when "close" button pressed. Close dialog -//================================================================================= -void RepairGUI_FreeFacesDlg::onClose() -{ - globalSelection(); - disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 ); - myGeomGUI->SetActiveDialogBox( 0 ); - reject(); - erasePreview(); -} - -//================================================================================= -// function : onHelp() -// purpose : -//================================================================================= -void RepairGUI_FreeFacesDlg::onHelp() -{ - LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); - if ( app ) - app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString(""), myHelpFileName ); - else { - QString platform; -#ifdef WIN32 - platform = "winapplication"; -#else - platform = "application"; -#endif - SUIT_MessageBox::warning( this, - tr( "WRN_WARNING" ), - tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ). - arg( app->resourceMgr()->stringValue( "ExternalBrowser", - platform ) ). - arg( myHelpFileName ) ); - } -} - -//================================================================================= -// function : onDeactivate -// purpose : Deactivate this dialog -//================================================================================= -void RepairGUI_FreeFacesDlg::onDeactivate() -{ - setEnabled( false ); - globalSelection(); - disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 ); - myGeomGUI->SetActiveDialogBox( 0 ); -} - -//================================================================================= -// function : onActivate -// purpose : Activate this dialog -//================================================================================= -void RepairGUI_FreeFacesDlg::onActivate() -{ - myGeomGUI->EmitSignalDeactivateDialog(); - setEnabled( true ); - myGeomGUI->SetActiveDialogBox( this ); - connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), - SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) ); - activateSelection(); -} - //================================================================================= // function : Init() // purpose : @@ -216,22 +136,76 @@ void RepairGUI_FreeFacesDlg::onActivate() void RepairGUI_FreeFacesDlg::Init() { myObj = GEOM::GEOM_Object::_nil(); + myEditCurrentArgument = myEdit; - /* signals and slots connections */ - connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT ( onDeactivate() ) ); - connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), - SIGNAL( currentSelectionChanged() ), SLOT ( onSelectionDone() ) ); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_FREE_FACES_NAME")); + buttonOk()->setEnabled(false); + buttonApply()->setEnabled(false); activateSelection(); - onSelectionDone(); + SelectionIntoArgument(); } //================================================================================= -// function : onSelectionDone +// function : ClickOnOk() +// purpose : +//================================================================================= +void RepairGUI_FreeFacesDlg::ClickOnOk() +{ + if (ClickOnApply()) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool RepairGUI_FreeFacesDlg::ClickOnApply() +{ + if (!onAccept()) + return false; + + initName(); + return true; +} + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void RepairGUI_FreeFacesDlg::ActivateThisDialog() +{ + GEOMBase_Skeleton::ActivateThisDialog(); + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + activateSelection(); + displayPreview(true); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void RepairGUI_FreeFacesDlg::enterEvent(QEvent*) +{ + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); +} + +//================================================================================= +// function : SelectionIntoArgument // purpose : SLOT. Called when selection changed. //================================================================================= -void RepairGUI_FreeFacesDlg::onSelectionDone() +void RepairGUI_FreeFacesDlg::SelectionIntoArgument() { + myEditCurrentArgument->setText(""); + myObj = GEOM::GEOM_Object::_nil(); erasePreview(); LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); @@ -239,7 +213,8 @@ void RepairGUI_FreeFacesDlg::onSelectionDone() aSelMgr->selectedObjects(aSelList); if ( aSelList.Extent() != 1 ) { - myEdit->setText( "" ); + buttonOk()->setEnabled(false); + buttonApply()->setEnabled(false); return; } @@ -247,27 +222,19 @@ void RepairGUI_FreeFacesDlg::onSelectionDone() GEOMBase::ConvertIOinGEOMObject( aSelList.First() ); if ( !GEOMBase::IsShape( anObj ) ) { - myEdit->setText( "" ); + buttonOk()->setEnabled(false); + buttonApply()->setEnabled(false); return; - } - else { + } else { myObj = anObj; + myEditCurrentArgument->setText(GEOMBase::GetName(myObj)); displayPreview( true, false, true, true, 3 ); } } -//================================================================================= -// function : enterEvent() -// purpose : Mouse enter onto the dialog to activate it -//================================================================================= -void RepairGUI_FreeFacesDlg::enterEvent( QEvent* ) -{ - onActivate(); -} - //================================================================================= // function : activateSelection -// purpose : activate selection of faces, shells, and solids +// purpose : activate selection of solids //================================================================================= void RepairGUI_FreeFacesDlg::activateSelection() { @@ -277,15 +244,6 @@ void RepairGUI_FreeFacesDlg::activateSelection() globalSelection( aMap ); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_FreeFacesDlg::closeEvent( QCloseEvent* ) -{ - onClose(); -} - //================================================================================= // function : createOperation // purpose : @@ -316,11 +274,15 @@ bool RepairGUI_FreeFacesDlg::execute( ObjectList& objects ) TopoDS_Shape aSelShape; TopoDS_Shape aFace; TopTools_IndexedMapOfShape anIndices; + int aNbObj = 0; + if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) { myEdit->setText( GEOMBase::GetName( myObj ) ); QString aMess; if ( !isValid( aMess ) ) { erasePreview( true ); + buttonOk()->setEnabled(false); + buttonApply()->setEnabled(false); return false; } @@ -349,8 +311,11 @@ bool RepairGUI_FreeFacesDlg::execute( ObjectList& objects ) } } } - - for ( int i = 0, n = aFaceLst->length(); i < n; i++ ) { + + int i; + int n = aFaceLst->length(); + + for (i = 0; i < n; i++ ) { aFace = anIndices.FindKey( aFaceLst[i] ); try { getDisplayer()->SetColor( Quantity_NOC_RED ); @@ -363,9 +328,27 @@ bool RepairGUI_FreeFacesDlg::execute( ObjectList& objects ) catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); + buttonOk()->setEnabled(false); + buttonApply()->setEnabled(false); + return false; } } + + // Create sub-objects + GEOM::ListOfGO_var aList = anOper->MakeSubShapes(myObj, aFaceLst); + + aNbObj = aList->length(); + + for (i = 0; i < aNbObj; i++) { + objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); + } + + aResult = true; } + + buttonOk()->setEnabled(aNbObj > 0); + buttonApply()->setEnabled(aNbObj > 0); + return aResult; } @@ -380,28 +363,12 @@ GEOM_Displayer* RepairGUI_FreeFacesDlg::getDisplayer() return myDisplayer; } -//================================================================================= -// function : SetEditCurrentArgument -// purpose : -//================================================================================= -void RepairGUI_FreeFacesDlg::onSetEditCurrentArgument() +//================================================================ +// Function : getFather +// Purpose : Get father object for object to be added in study +// (called with addInStudy method) +//================================================================ +GEOM::GEOM_Object_ptr RepairGUI_FreeFacesDlg::getFather (GEOM::GEOM_Object_ptr) { - myEdit->setFocus(); - onSelectionDone(); -} - -//================================================================================= -// function : keyPressEvent() -// purpose : -//================================================================================= -void RepairGUI_FreeFacesDlg::keyPressEvent( QKeyEvent* e ) -{ - QDialog::keyPressEvent( e ); - if ( e->isAccepted() ) - return; - - if ( e->key() == Qt::Key_F1 ) { - e->accept(); - onHelp(); - } + return myObj; } diff --git a/src/RepairGUI/RepairGUI_FreeFacesDlg.h b/src/RepairGUI/RepairGUI_FreeFacesDlg.h index 160d4bffa..2e3f12f7f 100644 --- a/src/RepairGUI/RepairGUI_FreeFacesDlg.h +++ b/src/RepairGUI/RepairGUI_FreeFacesDlg.h @@ -27,11 +27,9 @@ #ifndef REPAIRGUI_FREEFACESDLG_H #define REPAIRGUI_FREEFACESDLG_H -#include -#include +#include class GEOM_Displayer; -class QPushButton; class QLineEdit; class GeometryGUI; @@ -39,8 +37,7 @@ class GeometryGUI; // class : RepairGUI_FreeFacesDlg // purpose : //================================================================================= -class RepairGUI_FreeFacesDlg : public QDialog, - public GEOMBase_Helper +class RepairGUI_FreeFacesDlg : public GEOMBase_Skeleton { Q_OBJECT @@ -53,30 +50,24 @@ protected: virtual GEOM::GEOM_IOperations_ptr createOperation(); virtual bool isValid( QString& ); virtual bool execute( ObjectList& ); - + virtual GEOM::GEOM_Object_ptr getFather (GEOM::GEOM_Object_ptr); + private: void Init(); void enterEvent( QEvent* ); - void closeEvent( QCloseEvent* ); - void keyPressEvent( QKeyEvent* ); void activateSelection(); GEOM_Displayer* getDisplayer(); private slots: - void onClose(); - void onHelp(); - void onDeactivate(); - void onActivate(); - void onSelectionDone(); - void onSetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void SelectionIntoArgument(); + void ActivateThisDialog(); private: GEOM_Displayer* myDisplayer; GEOM::GEOM_Object_var myObj; - QPushButton* mySelBtn; QLineEdit* myEdit; - GeometryGUI* myGeomGUI; - QString myHelpFileName; }; #endif // REPAIRGUI_FREEFACESDLG_H