Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refs #550: fix crash when myObject is NULL
[modules/hydro.git]
/
src
/
HYDROGUI
/
HYDROGUI_CalculationDlg.cxx
diff --git
a/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx
b/src/HYDROGUI/HYDROGUI_CalculationDlg.cxx
index 08b27e22ff9c04b21168a49dee6af61c75d44f59..c23683e9ac1c16eccefef716e6131012acc106fe 100644
(file)
--- 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
// 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
//
// 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 );
// 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( 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;
// 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( 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 );
aTopContainer->setLayout( aTopLayout );
@@
-239,6
+235,8
@@
QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() {
connect( anAddBtn, SIGNAL( clicked() ), SIGNAL( addObjects() ) );
connect( aRemoveBtn, SIGNAL( clicked() ), SIGNAL( removeObjects() ) );
connect( anAddBtn, SIGNAL( clicked() ), SIGNAL( addObjects() ) );
connect( aRemoveBtn, SIGNAL( clicked() ), SIGNAL( removeObjects() ) );
+ connect( myGeomObjects, SIGNAL( orderChanged() ), SLOT( onOrderChanged() ) );
+
return aPage;
}
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 );
// 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( 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 );
// 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 );
aPage->setLayout( aPageLayout );
@@
-318,13
+316,13
@@
QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
aLayout->addWidget( myBrowser, 0, 0, 1, 2 );
aLayout->addWidget( myBrowser, 0, 0, 1, 2 );
- myBat
i
metryLabel = new QLabel( tr( "BATHYMETRY" ), aFrame );
+ myBat
hy
metryLabel = new QLabel( tr( "BATHYMETRY" ), aFrame );
myBathymetryChoice = new QComboBox( aFrame );
myBathymetryChoice->setVisible( false );
myBathymetryChoice = new QComboBox( aFrame );
myBathymetryChoice->setVisible( false );
- myBat
i
metryLabel->setVisible( false );
+ myBat
hy
metryLabel->setVisible( false );
- aLayout->addWidget( myBat
i
metryLabel, 1, 0 );
+ aLayout->addWidget( myBat
hy
metryLabel, 1, 0 );
aLayout->addWidget( myBathymetryChoice, 1, 1 );
aPage->setLayout( aLayout );
aLayout->addWidget( myBathymetryChoice, 1, 1 );
aPage->setLayout( aLayout );
@@
-336,6
+334,7
@@
QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
connect( myBrowser,
SIGNAL( dropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ),
SLOT( onZonesDropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ) );
connect( myBrowser,
SIGNAL( dropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ),
SLOT( onZonesDropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ) );
+ connect( myBrowser, SIGNAL( newRegion() ), this, SLOT( OnNewRegion() ) );
return aPage;
}
return aPage;
}
@@
-410,6
+409,11
@@
void HYDROGUI_CalculationDlg::onZonesDropped( const QList<SUIT_DataObject*>& the
}
}
}
}
+void HYDROGUI_CalculationDlg::OnNewRegion()
+{
+ emit createRegion( myBrowser->getSelected() );
+}
+
void HYDROGUI_CalculationDlg::onMergeTypeSelected( int theIndex )
{
int aType = myBathymetryChoice->itemData( theIndex ).toInt();
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 );
}
myBathymetryChoice->setVisible( doShow );
- myBatimetryLabel->setVisible( doShow );
+ myBathymetryChoice->setEnabled( getMode() == HYDROData_CalculationCase::MANUAL );
+ myBathymetryLabel->setVisible( doShow );
}
void HYDROGUI_CalculationDlg::setObjectName( const QString& theName )
}
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::set
Move
ZonesEnabled( const bool theIsEnabled )
+void HYDROGUI_CalculationDlg::set
Edit
ZonesEnabled( const bool theIsEnabled )
{
{
- //TODO: to be reimplemented
- foreach ( QTreeView* aView, myBrowser->findChildren<QTreeView*>() ) {
- aView->setDragEnabled ( theIsEnabled );
- }
+ myBrowser->setReadOnly( !theIsEnabled );
}
/**
}
/**
@@
-725,8
+727,21
@@
HYDROData_ListOfRules HYDROGUI_CalculationDlg::getRules() const
/**
Set rules.
@param theRules the list of rules
/**
Set rules.
@param theRules the list of rules
-*/
+
*/
void HYDROGUI_CalculationDlg::setRules( const HYDROData_ListOfRules& theRules ) const
{
myPriorityWidget->setRules( theRules );
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();
+}