Salome HOME
updated copyright message
[modules/gui.git] / src / OCCViewer / OCCViewer_CreateRestoreViewDlg.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 4e70006..1fab786
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  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 );
@@ -123,43 +121,12 @@ void OCCViewer_CreateRestoreViewDlg::changeImage( QListWidgetItem* curItem )
 {
   if( curItem && ( curItem->flags() & Qt::ItemIsEditable ) )
   {
-    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 +163,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 +175,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() )
@@ -254,39 +220,7 @@ const viewAspectList& OCCViewer_CreateRestoreViewDlg::parameters() const
 void OCCViewer_CreateRestoreViewDlg::editItemText( QListWidgetItem* anItem )
 {
   int index = anItem->listWidget()->row( 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 );
+  myParametersMap[ index ].name = anItem->text().toUtf8();
 }
 
 /*!