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 #568: use ordered list view with selection synchronized with object browser...
[modules/hydro.git]
/
src
/
HYDROGUI
/
HYDROGUI_ObjComboBox.cxx
diff --git
a/src/HYDROGUI/HYDROGUI_ObjComboBox.cxx
b/src/HYDROGUI/HYDROGUI_ObjComboBox.cxx
index 8dff3a2f3d747acaa761b3d68d9a7c51ca8b5c38..6ead5e400e990a34767327a589e5f33883aa651d 100644
(file)
--- a/
src/HYDROGUI/HYDROGUI_ObjComboBox.cxx
+++ b/
src/HYDROGUI/HYDROGUI_ObjComboBox.cxx
@@
-1,8
+1,4
@@
-// Copyright (C) 2007-2015 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
@@
-28,6
+24,7
@@
#include <LightApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <LightApp_Application.h>
#include <LightApp_SelectionMgr.h>
+#include <QTimer>
#include <QLabel>
#include <QLayout>
#include <QComboBox>
#include <QLabel>
#include <QLayout>
#include <QComboBox>
@@
-44,7
+41,8
@@
HYDROGUI_ObjComboBox::HYDROGUI_ObjComboBox( HYDROGUI_Module* theModule, const QS
QBoxLayout* base = new QHBoxLayout( this );
base->setMargin( 0 );
QBoxLayout* base = new QHBoxLayout( this );
base->setMargin( 0 );
- base->addWidget( new QLabel( theTitle, this ) );
+ if ( !theTitle.isEmpty() )
+ base->addWidget( new QLabel( theTitle, this ) );
base->addWidget( myObject = new QComboBox( this ) );
myObject->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) );
base->addWidget( myObject = new QComboBox( this ) );
myObject->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) );
@@
-80,9
+78,17
@@
void HYDROGUI_ObjComboBox::setObjectFilter( HYDROGUI_ObjComboBoxFilter* filter )
void HYDROGUI_ObjComboBox::reset()
{
void HYDROGUI_ObjComboBox::reset()
{
+ bool block = myObject->signalsBlocked();
+ myObject->blockSignals( true );
+
myObject->clear();
myObject->addItems( objectNames() );
myObject->clear();
myObject->addItems( objectNames() );
- onSelectionChanged();
+ myObject->setCurrentIndex( -1 );
+
+ myObject->blockSignals( block );
+
+ onIndexChanged( myObject->currentIndex() );
+ updateSelection();
}
void HYDROGUI_ObjComboBox::setSectedObject( const QString& theName )
}
void HYDROGUI_ObjComboBox::setSectedObject( const QString& theName )
@@
-129,13
+135,21
@@
void HYDROGUI_ObjComboBox::onIndexChanged( int idx )
}
void HYDROGUI_ObjComboBox::onSelectionChanged()
}
void HYDROGUI_ObjComboBox::onSelectionChanged()
+{
+ if ( !objectFilter() || objectFilter()->isActive( this ) )
+ QTimer::singleShot( 0, this, SLOT( updateSelection() ) );
+}
+
+void HYDROGUI_ObjComboBox::updateSelection()
{
int idx = -1;
Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::GetSelectedObject( module() );
if ( !anObject.IsNull() )
idx = myObject->findText( anObject->GetName() );
{
int idx = -1;
Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::GetSelectedObject( module() );
if ( !anObject.IsNull() )
idx = myObject->findText( anObject->GetName() );
- myObject->setCurrentIndex( idx );
- if ( idx >= 0 )
+ if ( idx >= 0 && myObject->currentIndex() != idx )
+ {
+ myObject->setCurrentIndex( idx );
emit objectSelected( myObject->itemText( idx ) );
emit objectSelected( myObject->itemText( idx ) );
+ }
}
}