X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ProfileDlg.cxx;h=c6c49c1c682b4101a07831af174d1efbc134bb1f;hb=7bb8da28edc30835dbef7be9b5790dfe925b1bf4;hp=540949356bf39e6dbeace09641246efa03612bab;hpb=0f453d925c6129452cfcecbccb5115aa0bb76ca6;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ProfileDlg.cxx b/src/HYDROGUI/HYDROGUI_ProfileDlg.cxx index 54094935..c6c49c1c 100644 --- a/src/HYDROGUI/HYDROGUI_ProfileDlg.cxx +++ b/src/HYDROGUI/HYDROGUI_ProfileDlg.cxx @@ -21,6 +21,7 @@ #include "HYDROGUI_Tool.h" #include "HYDROGUI_AISTrihedron.h" #ifndef TEST_MODE +#include #include "HYDROGUI_Tool2.h" #endif @@ -38,7 +39,7 @@ #ifndef TEST_MODE #include #endif - +#include #include #include @@ -51,22 +52,22 @@ #include #include #include - +#include const QString splitter_key = "HYDROGUI_ProfileDlg::splitter"; HYDROGUI_ProfileDlg::HYDROGUI_ProfileDlg( HYDROGUI_Module* theModule, const QString& theTitle, - bool theSingleProfileMode ) + bool theIsEdit ) : HYDROGUI_ViewerDlg( theModule, theTitle, true ), myName( NULL ), myProfileNames (NULL), myProfilesPointer (NULL), - mySingleProfileMode (theSingleProfileMode) + myIsEdit (theIsEdit) { QFrame* name_frame = new QFrame( mainFrame() ); QHBoxLayout* name_layout = new QHBoxLayout( name_frame ); name_layout->setMargin( 0 ); QLabel* aNameLabel = new QLabel(tr("PROFILE_NAME_TLT"), this); name_layout->addWidget(aNameLabel); - if (theSingleProfileMode) + if (!theIsEdit) { myName = new QLineEdit(this); name_layout->addWidget(myName); @@ -75,12 +76,9 @@ HYDROGUI_ProfileDlg::HYDROGUI_ProfileDlg( HYDROGUI_Module* theModule, const QStr { myProfileNames = new QListWidget(this); myProfileNames->setSelectionMode(QAbstractItemView::SingleSelection); - //myProfileNames->setEditable(true); - //myProfileNames->setInsertPolicy(QComboBox::InsertPolicy::NoInsert); name_layout->addWidget(myProfileNames); - // - myAddProfBtn = new QPushButton("Add Profile(s)", this); - myRemProfBtn = new QPushButton("Remove Profile(s)", this); + myAddProfBtn = new QPushButton(tr("ADD_PROFILES"), this); + myRemProfBtn = new QPushButton(tr("REMOVE_PROFILE"), this); name_layout->addWidget(myAddProfBtn); name_layout->addWidget(myRemProfBtn); } @@ -107,9 +105,9 @@ HYDROGUI_ProfileDlg::HYDROGUI_ProfileDlg( HYDROGUI_Module* theModule, const QStr connect( myEditorWidget, SIGNAL( selectionChanged() ), this, SIGNAL( selectionChanged() ) ); connect( myEditorWidget, SIGNAL( subOperationStarted(QWidget*, bool) ), this, SLOT( processStartedSubOperation(QWidget*, bool) ) ); connect( myEditorWidget, SIGNAL( subOperationFinished(QWidget*) ), this, SLOT( processFinishedSubOperation(QWidget*) ) ); - if (!mySingleProfileMode) + if (myIsEdit) { - //connect( myProfileNames, SIGNAL( currentTextChanged(QString)), SLOT(ProfileNameChanged(QString)) ); + connect( myProfileNames, SIGNAL( currentTextChanged(QString)), SLOT(ProfileNameChanged(QString)) ); connect( myProfileNames, SIGNAL( itemSelectionChanged()), this, SLOT( onProfileIndexChanged())); connect( myProfileNames, SIGNAL( itemChanged(QListWidgetItem*)), this, SLOT( onProfileNameChanged(QListWidgetItem*))); connect( myAddProfBtn, SIGNAL( clicked(bool)), this, SLOT( onAddBtnPressed(bool))); @@ -144,26 +142,27 @@ void HYDROGUI_ProfileDlg::reset() myEditorWidget->reset(); myEditorWidget->setActionMode( CurveCreator_Widget::AdditionMode ); viewer()->setTrihedronShown( false ); // Issue #548 - myProfileNames->clear(); + if (myProfileNames) + myProfileNames->clear(); } void HYDROGUI_ProfileDlg::setProfileName( const QString& theName ) { - if (!mySingleProfileMode) + if (myIsEdit) return; myName->setText(theName); - //myProfileNames->setItemText(theInd, theName); //should used TODO check this - //myName->setText(theName); } void HYDROGUI_ProfileDlg::eraseProfile( int index ) { myProfileNames->takeItem(index); + if (myProfileNames->count() == 1) + myRemProfBtn->setEnabled(false); } void HYDROGUI_ProfileDlg::addProfileName( const QString& theName, const QColor& theColor ) { - if (mySingleProfileMode) + if (!myIsEdit) return; myProfileNames->blockSignals(true); myProfileNames->addItem(theName); @@ -174,16 +173,20 @@ void HYDROGUI_ProfileDlg::addProfileName( const QString& theName, const QColor& SPixmap.fill(theColor); QIcon SIcon(SPixmap); anItem->setIcon( SIcon ); - //anItem->setBackground(QBrush(theColor)); if (count == 1) anItem->setSelected(true); + if (count == 1 && myIsEdit) + myRemProfBtn->setEnabled(false); + if (count > 1) + myRemProfBtn->setEnabled(true); + myProfileNames->blockSignals(false); } QStringList HYDROGUI_ProfileDlg::getProfileNames() const { QStringList aProfNames; - if (mySingleProfileMode) + if (!myIsEdit) aProfNames << myName->text(); else for (int i = 0; i < myProfileNames->count(); i++) @@ -255,10 +258,10 @@ void HYDROGUI_ProfileDlg::processFinishedSubOperation( QWidget* theWidget ) myAddElementBox->hide(); } -//void HYDROGUI_ProfileDlg::ProfileNameChanged(QString theNewText) -//{ -// myProfileNames->setItemText( myProfileNames->currentIndex(), theNewText ); //TODO??? -//} +void HYDROGUI_ProfileDlg::ProfileNameChanged(QString text) +{ + myCurrentName = text; +} void HYDROGUI_ProfileDlg::onProfileIndexChanged() { @@ -307,7 +310,12 @@ void HYDROGUI_ProfileDlg::SwitchToProfile(int theIndex) anAISObject->SetWidth(1); } } - (*myProfilesPointer)[0]->getDisplayer()->Update(); + + if( myProfilesPointer && + myProfilesPointer->size()>0 && + myProfilesPointer->at(0) && + myProfilesPointer->at(0)->getDisplayer() ) + myProfilesPointer->at(0)->getDisplayer()->Update(); } void HYDROGUI_ProfileDlg::onAddBtnPressed(bool) @@ -325,11 +333,31 @@ void HYDROGUI_ProfileDlg::onRemoveBtnPressed(bool) void HYDROGUI_ProfileDlg::onProfileNameChanged(QListWidgetItem* item) { int ind = GetProfileSelectionIndex(); - //if (ind > -1) - //TODO - QString text = item->text(); + if (ind > -1) + { + int count = myProfileNames->count(); + QSet names; + for (int i = 0; i < count; i++) + { + QListWidgetItem* citem = myProfileNames->item(i); + if (item!=citem) + names << citem->text(); + } + QString curText = item->text(); + myProfileNames->blockSignals(true); + if (names.contains(curText)) + { + QString mes = tr( "PROFILE_ALREADY_EXISTS" ); + QString title = tr( "PROFILEDLG_WARNING" ); +#ifndef TEST_MODE + SUIT_MessageBox::warning( module()->getApp()->desktop(), title, mes ); +#endif + item->setText(myCurrentName); + } + myProfileNames->blockSignals(false); + } } - +/* void HYDROGUI_ProfileDlg::SetSingleProfileMode(bool SingleMode) { mySingleProfileMode = SingleMode; @@ -338,7 +366,7 @@ void HYDROGUI_ProfileDlg::SetSingleProfileMode(bool SingleMode) bool HYDROGUI_ProfileDlg::GetSingleProfileMode() const { return mySingleProfileMode; -} +}*/ Handle(AIS_Trihedron) HYDROGUI_ProfileDlg::trihedron() {