X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_CalculationDlg.cxx;h=c23683e9ac1c16eccefef716e6131012acc106fe;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=08b27e22ff9c04b21168a49dee6af61c75d44f59;hpb=bae3f70c4e95c5bff78d7994d04b1cc4dddbc407;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx b/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx index 08b27e22..c23683e9 100644 --- a/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx +++ b/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 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 -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -183,9 +179,9 @@ QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() { // fill the objects frame with two lists, two labels and with buttons frame anObjsLayout->addWidget( anObjectsLabel, 0, 0, Qt::AlignHCenter ); anObjsLayout->addWidget( anIncludedLabel, 0, 2, Qt::AlignHCenter ); - anObjsLayout->addWidget( myAvailableGeomObjects, 1, 0, Qt::AlignHCenter ); + anObjsLayout->addWidget( myAvailableGeomObjects, 1, 0 ); anObjsLayout->addWidget( aBtnsFrame, 1, 1, Qt::AlignHCenter ); - anObjsLayout->addWidget( myGeomObjects, 1, 2, Qt::AlignHCenter ); + anObjsLayout->addWidget( myGeomObjects, 1, 2 ); // fill the top of the page QGridLayout* aTopLayout = new QGridLayout; @@ -197,7 +193,7 @@ QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() { aTopLayout->addWidget( aLimitsLabel, 1, 0, Qt::AlignHCenter ); aTopLayout->addWidget( myPolylineName, 1, 1 ); aTopLayout->addWidget( aModeGroup, 2, 0, 1, 2 ); - aTopLayout->addWidget( anObjectsFrame, 3, 0, 1, 2, Qt::AlignHCenter ); + aTopLayout->addWidget( anObjectsFrame, 3, 0, 1, 2 ); aTopContainer->setLayout( aTopLayout ); @@ -239,6 +235,8 @@ QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() { connect( anAddBtn, SIGNAL( clicked() ), SIGNAL( addObjects() ) ); connect( aRemoveBtn, SIGNAL( clicked() ), SIGNAL( removeObjects() ) ); + connect( myGeomObjects, SIGNAL( orderChanged() ), SLOT( onOrderChanged() ) ); + return aPage; } @@ -286,16 +284,16 @@ QWizardPage* HYDROGUI_CalculationDlg::createGroupsPage() { // Fill the objects frame with two lists, two labels and with buttons frame aGroupsLayout->addWidget( anAvailableLabel, 0, 0, Qt::AlignHCenter ); aGroupsLayout->addWidget( anIncludedLabel, 0, 2, Qt::AlignHCenter ); - aGroupsLayout->addWidget( myAvailableGroups, 1, 0, Qt::AlignHCenter ); + aGroupsLayout->addWidget( myAvailableGroups, 1, 0 ); aGroupsLayout->addWidget( aBtnsFrame, 1, 1, Qt::AlignHCenter ); - aGroupsLayout->addWidget( myGroups, 1, 2, Qt::AlignHCenter ); + aGroupsLayout->addWidget( myGroups, 1, 2 ); // Fill the page QGridLayout* aPageLayout = new QGridLayout( aPage ); aPageLayout->setMargin( 5 ); aPageLayout->setSpacing( 5 ); aPageLayout->setVerticalSpacing( 10 ); - aPageLayout->addWidget( aGroupsFrame, 0, 0, Qt::AlignHCenter ); + aPageLayout->addWidget( aGroupsFrame, 0, 0 ); aPage->setLayout( aPageLayout ); @@ -318,13 +316,13 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() { aLayout->addWidget( myBrowser, 0, 0, 1, 2 ); - myBatimetryLabel = new QLabel( tr( "BATHYMETRY" ), aFrame ); + myBathymetryLabel = new QLabel( tr( "BATHYMETRY" ), aFrame ); myBathymetryChoice = new QComboBox( aFrame ); myBathymetryChoice->setVisible( false ); - myBatimetryLabel->setVisible( false ); + myBathymetryLabel->setVisible( false ); - aLayout->addWidget( myBatimetryLabel, 1, 0 ); + aLayout->addWidget( myBathymetryLabel, 1, 0 ); aLayout->addWidget( myBathymetryChoice, 1, 1 ); aPage->setLayout( aLayout ); @@ -336,6 +334,7 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() { connect( myBrowser, SIGNAL( dropped( const QList&, SUIT_DataObject*, int, Qt::DropAction ) ), SLOT( onZonesDropped( const QList&, SUIT_DataObject*, int, Qt::DropAction ) ) ); + connect( myBrowser, SIGNAL( newRegion() ), this, SLOT( OnNewRegion() ) ); return aPage; } @@ -410,6 +409,11 @@ void HYDROGUI_CalculationDlg::onZonesDropped( const QList& the } } +void HYDROGUI_CalculationDlg::OnNewRegion() +{ + emit createRegion( myBrowser->getSelected() ); +} + void HYDROGUI_CalculationDlg::onMergeTypeSelected( int theIndex ) { int aType = myBathymetryChoice->itemData( theIndex ).toInt(); @@ -461,7 +465,8 @@ void HYDROGUI_CalculationDlg::onSelected( SUIT_DataObject* theObject ) } myBathymetryChoice->setVisible( doShow ); - myBatimetryLabel->setVisible( doShow ); + myBathymetryChoice->setEnabled( getMode() == HYDROData_CalculationCase::MANUAL ); + myBathymetryLabel->setVisible( doShow ); } void HYDROGUI_CalculationDlg::setObjectName( const QString& theName ) @@ -681,15 +686,12 @@ void HYDROGUI_CalculationDlg::setMode( int theMode ) } /** - Enable/disable zones drag and drop. - @param theIsEnabled if true - zones drag and drop will be enabled + Enable/disable zones drag'n'drop and renaming. + @param theIsEnabled if true - zones drag'n'drop and renaming will be enabled */ -void HYDROGUI_CalculationDlg::setMoveZonesEnabled( const bool theIsEnabled ) +void HYDROGUI_CalculationDlg::setEditZonesEnabled( const bool theIsEnabled ) { - //TODO: to be reimplemented - foreach ( QTreeView* aView, myBrowser->findChildren() ) { - aView->setDragEnabled ( theIsEnabled ); - } + myBrowser->setReadOnly( !theIsEnabled ); } /** @@ -725,8 +727,21 @@ HYDROData_ListOfRules HYDROGUI_CalculationDlg::getRules() const /** Set rules. @param theRules the list of rules -*/ + */ void HYDROGUI_CalculationDlg::setRules( const HYDROData_ListOfRules& theRules ) const { myPriorityWidget->setRules( theRules ); -} \ No newline at end of file +} + +/** + Slot called when objects order is changed. + */ +void HYDROGUI_CalculationDlg::onOrderChanged() +{ + bool isConfirmed = true; + emit orderChanged( isConfirmed ); + if( isConfirmed ) + myPriorityWidget->setObjects( getGeometryObjects() ); + else + myGeomObjects->undoLastMove(); +}