X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOCCViewer%2FOCCViewer_CreateRestoreViewDlg.cxx;h=4c4ae27b09369e94a876730f2088b5ea664ca9ac;hb=533affbecb3e001b103b2e7c41af58e33e4cce9c;hp=4e700069647201a405bf00dc11b320a8056d31d3;hpb=53415443fa7c248984f053da559cc8765623088c;p=modules%2Fgui.git diff --git a/src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx b/src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx index 4e7000696..4c4ae27b0 100755 --- a/src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx +++ b/src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -40,8 +40,6 @@ OCCViewer_CreateRestoreViewDlg::OCCViewer_CreateRestoreViewDlg( QWidget* aWin, O myParametersMap = theViewWindow->getViewAspects(); - myKeyFlag = 0; - int aQuantityOfItems = myParametersMap.count(); setFixedSize( 400, 300 ); @@ -70,7 +68,7 @@ OCCViewer_CreateRestoreViewDlg::OCCViewer_CreateRestoreViewDlg( QWidget* aWin, O myListBox->insertItem( i, myParametersMap[ i ].name ); myListBox->item( i )->setFlags( myListBox->item( i )->flags() | Qt::ItemIsEditable ); } - + myListBox->item( 0 )->setSelected( true ); changeImage( myListBox->item( 0 ) ); } else @@ -78,8 +76,8 @@ OCCViewer_CreateRestoreViewDlg::OCCViewer_CreateRestoreViewDlg( QWidget* aWin, O myListBox->clear(); myListBox->insertItem( 0, "No Items" ); } - - connect( myListBox, SIGNAL( itemClicked( QListWidgetItem* ) ), this, SLOT( changeImage( QListWidgetItem* ) ) ); + myListBox->setSelectionMode( QAbstractItemView::ExtendedSelection ); + connect( myListBox, SIGNAL( currentItemChanged(QListWidgetItem*, QListWidgetItem *)), this, SLOT( changeImage( QListWidgetItem* ) ) ); connect( myListBox, SIGNAL( itemChanged( QListWidgetItem* ) ), this, SLOT( editItemText( QListWidgetItem* ) ) ); aLayout->addWidget( myListBox ); @@ -125,41 +123,12 @@ void OCCViewer_CreateRestoreViewDlg::changeImage( QListWidgetItem* curItem ) { int lowLevel = -1; int highLevel = -1; - int index = curItem->listWidget()->row( curItem ); - if( myKeyFlag == 2 ) - { - for( int i = 0; i < (int)myListBox->count(); i++ ) - { - if( myListBox->item( i )->isSelected() && i != index ) - { - myListBox->clearSelection(); - if( i > index ) - { - lowLevel = index; - highLevel = i; - } - else - { - lowLevel = i; - highLevel = index; - } - for( int j = lowLevel; j <= highLevel; j++ ) - myListBox->item( j )->setSelected( true ); - break; - } - if( myListBox->item( i )->isSelected() && i == index ) - myListBox->item( i )->setSelected( true ); - } - } - + int index = curItem->listWidget()->row( curItem ); Handle(V3d_View) aView3d = myCurViewPort->getView(); myCurrentItem = myParametersMap[ index ]; Standard_Boolean prev = aView3d->SetImmediateUpdate( Standard_False ); aView3d->SetScale( myCurrentItem.scale ); -#if OCC_VERSION_LARGE <= 0x06070100 - aView3d->SetCenter( myCurrentItem.centerX, myCurrentItem.centerY ); -#endif aView3d->SetProj( myCurrentItem.projX, myCurrentItem.projY, myCurrentItem.projZ ); aView3d->SetTwist( myCurrentItem.twist ); aView3d->SetAt( myCurrentItem.atX, myCurrentItem.atY, myCurrentItem.atZ ); @@ -196,10 +165,10 @@ void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems() //Calculate current index in case if "item" is last selected item. if(i == selectedItems.count() - 1) { - if(position != myListBox->count() - 1) - curIndex = position; - else - curIndex = position - 1; + if(position != myListBox->count() - 1) + curIndex = position; + else + curIndex = position - 1; } //Delete item @@ -208,16 +177,15 @@ void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems() //Shift parameters in the map for( int j = position; j < (int)myParametersMap.count(); j++ ) { - if( j != myParametersMap.count() - 1 ) - myParametersMap[ j ] = myParametersMap[ j + 1 ]; - else - myParametersMap.removeAt( j ); + if( j != myParametersMap.count() - 1 ) + myParametersMap[ j ] = myParametersMap[ j + 1 ]; + else + myParametersMap.removeAt( j ); } } if( curIndex >= 0 ) { - myListBox->setCurrentItem( myListBox->item( curIndex ) ); - changeImage( myListBox->item( curIndex ) ); + myListBox->setItemSelected( myListBox->item( curIndex ), true ); } } if( !myListBox->count() ) @@ -257,38 +225,6 @@ void OCCViewer_CreateRestoreViewDlg::editItemText( QListWidgetItem* anItem ) myParametersMap[ index ].name = anItem->text().toLatin1(); } -/*! - Custom event filter -*/ -bool OCCViewer_CreateRestoreViewDlg::eventFilter( QObject* anObj, QEvent* anEv ) -{ - if( anEv->type() == QEvent::KeyPress ) - { - QKeyEvent* aKeyEv = ( QKeyEvent* )anEv; - if( aKeyEv->key() == Qt::Key_Control ) - { - myKeyFlag = 1; - myListBox->setSelectionMode( QAbstractItemView::MultiSelection ); - } - else if( aKeyEv->key() == Qt::Key_Shift ) - { - myKeyFlag = 2; - myListBox->setSelectionMode( QAbstractItemView::MultiSelection ); - } - else - myListBox->setSelectionMode( QAbstractItemView::SingleSelection ); - } - if( anEv->type() == QEvent::KeyRelease ) - myKeyFlag = 0; - - if( !myKeyFlag ) - { - if( anEv->type() == QEvent::KeyPress || anEv->type() == QEvent::MouseButtonPress ) - myListBox->setSelectionMode( QAbstractItemView::SingleSelection ); - } - return QWidget::eventFilter( anObj, anEv ); -} - /*! SLOT: called on OK click, emits dlgOk() and closes dialog */