X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FHYDROGUI%2FHYDROGUI_CalculationDlg.cxx;h=778ac4311666fb01038a44833c13200a089a1ba7;hb=71ba58001e1084f0995fff43bf5e4643b153e5e0;hp=396e2c579c436b469beb17c07325d9b77c6551dc;hpb=1a34f38dc2200f3ebf8b7d54858f320ca080945b;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx b/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx index 396e2c57..778ac431 100644 --- a/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx +++ b/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx @@ -19,7 +19,7 @@ #include "HYDROGUI_CalculationDlg.h" #include "HYDROGUI_ObjSelector.h" -#include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include "HYDROGUI_DataBrowser.h" #include "HYDROGUI_DataModel.h" #include "HYDROGUI_ListSelector.h" @@ -71,9 +71,8 @@ HYDROGUI_CalculationDlg::HYDROGUI_CalculationDlg( HYDROGUI_Module* theModule, co { addPage( createObjectsPage() ); addPage( createGroupsPage() ); - addPage( createLandCoversPage() ); + addPage( createLandCoverMapPage() ); addPage( createZonesPage() ); - addPage( createLandCoverZonesPage() ); } HYDROGUI_CalculationDlg::~HYDROGUI_CalculationDlg() @@ -85,20 +84,17 @@ void HYDROGUI_CalculationDlg::reset() myObjectName->clear(); HYDROGUI_ListModel::Object2VisibleList anObject2VisibleList; myGeomObjects->setObjects(anObject2VisibleList); - myLandCovers->setObjects(anObject2VisibleList); myPolylineName->clear(); + myLandCoverMapName->clear(); myStricklerTableName->clear(); myAvailableGeomObjects->clear(); - myAvailableLandCovers->clear(); // Activate the automatic mode setMode( HYDROData_CalculationCase::AUTOMATIC ); - setLandCoverMode( HYDROData_CalculationCase::AUTOMATIC ); // Reset the priority widget state QList anObjects; myPriorityWidget->setObjects( anObjects ); - myLandCoverPriorityWidget->setObjects( anObjects ); } QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() { @@ -313,16 +309,19 @@ QWizardPage* HYDROGUI_CalculationDlg::createGroupsPage() { return aPage; } -QWizardPage* HYDROGUI_CalculationDlg::createLandCoversPage() { +QWizardPage* HYDROGUI_CalculationDlg::createLandCoverMapPage() { QWizardPage* aPage = new QWizardPage( mainFrame() ); QFrame* aFrame = new QFrame( aPage ); - // Splitter - myLandCoverSplitter = new QSplitter(Qt::Vertical); - // Top of the page QWidget* aTopContainer = new QWidget; - + + // Combo-box to choose land cover map object + QLabel* aLandCoverMapLabel = new QLabel( tr( "LAND_COVER_MAP" ), aPage ); + myLandCoverMapName = new QComboBox( aPage ); + myLandCoverMapName->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); + connect( myLandCoverMapName, SIGNAL( activated( const QString & ) ), + SIGNAL( landCoverMapSelected( const QString & ) ) ); // Combo-box to choose Strickler table name QLabel* aStricklerTableLabel = new QLabel( tr( "STRICKLER_TABLE" ), aPage ); myStricklerTableName = new QComboBox( aPage ); @@ -330,124 +329,25 @@ QWizardPage* HYDROGUI_CalculationDlg::createLandCoversPage() { connect( myStricklerTableName, SIGNAL( activated( const QString & ) ), SIGNAL( StricklerTableSelected( const QString & ) ) ); - // Mode selector (auto/manual) - QGroupBox* aModeGroup = new QGroupBox( tr( "MODE" ) ); - - QRadioButton* aManualRB = new QRadioButton( tr( "MANUAL" ), mainFrame() ); - QRadioButton* anAutoRB = new QRadioButton( tr( "AUTO" ), mainFrame() ); - - myLandCoverModeButtons = new QButtonGroup( mainFrame() ); - myLandCoverModeButtons->addButton( anAutoRB, HYDROData_CalculationCase::AUTOMATIC ); - myLandCoverModeButtons->addButton( aManualRB, HYDROData_CalculationCase::MANUAL ); - - QBoxLayout* aModeSelectorLayout = new QHBoxLayout; - aModeSelectorLayout->setMargin( 5 ); - aModeSelectorLayout->setSpacing( 5 ); - aModeSelectorLayout->addWidget( anAutoRB ); - aModeSelectorLayout->addWidget( aManualRB ); - aModeGroup->setLayout( aModeSelectorLayout ); - - // Available land covers - QLabel* aLandCoversLabel = new QLabel( tr( "CALCULATION_REFERENCE_LAND_COVERS" ) ); - myAvailableLandCovers = new QListWidget( aPage ); - myAvailableLandCovers->setSelectionMode( QListWidget::ExtendedSelection ); - myAvailableLandCovers->setEditTriggers( QListWidget::NoEditTriggers ); - myAvailableLandCovers->setViewMode( QListWidget::ListMode ); - myAvailableLandCovers->setSortingEnabled( true ); - - // Included land covers - QLabel* anIncludedLabel = new QLabel( tr( "INCLUDED_LAND_COVERS" ) ); - myLandCovers = new HYDROGUI_OrderedListWidget( aPage, 16 ); - myLandCovers->setHiddenObjectsShown(true); - myLandCovers->setVisibilityIconShown(false); - myLandCovers->setContentsMargins(QMargins()); - - // Include/Exclude buttons - QFrame* aBtnsFrame = new QFrame; - QVBoxLayout* aBtnsLayout = new QVBoxLayout( aBtnsFrame ); - aBtnsLayout->setMargin( 5 ); - aBtnsLayout->setSpacing( 5 ); - aBtnsFrame->setLayout( aBtnsLayout ); - QPushButton* anAddBtn = new QPushButton( tr("INCLUDE"), aBtnsFrame ); - QPushButton* aRemoveBtn = new QPushButton( tr("EXCLUDE"), aBtnsFrame ); - - // Fill the butons frame with two buttons - aBtnsLayout->addWidget( anAddBtn ); - aBtnsLayout->addWidget( aRemoveBtn ); - aBtnsLayout->addStretch( 1 ); - - // Land covers frame - QFrame* aLandCoversFrame = new QFrame( aPage ); - aLandCoversFrame->setFrameStyle( QFrame::Panel | QFrame::Raised ); - QGridLayout* aLandCoversLayout = new QGridLayout( aLandCoversFrame ); - aLandCoversLayout->setMargin( 5 ); - aLandCoversLayout->setSpacing( 5 ); - aLandCoversFrame->setLayout( aLandCoversLayout ); - - // Fill the land covers frame with two lists, two labels and with buttons frame - aLandCoversLayout->addWidget( aLandCoversLabel, 0, 0, Qt::AlignHCenter ); - aLandCoversLayout->addWidget( anIncludedLabel, 0, 2, Qt::AlignHCenter ); - aLandCoversLayout->addWidget( myAvailableLandCovers, 1, 0 ); - aLandCoversLayout->addWidget( aBtnsFrame, 1, 1, Qt::AlignHCenter ); - aLandCoversLayout->addWidget( myLandCovers, 1, 2 ); - // Fill the top layout of the page - QGridLayout* aTopLayout = new QGridLayout; + QGridLayout* aGridLayout = new QGridLayout; + aGridLayout->setMargin( 5 ); + aGridLayout->setSpacing( 5 ); + aGridLayout->setVerticalSpacing( 10 ); + aGridLayout->addWidget( aLandCoverMapLabel, 0, 0 ); + aGridLayout->addWidget( myLandCoverMapName, 0, 1 ); + aGridLayout->addWidget( aStricklerTableLabel, 1, 0 ); + aGridLayout->addWidget( myStricklerTableName, 1, 1 ); + + QVBoxLayout* aTopLayout = new QVBoxLayout; aTopLayout->setMargin( 5 ); aTopLayout->setSpacing( 5 ); - aTopLayout->setVerticalSpacing( 10 ); - aTopLayout->addWidget( aStricklerTableLabel, 0, 0, Qt::AlignHCenter ); - aTopLayout->addWidget( myStricklerTableName, 0, 1 ); - aTopLayout->addWidget( aModeGroup, 1, 0, 1, 2 ); - aTopLayout->addWidget( aLandCoversFrame, 2, 0, 1, 2 ); - + aTopLayout->addLayout( aGridLayout ); + aTopLayout->addStretch( 1 ); + aTopContainer->setLayout( aTopLayout ); - // Add the top of the page to the splitter - myLandCoverSplitter->insertWidget(0, aTopContainer); - myLandCoverSplitter->setStretchFactor(0, 2); - - // Bottom of the page - myLandCoverPriorityWidget = new HYDROGUI_PriorityWidget( mainFrame() ); - HYDROGUI_PriorityTableModel* aModel = - dynamic_cast( myLandCoverPriorityWidget->getTable()->model() ); - if ( aModel ) - aModel->setColumnCount( 3 ); - - QGroupBox* aPriorityGroup = new QGroupBox( tr( "PRIORITY" ) ); - QBoxLayout* aPriorityLayout = new QHBoxLayout; - aPriorityLayout->setMargin( 5 ); - aPriorityLayout->setSpacing( 5 ); - aPriorityLayout->addWidget( myLandCoverPriorityWidget ); - aPriorityGroup->setLayout( aPriorityLayout ); - - // Add the bottom of the page to the splitter - myLandCoverSplitter->insertWidget(1, aPriorityGroup); - myLandCoverSplitter->setStretchFactor(1, 1); - - // Page layout - QVBoxLayout* aPageLayout = new QVBoxLayout; - aPageLayout->setMargin( 5 ); - aPageLayout->setSpacing( 5 ); - aPageLayout->addWidget( myLandCoverSplitter ); - - aPage->setLayout( aPageLayout ); - - // Create selector - if ( module() ) { - HYDROGUI_ListSelector* aListSelector = - new HYDROGUI_ListSelector( myLandCovers, module()->getApp()->selectionMgr() ); - aListSelector->setAutoBlock( true ); - } - - // Connections - connect( myLandCoverModeButtons, SIGNAL( buttonClicked( int ) ), SIGNAL( changeLandCoverMode( int ) ) ); - connect( anAddBtn, SIGNAL( clicked() ), SIGNAL( addLandCovers() ) ); - connect( aRemoveBtn, SIGNAL( clicked() ), SIGNAL( removeLandCovers() ) ); - - connect( myLandCovers, SIGNAL( orderChanged() ), SLOT( onOrderLandCoverChanged() ) ); - - connect( myLandCoverPriorityWidget, SIGNAL( ruleChanged() ), SLOT( onLandCoverRuleChanged() ) ); + aPage->setLayout( aTopLayout ); return aPage; } @@ -477,6 +377,9 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() { aLayout->addWidget( myBathymetryLabel, 2, 0 ); aLayout->addWidget( myBathymetryChoice, 2, 1 ); + QPushButton* aRegenerateBtn = new QPushButton( tr( "REGENERATE_COLORS" ), this ); + aLayout->addWidget( aRegenerateBtn, 3, 0 ); + aPage->setLayout( aLayout ); connect( myBrowser, SIGNAL( dataChanged() ), SLOT( onDataChanged() ) ); @@ -487,51 +390,10 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() { 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() ) ); - + connect( aRegenerateBtn, SIGNAL( clicked() ), this, SIGNAL( regenerateColors() ) ); return aPage; } -QWizardPage* HYDROGUI_CalculationDlg::createLandCoverZonesPage() { - QWizardPage* aPage = new QWizardPage( mainFrame() ); - QFrame* aFrame = new QFrame( aPage ); - - QGridLayout* aLayout = new QGridLayout( aPage ); - - QLabel* aResultsOnLandCoversLabel = new QLabel( tr( "RESULTS_ON_LAND_COVERS" ), aFrame ); - - myLandCoverBrowser = new HYDROGUI_DataBrowser( module(), NULL, aPage, true ); - myLandCoverBrowser->setAutoOpenLevel( 3 ); - aLayout->setMargin( 5 ); - aLayout->setSpacing( 5 ); - - aLayout->addWidget( aResultsOnLandCoversLabel, 0, 0 ); - aLayout->addWidget( myLandCoverBrowser, 1, 0, 1, 2 ); - - myStricklerTypeLabel = new QLabel( tr( "STRICKLER_TYPE" ), aFrame ); - myStricklerTypeChoice = new QComboBox( aFrame ); - - myStricklerTypeLabel->setVisible( false ); - myStricklerTypeChoice->setVisible( false ); - - aLayout->addWidget( myStricklerTypeLabel, 2, 0 ); - aLayout->addWidget( myStricklerTypeChoice, 2, 1 ); - - aPage->setLayout( aLayout ); - - // Connections - connect( myLandCoverBrowser, SIGNAL( dataChanged() ), SLOT( onDataLandCoverChanged() ) ); - connect( myLandCoverBrowser, SIGNAL( clicked( SUIT_DataObject* ) ), SIGNAL( clickedInZonesBrowser( SUIT_DataObject* ) ) ); - connect( myLandCoverBrowser, SIGNAL( clicked( SUIT_DataObject* ) ), SLOT( onLandCoverZoneSelected( SUIT_DataObject* ) ) ); - connect( myStricklerTypeChoice, SIGNAL( activated( int ) ), SLOT( onMergeStricklerTypeSelected( int ) ) ); - connect( myLandCoverBrowser, - SIGNAL( dropped( const QList&, SUIT_DataObject*, int, Qt::DropAction ) ), - SLOT( onLandCoverZonesDropped( const QList&, SUIT_DataObject*, int, Qt::DropAction ) ) ); - connect( myLandCoverBrowser, SIGNAL( newRegion() ), this, SLOT( OnNewLandCoverRegion() ) ); - - return aPage; -} - - bool HYDROGUI_CalculationDlg::acceptCurrent() const { QString anErrorMsg; @@ -595,7 +457,7 @@ void HYDROGUI_CalculationDlg::onZonesDropped( const QList& the HYDROGUI_Region* aRegion = dynamic_cast(theTargetParent); if ( aRegion ) { - emit moveZones( theTargetParent, aZonesList, false ); + emit moveZones( theTargetParent, aZonesList ); } } } @@ -606,11 +468,6 @@ void HYDROGUI_CalculationDlg::OnNewRegion() emit createRegion( myBrowser->getSelected() ); } -void HYDROGUI_CalculationDlg::OnNewLandCoverRegion() -{ - emit createLandCoverRegion( myLandCoverBrowser->getSelected() ); -} - void HYDROGUI_CalculationDlg::onMergeTypeSelected( int theIndex ) { int aType = myBathymetryChoice->itemData( theIndex ).toInt(); @@ -666,87 +523,6 @@ void HYDROGUI_CalculationDlg::onSelected( SUIT_DataObject* theObject ) myBathymetryLabel->setVisible( doShow ); } -void HYDROGUI_CalculationDlg::onLandCoverZoneSelected( SUIT_DataObject* theObject ) -{ - bool doShow = false; - HYDROGUI_Zone* aZone = dynamic_cast( theObject ); - if ( aZone ) - { - doShow = aZone->isMergingNeed(); - } - - if ( doShow ) - { - // Fill the merge type combo box - bool prevBlock = myStricklerTypeChoice->blockSignals( true ); - myCurrentZone = aZone; - myStricklerTypeChoice->clear(); - myStricklerTypeChoice->addItem( tr("MERGE_UNKNOWN"), HYDROData_Zone::Merge_UNKNOWN ); - QStringList aList = aZone->getObjects(); - for ( int i = 0; i < aList.length(); i++ ) - { - myStricklerTypeChoice->addItem( aList.at( i ), HYDROData_Zone::Merge_Object ); - } - // Select the current choice if any - int aCurIndex = 0; - switch ( aZone->getMergeType() ) - { - case HYDROData_Zone::Merge_Object: - aCurIndex = 1 + aList.indexOf( aZone->text( HYDROGUI_DataObject::AltitudeObjId ) ); - break; - default: - aCurIndex = 0; // Select unknown by default - } - myStricklerTypeChoice->setCurrentIndex( aCurIndex ); - myStricklerTypeChoice->blockSignals( prevBlock ); - } - - myStricklerTypeChoice->setVisible( doShow ); - myStricklerTypeChoice->setEnabled( getLandCoverMode() == HYDROData_CalculationCase::MANUAL ); - myStricklerTypeLabel->setVisible( doShow ); -} - -void HYDROGUI_CalculationDlg::onMergeStricklerTypeSelected( int theIndex ) -{ - int aType = myStricklerTypeChoice->itemData( theIndex ).toInt(); - QString aText = myStricklerTypeChoice->itemText( theIndex ); - emit setMergeStricklerType( aType, aText ); -} - -void HYDROGUI_CalculationDlg::onLandCoverZonesDropped( const QList& theList, - SUIT_DataObject* theTargetParent, int theTargetRow, Qt::DropAction theDropAction ) -{ - QList aZonesList; - HYDROGUI_Zone* aZone; - // Get a list of dropped land cover zones - for ( int i = 0; i < theList.length(); i++ ) - { - aZone = dynamic_cast( theList.at( i ) ); - if ( aZone ) - { - aZonesList.append( aZone ); - } - } - if ( aZonesList.length() > 0 ) - { - // Get the target region - HYDROGUI_NamedObject* aRegionsRoot = dynamic_cast(theTargetParent); - if ( aRegionsRoot ) - { - // Create a new region - emit createLandCoverRegion( aZonesList ); - } - else - { - HYDROGUI_Region* aRegion = dynamic_cast(theTargetParent); - if ( aRegion ) - { - emit moveZones( theTargetParent, aZonesList, true ); - } - } - } -} - void HYDROGUI_CalculationDlg::setObjectName( const QString& theName ) { myObjectName->setText( theName ); @@ -832,39 +608,35 @@ void HYDROGUI_CalculationDlg::setPolylineNames( const QStringList& theObjects, c } } -void HYDROGUI_CalculationDlg::setStricklerTableNames( const QStringList& theObjects, const QStringList& theObjectsEntries ) +void HYDROGUI_CalculationDlg::setLandCoverMapsNames( const QStringList& theObjects, const QStringList& theObjectsEntries ) { - myStricklerTableName->clear(); + myLandCoverMapName->clear(); for ( int i = 0, n = theObjects.length(); i < n; ++i ) { - myStricklerTableName->addItem( theObjects.at( i ), theObjectsEntries.at( i ) ); + myLandCoverMapName->addItem( theObjects.at( i ), theObjectsEntries.at( i ) ); } } -void HYDROGUI_CalculationDlg::setAllGeomObjects( const QStringList& theObjects, const QStringList& theObjectsEntries ) +void HYDROGUI_CalculationDlg::setStricklerTableNames( const QStringList& theObjects, const QStringList& theObjectsEntries ) { - myAvailableGeomObjects->clear(); + myStricklerTableName->clear(); for ( int i = 0, n = theObjects.length(); i < n; ++i ) { - QString anObjName = theObjects.at( i ); - - QListWidgetItem* aListItem = new QListWidgetItem( anObjName, myAvailableGeomObjects ); - aListItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable ); - aListItem->setData( Qt::UserRole, theObjectsEntries.at( i ) ); + myStricklerTableName->addItem( theObjects.at( i ), theObjectsEntries.at( i ) ); } } -void HYDROGUI_CalculationDlg::setAllLandCovers( const QStringList& theObjects, const QStringList& theObjectsEntries ) +void HYDROGUI_CalculationDlg::setAllGeomObjects( const QStringList& theObjects, const QStringList& theObjectsEntries ) { - myAvailableLandCovers->clear(); + myAvailableGeomObjects->clear(); for ( int i = 0, n = theObjects.length(); i < n; ++i ) { QString anObjName = theObjects.at( i ); - QListWidgetItem* aListItem = new QListWidgetItem( anObjName, myAvailableLandCovers ); + QListWidgetItem* aListItem = new QListWidgetItem( anObjName, myAvailableGeomObjects ); aListItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable ); aListItem->setData( Qt::UserRole, theObjectsEntries.at( i ) ); } @@ -886,53 +658,29 @@ QStringList HYDROGUI_CalculationDlg::getSelectedGeomObjects() const return myGeomObjects->getSelectedNames(); } -QStringList HYDROGUI_CalculationDlg::getSelectedLandCovers() const -{ - return myLandCovers->getSelectedNames(); -} - QStringList HYDROGUI_CalculationDlg::getAllGeomObjects() const { return myGeomObjects->getAllNames(); } -QStringList HYDROGUI_CalculationDlg::getAllLandCovers() const -{ - return myLandCovers->getAllNames(); -} - QStringList HYDROGUI_CalculationDlg::getSelectedAvailableGeomObjects() const { return getSelected( myAvailableGeomObjects ); } -QStringList HYDROGUI_CalculationDlg::getSelectedAvailableLandCovers() const -{ - return getSelected( myAvailableLandCovers ); -} - void HYDROGUI_CalculationDlg::setEditedObject( const Handle(HYDROData_CalculationCase) theCase ) { myEditedObject = theCase; myValidator->setEditedObject( theCase ); // Build the calculation case subtree - module()->getDataModel()->buildCaseTree( myBrowser->root(), myEditedObject, false ); + module()->getDataModel()->buildCaseTree( myBrowser->root(), myEditedObject); myBrowser->updateTree(); myBrowser->openLevels(); myBrowser->adjustColumnsWidth(); myBrowser->setAutoUpdate( true ); myBrowser->setUpdateModified( true ); - - // Build the calculation case subtree for Land Cover regions - module()->getDataModel()->buildCaseTree( myLandCoverBrowser->root(), myEditedObject, true ); - - myLandCoverBrowser->updateTree(); - myLandCoverBrowser->openLevels(); - myLandCoverBrowser->adjustColumnsWidth(); - myLandCoverBrowser->setAutoUpdate( true ); - myLandCoverBrowser->setUpdateModified( true ); } HYDROGUI_Zone* HYDROGUI_CalculationDlg::getCurrentZone() const @@ -944,14 +692,14 @@ void HYDROGUI_CalculationDlg::refreshZonesBrowser() { SUIT_DataObject* aRoot = myBrowser->root(); module()->getDataModel()->updateObjectTree( myEditedObject ); - module()->getDataModel()->buildCaseTree( aRoot, myEditedObject, false ); + module()->getDataModel()->buildCaseTree( aRoot, myEditedObject ); myBrowser->updateTree( aRoot ); } void HYDROGUI_CalculationDlg::onDataChanged() { SUIT_DataObject* aRoot = myBrowser->root(); - module()->getDataModel()->buildCaseTree( aRoot, myEditedObject, false ); + module()->getDataModel()->buildCaseTree( aRoot, myEditedObject ); myBrowser->updateTree( aRoot ); } @@ -1011,34 +759,6 @@ void HYDROGUI_CalculationDlg::setMode( int theMode ) } } -/** - Get creation mode for land covers panel. - @param theMode the mode -*/ -int HYDROGUI_CalculationDlg::getLandCoverMode() const -{ - return myLandCoverModeButtons->checkedId(); -} - -/** - Set creation mode for land cover panel. - @param theMode the mode -*/ -void HYDROGUI_CalculationDlg::setLandCoverMode( int theMode ) -{ - bool isBlocked = myLandCoverModeButtons->blockSignals( true ); - myLandCoverModeButtons->button( theMode )->setChecked( true ); - myLandCoverModeButtons->blockSignals( isBlocked ); - - bool isAuto = ( theMode == HYDROData_CalculationCase::AUTOMATIC ); - - myLandCovers->setOrderingEnabled( isAuto ); - QWidget* aWidget = myLandCoverSplitter->widget( 1 ); - if ( aWidget ) { - aWidget->setVisible( isAuto ); - } -} - /** Enable/disable zones drag'n'drop and renaming. @param theIsEnabled if true - zones drag'n'drop and renaming will be enabled @@ -1048,15 +768,6 @@ void HYDROGUI_CalculationDlg::setEditZonesEnabled( const bool theIsEnabled ) myBrowser->setReadOnly( !theIsEnabled ); } -/** - Enable/disable land covers drag'n'drop and renaming. - @param theIsEnabled if true - land covers drag'n'drop and renaming will be enabled -*/ -void HYDROGUI_CalculationDlg::setEditLandCoverZonesEnabled( const bool theIsEnabled ) -{ - myLandCoverBrowser->setReadOnly( !theIsEnabled ); -} - /** Get included geometry objects. @return the list of geometry objects @@ -1078,27 +789,6 @@ QList HYDROGUI_CalculationDlg::getGeometryObjects() return anObjects; } -/** - Get included land covers. - @return the list of land covers - */ -QList HYDROGUI_CalculationDlg::getLandCovers() -{ - QList anEntities = myLandCovers->getObjects(); - QList aLandCovers; - - foreach ( Handle(HYDROData_Entity) anEntity, anEntities ) { - Handle(HYDROData_LandCover) aLandCover = Handle(HYDROData_LandCover)::DownCast( anEntity ); - if ( aLandCover.IsNull() ) { - continue; - } - - aLandCovers << aLandCover; - } - - return aLandCovers; -} - /** Get rules. @return the list of rules @@ -1117,24 +807,6 @@ void HYDROGUI_CalculationDlg::setRules( const HYDROData_ListOfRules& theRules ) myPriorityWidget->setRules( theRules ); } -/** - Get rules defined for land covers. - @return the list of rules - */ -HYDROData_ListOfRules HYDROGUI_CalculationDlg::getLandCoverRules() const -{ - return myLandCoverPriorityWidget->getRules(); -} - -/** - Set rules for land covers. - @param theRules the list of rules - */ -void HYDROGUI_CalculationDlg::setLandCoverRules( const HYDROData_ListOfRules& theRules ) const -{ - myLandCoverPriorityWidget->setRules( theRules ); -} - /** Slot called when objects order is changed. */ @@ -1173,86 +845,16 @@ void HYDROGUI_CalculationDlg::setStricklerTable( const QString& theStricklerTabl emit StricklerTableSelected( theStricklerTableName ); } -void HYDROGUI_CalculationDlg::includeLandCovers( const QStringList& theLandCovers, bool theReset ) -{ - if ( theReset ) - { - HYDROGUI_ListModel::Object2VisibleList anObject2VisibleList; - myLandCovers->setObjects(anObject2VisibleList); - } - - QList aFoundItems; - foreach ( const QString& anObjName, theLandCovers ) { - // Hide the land cover in the available land covers list - aFoundItems = myAvailableLandCovers->findItems( anObjName, Qt::MatchExactly ); - foreach ( QListWidgetItem* anItem, aFoundItems ) { - anItem->setHidden( true ); - } - - // Add the land cover to the list of included objects - Handle(HYDROData_Entity) anObject = - HYDROGUI_Tool::FindObjectByName( module(), anObjName ); - myLandCovers->addObject( HYDROGUI_ListModel::Object2Visible( anObject, true ) ); - } - - myLandCoverPriorityWidget->setObjects( getLandCovers() ); -} - -void HYDROGUI_CalculationDlg::excludeLandCovers( const QStringList& theLandCovers ) -{ - QList aFoundItems; - foreach ( const QString& anObjName, theLandCovers ) { - // Set visible the land cover in the available objects list - aFoundItems = myAvailableLandCovers->findItems( anObjName, Qt::MatchExactly ); - foreach ( QListWidgetItem* anItem, aFoundItems ) { - anItem->setHidden( false ); - } - - // Remove the land cover from the list of included objects - myLandCovers->removeObjectByName( anObjName ); - } - - myLandCoverPriorityWidget->setObjects( getLandCovers() ); -} - -void HYDROGUI_CalculationDlg::refreshLandCoverZonesBrowser() -{ - SUIT_DataObject* aRoot = myLandCoverBrowser->root(); - module()->getDataModel()->updateObjectTree( myEditedObject ); - module()->getDataModel()->buildCaseTree( aRoot, myEditedObject, true ); - myLandCoverBrowser->updateTree( aRoot ); -} - -/** - Slot called when zones created on land covers are changed. - */ -void HYDROGUI_CalculationDlg::onDataLandCoverChanged() +void HYDROGUI_CalculationDlg::setLandCoverMap( const QString& theLandCoverMapName, bool theBlockSignals ) { - SUIT_DataObject* aRoot = myLandCoverBrowser->root(); - module()->getDataModel()->buildCaseTree( aRoot, myEditedObject, true ); - myLandCoverBrowser->updateTree( aRoot ); -} + bool isBlocked; + if ( theBlockSignals ) + isBlocked = myLandCoverMapName->blockSignals( true ); + + myLandCoverMapName->setCurrentIndex( myLandCoverMapName->findText( theLandCoverMapName ) ); -/** - Slot called when land covers order is changed. - */ -void HYDROGUI_CalculationDlg::onOrderLandCoverChanged() -{ - bool isConfirmed = true; - emit orderLandCoverChanged( isConfirmed ); - if( isConfirmed ) - myLandCoverPriorityWidget->setObjects( getLandCovers() ); + if ( theBlockSignals ) + myLandCoverMapName->blockSignals( isBlocked ); else - myLandCovers->undoLastMove(); -} - -/** - Slot called when priority rule for land covers is changed. - */ -void HYDROGUI_CalculationDlg::onLandCoverRuleChanged() -{ - bool isConfirmed = true; - emit ruleLandCoverChanged( isConfirmed ); - if( !isConfirmed ) - myLandCoverPriorityWidget->undoLastChange(); + emit landCoverMapSelected( theLandCoverMapName ); }