X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_InputPanel.cxx;h=0049fac767fe8fe0a6300fb991e0f88c1530e04b;hb=fce3f1240b6161d7cb837344078e5943b90eca65;hp=a496a82d7c416e31d2e9832ebab8dd8b45edd65f;hpb=0df953327ef66ec8f0d1ac3a625b569ba1a6a3c2;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_InputPanel.cxx b/src/HYDROGUI/HYDROGUI_InputPanel.cxx index a496a82d..0049fac7 100644 --- a/src/HYDROGUI/HYDROGUI_InputPanel.cxx +++ b/src/HYDROGUI/HYDROGUI_InputPanel.cxx @@ -1,8 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE -// -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either @@ -20,18 +16,26 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -#include "HYDROGUI_InputPanel.h" -#include "HYDROGUI_Module.h" - -#include -#include +#include +#ifndef LIGHT_MODE + #include + #include + #include +#endif +#include #include #include #include +#include -HYDROGUI_InputPanel::HYDROGUI_InputPanel( HYDROGUI_Module* theModule, const QString& theTitle, bool doInitLayout ) +HYDROGUI_InputPanel::HYDROGUI_InputPanel( HYDROGUI_Module* theModule, const QString& theTitle, + bool doInitLayout, bool isSplitter ) +#ifdef LIGHT_MODE +: QDockWidget( 0 ), +#else : QDockWidget( theModule->application()->desktop() ), +#endif myModule( theModule ) { setFloating( false ); @@ -47,6 +51,14 @@ HYDROGUI_InputPanel::HYDROGUI_InputPanel( HYDROGUI_Module* theModule, const QStr QBoxLayout* aMainLayout = new QVBoxLayout( myMainFrame ); aMainLayout->setMargin( 0 ); aMainLayout->setSpacing( 5 ); + if( isSplitter ) + { + mySplitter = new QSplitter( myMainFrame ); + mySplitter->setOrientation( Qt::Vertical ); + aMainLayout->addWidget( mySplitter, 1 ); + } + else + mySplitter = 0; aLayout->addWidget( myMainFrame, 1 ); @@ -57,17 +69,20 @@ HYDROGUI_InputPanel::HYDROGUI_InputPanel( HYDROGUI_Module* theModule, const QStr aBtnsLayout->setMargin( 5 ); aBtnsLayout->setSpacing( 5 ); - myCancel = new QPushButton( tr( "CANCEL" ), myBtnFrame ); + myCancel = new QPushButton( tr( "CLOSE" ), myBtnFrame ); myHelp = new QPushButton( tr( "HELP" ), myBtnFrame ); if ( doInitLayout ) { + myApplyAndClose = new QPushButton( tr( "APPLY_AND_CLOSE" ), myBtnFrame ); myApply = new QPushButton( tr( "APPLY" ), myBtnFrame ); + aBtnsLayout->addWidget( myApplyAndClose, 0 ); aBtnsLayout->addWidget( myApply, 0 ); aBtnsLayout->addWidget( myCancel, 0 ); aBtnsLayout->addStretch( 1 ); aBtnsLayout->addWidget( myHelp, 0 ); + connect( myApplyAndClose, SIGNAL( clicked() ), this, SLOT( onApplyAndClose() ) ); connect( myApply, SIGNAL( clicked() ), this, SLOT( onApply() ) ); } connect( myCancel, SIGNAL( clicked() ), this, SLOT( onCancel() ) ); @@ -85,12 +100,18 @@ HYDROGUI_Module* HYDROGUI_InputPanel::module() const bool HYDROGUI_InputPanel::isApplyEnabled() const { - return myApply->isEnabled(); + return myApply->isEnabled(); } void HYDROGUI_InputPanel::setApplyEnabled( bool on ) { - myApply->setEnabled( on ); + myApplyAndClose->setEnabled( on ); + myApply->setEnabled( on ); +} + +void HYDROGUI_InputPanel::onApplyAndClose() +{ + emit panelApplyAndClose(); } void HYDROGUI_InputPanel::onApply() @@ -113,22 +134,57 @@ void HYDROGUI_InputPanel::closeEvent ( QCloseEvent * event ) emit panelCancel(); } +void HYDROGUI_InputPanel::insertWidget( QWidget* theWidget, int theIndex, int theStretch ) +{ + if( mySplitter ) + { + mySplitter->insertWidget( theIndex, theWidget ); + mySplitter->setStretchFactor( theIndex, theStretch ); + } + else + { + QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); + aMainLayout->insertWidget( theIndex, theWidget, theStretch ); + } +} + void HYDROGUI_InputPanel::addWidget( QWidget* theWidget, int theStretch ) { - QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); - aMainLayout->addWidget( theWidget, theStretch ); + if( mySplitter ) + { + int s = mySplitter->count(); + mySplitter->addWidget( theWidget ); + mySplitter->setStretchFactor( s, theStretch ); + } + else + { + QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); + aMainLayout->addWidget( theWidget, theStretch ); + } } -void HYDROGUI_InputPanel::addLayout( QLayout* theLayout ) +void HYDROGUI_InputPanel::addLayout( QLayout* theLayout, int theStretch ) { - QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); - aMainLayout->addLayout( theLayout ); + if( mySplitter ) + { + } + else + { + QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); + aMainLayout->addLayout( theLayout, theStretch ); + } } void HYDROGUI_InputPanel::addStretch() { - QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); - aMainLayout->addStretch(); + if( mySplitter ) + { + } + else + { + QBoxLayout* aMainLayout = dynamic_cast( myMainFrame->layout() ); + aMainLayout->addStretch(); + } } QFrame* HYDROGUI_InputPanel::mainFrame() const @@ -140,3 +196,8 @@ QFrame* HYDROGUI_InputPanel::buttonFrame() const { return myBtnFrame; } + +QSplitter* HYDROGUI_InputPanel::splitter() const +{ + return mySplitter; +}