-// SMESH SMESHGUI : GUI for SMESH component
+// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
//
-// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
-// 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.
+// 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.
//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+// SMESH SMESHGUI : GUI for SMESH component
// File : SMESHGUI_FilterLibraryDlg.cxx
// Author : Sergey LITONIN, Open CASCADE S.A.S.
-//
-
// SMESH includes
+//
#include "SMESHGUI_FilterLibraryDlg.h"
#include "SMESHGUI.h"
connect(myFileName, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
connect(myOpenBtn, SIGNAL(clicked()), this, SLOT(onBrowse()));
- connect(myListBox, SIGNAL(currentTextChanged(const QString&)),
- this, SLOT(onFilterChanged(const QString&)));
+ connect(myListBox, SIGNAL(itemSelectionChanged()),
+ this, SLOT(onFilterChanged()));
connect(myAddBtn, SIGNAL(clicked()), this, SLOT(onAddBtnPressed()));
connect(myDeleteBtn, SIGNAL(clicked()), this, SLOT(onDeleteBtnPressed()));
aLay->setMargin(MARGIN);
aLay->setSpacing(SPACING);
- myButtons[ BTN_OK ] = new QPushButton(tr("SMESH_BUT_OK" ), aGrp);
+ myButtons[ BTN_OK ] = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), aGrp);
myButtons[ BTN_Apply ] = new QPushButton(tr("SMESH_BUT_APPLY"), aGrp);
- QLabel* aLbl = new QLabel(aGrp);
- aLbl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-
myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
myButtons[ BTN_Close ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
myButtons[ BTN_Help ] = new QPushButton(tr("SMESH_BUT_HELP"), aGrp);
}
if (myFileName->text() != myLibrary->GetFileName())
- myLibrary->SetFileName(myFileName->text().toLatin1().data());
+ myLibrary->SetFileName( myFileName->text().toLatin1().constData() );
bool aResult = false;
aResult = true;
} else if (myMode == EDIT || myMode == ADD_TO) {
SMESH::Filter_var aFilter = createFilter();
- if (!myLibrary->Replace(myCurrFilterName.toLatin1().data(),
- myName->text().toLatin1().data(),
+ if (!myListBox->selectedItems().empty() &&
+ !myLibrary->Replace(myCurrFilterName.toLatin1().constData(),
+ myName->text().toLatin1().constData(),
aFilter.in())) {
SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
tr("ERROR_OF_EDITING"));
setFileName(fName);
- QString aName = myListBox->item(myListBox->count() - 1)->text();
+ QListWidgetItem* item = myListBox->item( myListBox->count()-1 );
+ QString aName = item ? item->text() : QString::null;
processNewLibrary();
if (myMode == ADD_TO)
if (aFilterMgr->_is_nil())
return;
- myLibrary = aFilterMgr->LoadLibrary(autoExtension(getFileName()).toLatin1().data());
+ myLibrary = aFilterMgr->LoadLibrary(autoExtension(getFileName()).toLatin1().constData());
if (myLibrary->_is_nil()) {
if (myMode == COPY_FROM) {
SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
return;
} else {
myLibrary = aFilterMgr->CreateLibrary();
- myLibrary->SetFileName(getFileName().toLatin1().data());
+ myLibrary->SetFileName(getFileName().toLatin1().constData());
}
}
//=======================================================================
// name : SMESHGUI_FilterLibraryDlg::onFilterChanged
-// Purpose : SLOT. Called when selected filter of library changed
+// Purpose : SLOT. Called when selected filter of library is changed
//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onFilterChanged(const QString& theName)
+void SMESHGUI_FilterLibraryDlg::onFilterChanged()
{
+ QString theName = myListBox->currentItem() ? myListBox->currentItem()->text() : QString::null;
if (myLibrary->_is_nil())
return;
}
SMESH::Filter_var aFilter = createFilter();
- myLibrary->Replace(myCurrFilterName.toLatin1().data(),
- myName->text().toLatin1().data(),
+ myLibrary->Replace(myCurrFilterName.toLatin1().constData(),
+ myName->text().toLatin1().constData(),
aFilter);
}
// Fill table with filter parameters
- SMESH::Filter_var aFilter = myLibrary->Copy(theName.toLatin1().data());
+ SMESH::Filter_var aFilter = myLibrary->Copy(theName.toLatin1().constData());
myCurrFilterName = theName;
myCurrFilter = myListBox->currentRow();
myName->setText(theName);
myTable->Clear(myTable->GetType());
- if (!aFilter->GetCriteria(aCriteria))
+ if (CORBA::is_nil( aFilter ) || !aFilter->GetCriteria(aCriteria))
return;
for (int i = 0, n = aCriteria->length(); i < n; i++)
myTable->AddCriterion(aCriteria[ i ], myTable->GetType());
myTable->Update();
+ updateControlsVisibility(); // IPAL19974
}
//=======================================================================
//=======================================================================
void SMESHGUI_FilterLibraryDlg::onReturnPressed()
{
- QString aName = myListBox->item(myListBox->count() - 1)->text();
+ QListWidgetItem* item = myListBox->item( myListBox->count()-1 );
+ QString aName = item ? item->text() : QString::null;
processNewLibrary();
return;
SMESH::Filter_var aFilter = createFilter();
- myLibrary->Replace(myCurrFilterName.toLatin1().data(),
- myName->text().toLatin1().data(),
+ myLibrary->Replace(myCurrFilterName.toLatin1().constData(),
+ myName->text().toLatin1().constData(),
aFilter);
}
+ myTable->Clear(myTable->GetType());
addFilterToLib(getDefaultFilterName());
}
// add new filter in library
bool aResult = !aFilter->GetPredicate()->_is_nil()
- ? myLibrary->Add(aName.toLatin1().data(), aFilter)
- : myLibrary->AddEmpty(aName.toLatin1().data(), (SMESH::ElementType)myTable->GetType());
+ ? myLibrary->Add(aName.toLatin1().constData(), aFilter)
+ : myLibrary->AddEmpty(aName.toLatin1().constData(), (SMESH::ElementType)myTable->GetType());
if (!aResult) {
SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
int anIndex = getIndex(myCurrFilterName);
- if (anIndex == -1 || !myLibrary->Delete(myCurrFilterName.toLatin1().data())) {
+ if (anIndex == -1 || !myLibrary->Delete(myCurrFilterName.toLatin1().constData())) {
SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
tr("ERROR_OF_DELETING"));
} else {
if (valid)
{
SMESH::Filter_var aFilter = createFilter(myTable->GetType());
- myLibrary->Replace(myCurrFilterName.toLatin1().data(),
- myName->text().toLatin1().data(),
+ myLibrary->Replace(myCurrFilterName.toLatin1().constData(),
+ myName->text().toLatin1().constData(),
aFilter);
}
}