From 65bc3ac658df8885601c1146b7f3195758c334fb Mon Sep 17 00:00:00 2001 From: vsv Date: Tue, 1 Apr 2014 12:51:53 +0400 Subject: [PATCH] Added reset command and removed extra icons --- src/XGUI/XGUI_ViewPort.cpp | 38 +++ src/XGUI/XGUI_ViewPort.h | 3 + src/XGUI/XGUI_ViewWindow.cpp | 278 ++++++++++-------- src/XGUI/XGUI_ViewWindow.h | 74 +++-- src/XGUI/XGUI_msg_en.ts | 4 + src/XGUI/XGUI_pictures.qrc | 20 +- src/XGUI/pictures/occ_view_ambient.png | Bin 1435 -> 0 bytes src/XGUI/pictures/occ_view_anticlockwise.png | Bin 936 -> 0 bytes src/XGUI/pictures/occ_view_clipping.png | Bin 809 -> 0 bytes .../pictures/occ_view_clipping_pressed.png | Bin 560 -> 0 bytes src/XGUI/pictures/occ_view_clockwise.png | Bin 869 -> 0 bytes src/XGUI/pictures/occ_view_graduated_axes.png | Bin 650 -> 0 bytes src/XGUI/pictures/occ_view_maximized.png | Bin 236 -> 0 bytes src/XGUI/pictures/occ_view_minimized.png | Bin 255 -> 0 bytes src/XGUI/pictures/occ_view_preselection.png | Bin 621 -> 0 bytes src/XGUI/pictures/occ_view_presets.png | Bin 545 -> 0 bytes src/XGUI/pictures/occ_view_return_3d_view.png | Bin 505 -> 0 bytes src/XGUI/pictures/occ_view_rotation_point.png | Bin 858 -> 0 bytes src/XGUI/pictures/occ_view_scaling.png | Bin 1128 -> 0 bytes src/XGUI/pictures/occ_view_selection.png | Bin 620 -> 0 bytes src/XGUI/pictures/occ_view_shoot.png | Bin 825 -> 0 bytes src/XGUI/pictures/occ_view_style_switch.png | Bin 782 -> 0 bytes src/XGUI/pictures/occ_view_triedre.png | Bin 698 -> 0 bytes .../occ_view_zooming_style_switch.png | Bin 3389 -> 0 bytes 24 files changed, 249 insertions(+), 168 deletions(-) delete mode 100644 src/XGUI/pictures/occ_view_ambient.png delete mode 100644 src/XGUI/pictures/occ_view_anticlockwise.png delete mode 100644 src/XGUI/pictures/occ_view_clipping.png delete mode 100644 src/XGUI/pictures/occ_view_clipping_pressed.png delete mode 100644 src/XGUI/pictures/occ_view_clockwise.png delete mode 100644 src/XGUI/pictures/occ_view_graduated_axes.png delete mode 100644 src/XGUI/pictures/occ_view_maximized.png delete mode 100644 src/XGUI/pictures/occ_view_minimized.png delete mode 100644 src/XGUI/pictures/occ_view_preselection.png delete mode 100644 src/XGUI/pictures/occ_view_presets.png delete mode 100644 src/XGUI/pictures/occ_view_return_3d_view.png delete mode 100644 src/XGUI/pictures/occ_view_rotation_point.png delete mode 100644 src/XGUI/pictures/occ_view_scaling.png delete mode 100644 src/XGUI/pictures/occ_view_selection.png delete mode 100644 src/XGUI/pictures/occ_view_shoot.png delete mode 100644 src/XGUI/pictures/occ_view_style_switch.png delete mode 100644 src/XGUI/pictures/occ_view_triedre.png delete mode 100644 src/XGUI/pictures/occ_view_zooming_style_switch.png diff --git a/src/XGUI/XGUI_ViewPort.cpp b/src/XGUI/XGUI_ViewPort.cpp index 2202683d5..c7d5e3208 100644 --- a/src/XGUI/XGUI_ViewPort.cpp +++ b/src/XGUI/XGUI_ViewPort.cpp @@ -741,3 +741,41 @@ void XGUI_ViewPort::fitAll(bool theKeepScale, bool theWithZ, bool theUpd) activeView()->SetZSize(0.); emit vpTransformed( ); } + +void XGUI_ViewPort::syncronizeWith( const XGUI_ViewPort* ref ) +{ + Handle(V3d_View) refView = ref->getView(); + Handle(V3d_View) tgtView = getView(); + + /* The following params are copied: + - view type( ortho/persp ) + - position of view point + - orientation of high point + - position of the eye + - projection vector + - view center ( 2D ) + - view twist + - view scale + */ + + /* we'll update after setting all params */ + tgtView->SetImmediateUpdate( Standard_False ); + + /* perspective */ + if ( refView->Type() == V3d_PERSPECTIVE ) + tgtView->SetFocale( refView->Focale() ); + + /* copy params */ + Standard_Real x, y, z; + refView->At( x, y, z ); tgtView->SetAt( x, y, z ); + refView->Up( x, y, z ); tgtView->SetUp( x, y, z ); + refView->Eye( x, y, z ); tgtView->SetEye( x, y, z ); + refView->Proj( x, y, z ); tgtView->SetProj( x, y, z ); + refView->Center( x, y ); tgtView->SetCenter( x, y ); + tgtView->SetScale( refView->Scale() ); + tgtView->SetTwist( refView->Twist() ); + + /* update */ + tgtView->Update(); + tgtView->SetImmediateUpdate( Standard_True ); +} diff --git a/src/XGUI/XGUI_ViewPort.h b/src/XGUI/XGUI_ViewPort.h index ccffe4f1a..5d73031a1 100644 --- a/src/XGUI/XGUI_ViewPort.h +++ b/src/XGUI/XGUI_ViewPort.h @@ -55,8 +55,11 @@ public: { return myBackground; } + void setBackground(const XGUI_ViewBackground& bgData); + void syncronizeWith( const XGUI_ViewPort* ref ); + signals: void vpChangeBackground(const XGUI_ViewBackground&); void vpClosed(); diff --git a/src/XGUI/XGUI_ViewWindow.cpp b/src/XGUI/XGUI_ViewWindow.cpp index 74356cac6..db7283557 100644 --- a/src/XGUI/XGUI_ViewWindow.cpp +++ b/src/XGUI/XGUI_ViewWindow.cpp @@ -13,7 +13,7 @@ #include #include #include -//#include +#include #include #include @@ -78,33 +78,40 @@ const char* imageCrossCursor[] = { "32 32 3 1", ". c None", "a c #000000", "# c "................................", "................................" }; //************************************************************************** -void ViewerToolbar::paintEvent(QPaintEvent* theEvent) +void ViewerToolbar::repaintBackground() { - //QTime aTime; - //aTime.start(); QRect aRect = rect(); QRect aVPRect = myVPort->rect(); QPoint aGlobPnt = mapToGlobal(aRect.topLeft()); QPoint aPnt = myVPort->mapFromGlobal(aGlobPnt); - QRect aImgRect( - QRect(aPnt.x(), aPnt.y() + aVPRect.height() - aRect.height(), aRect.width(), aRect.height())); + QRect aImgRect(QRect(aPnt.x(), aPnt.y() + aVPRect.height() - aRect.height(), + aRect.width(), aRect.height())); QPainter(this).drawImage(aRect, myVPort->dumpView(aImgRect, false)); - //QString aMsg = QString("### Painted in %1").arg(aTime.elapsed()); - //qDebug(qPrintable(aMsg)); +} + +void ViewerToolbar::paintEvent(QPaintEvent* theEvent) +{ + repaintBackground(); + QToolBar::paintEvent(theEvent); } //************************************************************************** -void ViewerLabel::paintEvent(QPaintEvent* theEvent) +void ViewerLabel::repaintBackground() { QRect aRect = rect(); QRect aVPRect = myVPort->rect(); QPoint aGlobPnt = mapToGlobal(aRect.topLeft()); QPoint aPnt = myVPort->mapFromGlobal(aGlobPnt); - QRect aImgRect( - QRect(aPnt.x(), aPnt.y() + aVPRect.height() - aRect.height(), aRect.width(), aRect.height())); + QRect aImgRect(QRect(aPnt.x(), aPnt.y() + aVPRect.height() - aRect.height(), + aRect.width(), aRect.height())); QPainter(this).drawImage(aRect, myVPort->dumpView(aImgRect, false)); +} + +void ViewerLabel::paintEvent(QPaintEvent* theEvent) +{ + repaintBackground(); QLabel::paintEvent(theEvent); } @@ -153,79 +160,75 @@ XGUI_ViewWindow::XGUI_ViewWindow(XGUI_Viewer* theViewer, V3d_TypeOfView theType) myGripWgt->setGeometry(BORDER_SIZE + 2, BORDER_SIZE + 2, 19, 32); myGripWgt->setMouseTracking(true); myGripWgt->installEventFilter(this); - connect(myViewPort, SIGNAL(vpTransformed()), myGripWgt, SLOT(update())); - connect(myViewPort, SIGNAL(vpUpdated()), myGripWgt, SLOT(update())); // Create Viewer management buttons myViewBar = new ViewerToolbar(this, myViewPort); QAction* aBtn; - // Dump view - aBtn = new QAction(QIcon(":pictures/occ_view_camera_dump.png"), tr("DUMP_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(dumpView())); - myViewBar->addAction(aBtn); - // Fit all - aBtn = new QAction(QIcon(":pictures/occ_view_fitall.png"), tr("FIT_ALL"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(fitAll())); - myViewBar->addAction(aBtn); - // Fit area - aBtn = new QAction(QIcon(":pictures/occ_view_fitarea.png"), tr("FIT_AREA"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(activateWindowFit())); - myViewBar->addAction(aBtn); - // Zoom - aBtn = new QAction(QIcon(":pictures/occ_view_zoom.png"), tr("ZOOM_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(activateZoom())); - myViewBar->addAction(aBtn); - // Pan - aBtn = new QAction(QIcon(":pictures/occ_view_pan.png"), tr("PAN_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(activatePanning())); - myViewBar->addAction(aBtn); - // Global Panning - aBtn = new QAction(QIcon(":pictures/occ_view_glpan.png"), tr("GLOB_PAN_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(activateGlobalPanning())); - myViewBar->addAction(aBtn); - // Rotation - aBtn = new QAction(QIcon(":pictures/occ_view_rotate.png"), tr("ROTATE_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(activateRotation())); - myViewBar->addAction(aBtn); - // Front view - aBtn = new QAction(QIcon(":pictures/occ_view_front.png"), tr("FRONT_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(frontView())); - myViewBar->addAction(aBtn); - // Back view - aBtn = new QAction(QIcon(":pictures/occ_view_back.png"), tr("BACK_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(backView())); - myViewBar->addAction(aBtn); - // Top view - aBtn = new QAction(QIcon(":pictures/occ_view_top.png"), tr("TOP_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(topView())); - myViewBar->addAction(aBtn); - // Bottom view - aBtn = new QAction(QIcon(":pictures/occ_view_bottom.png"), tr("BOTTOM_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(bottomView())); - myViewBar->addAction(aBtn); - // Left view - aBtn = new QAction(QIcon(":pictures/occ_view_left.png"), tr("LEFT_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(leftView())); - myViewBar->addAction(aBtn); - // Right view - aBtn = new QAction(QIcon(":pictures/occ_view_right.png"), tr("RIGHT_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(rightView())); - myViewBar->addAction(aBtn); - // Clone view - aBtn = new QAction(QIcon(":pictures/occ_view_clone.png"), tr("CLONE_VIEW"), myViewBar); - connect(aBtn, SIGNAL(triggered()), SLOT(cloneView())); - myViewBar->addAction(aBtn); - - //Support copy of background on updating of viewer - connect(myViewPort, SIGNAL(vpTransformed()), myViewBar, SLOT(update())); - connect(myViewPort, SIGNAL(vpUpdated()), myViewBar, SLOT(update())); + // Dump view + aBtn = new QAction(QIcon(":pictures/occ_view_camera_dump.png"), tr("DUMP_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(dumpView())); + myViewBar->addAction(aBtn); + // Fit all + aBtn = new QAction(QIcon(":pictures/occ_view_fitall.png"), tr("FIT_ALL"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(fitAll())); + myViewBar->addAction(aBtn); + // Fit area + aBtn = new QAction(QIcon(":pictures/occ_view_fitarea.png"), tr("FIT_AREA"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(activateWindowFit())); + myViewBar->addAction(aBtn); + // Zoom + aBtn = new QAction(QIcon(":pictures/occ_view_zoom.png"), tr("ZOOM_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(activateZoom())); + myViewBar->addAction(aBtn); + // Pan + aBtn = new QAction(QIcon(":pictures/occ_view_pan.png"), tr("PAN_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(activatePanning())); + myViewBar->addAction(aBtn); + // Global Panning + aBtn = new QAction(QIcon(":pictures/occ_view_glpan.png"), tr("GLOB_PAN_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(activateGlobalPanning())); + myViewBar->addAction(aBtn); + // Rotation + aBtn = new QAction(QIcon(":pictures/occ_view_rotate.png"), tr("ROTATE_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(activateRotation())); + myViewBar->addAction(aBtn); + // Reset + aBtn = new QAction(QIcon(":pictures/occ_view_reset.png"), tr("RESET_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(reset())); + myViewBar->addAction(aBtn); + // Front view + aBtn = new QAction(QIcon(":pictures/occ_view_front.png"), tr("FRONT_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(frontView())); + myViewBar->addAction(aBtn); + // Back view + aBtn = new QAction(QIcon(":pictures/occ_view_back.png"), tr("BACK_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(backView())); + myViewBar->addAction(aBtn); + // Top view + aBtn = new QAction(QIcon(":pictures/occ_view_top.png"), tr("TOP_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(topView())); + myViewBar->addAction(aBtn); + // Bottom view + aBtn = new QAction(QIcon(":pictures/occ_view_bottom.png"), tr("BOTTOM_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(bottomView())); + myViewBar->addAction(aBtn); + // Left view + aBtn = new QAction(QIcon(":pictures/occ_view_left.png"), tr("LEFT_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(leftView())); + myViewBar->addAction(aBtn); + // Right view + aBtn = new QAction(QIcon(":pictures/occ_view_right.png"), tr("RIGHT_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(rightView())); + myViewBar->addAction(aBtn); + // Clone view + aBtn = new QAction(QIcon(":pictures/occ_view_clone.png"), tr("CLONE_VIEW"), myViewBar); + connect(aBtn, SIGNAL(triggered()), SLOT(cloneView())); + myViewBar->addAction(aBtn); // Create Window management buttons myWindowBar = new ViewerToolbar(this, myViewPort); - connect(myViewPort, SIGNAL(vpTransformed()), myWindowBar, SLOT(update())); - connect(myViewPort, SIGNAL(vpUpdated()), myWindowBar, SLOT(update())); myMinimizeBtn = new QAction(myWindowBar); myMinimizeBtn->setIcon(MinimizeIco); @@ -245,6 +248,13 @@ XGUI_ViewWindow::XGUI_ViewWindow(XGUI_Viewer* theViewer, V3d_TypeOfView theType) myViewBar->hide(); myWindowBar->hide(); myGripWgt->hide(); + + //Support copy of background on updating of viewer + connect(myViewPort, SIGNAL(vpTransformed()), this, SLOT(updateToolBar())); + connect(myViewPort, SIGNAL(vpUpdated()), this, SLOT(updateToolBar())); + connect(this, SIGNAL(vpTransformationFinished(XGUI_ViewWindow::OperationType)), + this, SLOT(updateToolBar())); + } //**************************************************************** @@ -294,13 +304,13 @@ void XGUI_ViewWindow::changeEvent(QEvent* theEvent) //**************************************************************** void XGUI_ViewWindow::onClose() { - if (parentWidget()) { - emit tryClosing(this); - if (closable()) { - emit closed(static_cast(parentWidget())); - parentWidget()->close(); - } + if (parentWidget()) { + emit tryClosing(this); + if (closable()) { + emit closed(static_cast(parentWidget())); + parentWidget()->close(); } + } } //**************************************************************** @@ -308,7 +318,7 @@ void XGUI_ViewWindow::enterEvent(QEvent* theEvent) { if (!isMinimized()) { myViewBar->show(); - myWindowBar->show(); + myWindowBar->show(); if (!isMaximized()) myGripWgt->show(); } @@ -447,8 +457,9 @@ bool XGUI_ViewWindow::eventFilter(QObject *theObj, QEvent *theEvent) if (processWindowControls(theObj, theEvent)) return true; } else if (theObj == myViewPort) { - if (processViewPort(theEvent)) + if (processViewPort(theEvent)) { return true; + } } return QFrame::eventFilter(theObj, theEvent); } @@ -928,41 +939,42 @@ void XGUI_ViewWindow::setBackground(const XGUI_ViewBackground& theBackground) void XGUI_ViewWindow::cloneView() { QMdiSubWindow* vw = myViewer->createView(); - //vw->show(); + XGUI_ViewWindow* aNewWnd = static_cast(vw->widget()); + aNewWnd->viewPort()->syncronizeWith(myViewPort); emit viewCloned( vw ); } void XGUI_ViewWindow::dumpView() { - QString aFilter(tr("OCC_IMAGE_FILES")); - QString aSelectedFilter; - QString aFileName = QFileDialog::getSaveFileName(this, "Save picture", QString(), aFilter, &aSelectedFilter); - if (!aFileName.isNull()) { - QApplication::setOverrideCursor( Qt::WaitCursor ); - QImage aPicture = myViewPort->dumpView(); - - QString aFmt = extension(aFileName).toUpper(); - if( aFmt.isEmpty() ) - aFmt = QString( "BMP" ); // default format - else if( aFmt == "JPG" ) - aFmt = "JPEG"; - - Handle(Visual3d_View) a3dView = myViewPort->getView()->View(); - if (aFmt == "PS") - a3dView->Export(strdup(qPrintable(aFileName)), Graphic3d_EF_PostScript); - else if (aFmt == "EPS") - a3dView->Export(strdup(qPrintable(aFileName)), Graphic3d_EF_EnhPostScript); - else - aPicture.save( aFileName, aFmt.toLatin1() ); - QApplication::restoreOverrideCursor(); - } + QString aFilter(tr("OCC_IMAGE_FILES")); + QString aSelectedFilter; + QString aFileName = QFileDialog::getSaveFileName(this, "Save picture", QString(), aFilter, &aSelectedFilter); + if (!aFileName.isNull()) { + QApplication::setOverrideCursor( Qt::WaitCursor ); + QImage aPicture = myViewPort->dumpView(); + + QString aFmt = extension(aFileName).toUpper(); + if( aFmt.isEmpty() ) + aFmt = QString( "BMP" ); // default format + else if( aFmt == "JPG" ) + aFmt = "JPEG"; + + Handle(Visual3d_View) a3dView = myViewPort->getView()->View(); + if (aFmt == "PS") + a3dView->Export(strdup(qPrintable(aFileName)), Graphic3d_EF_PostScript); + else if (aFmt == "EPS") + a3dView->Export(strdup(qPrintable(aFileName)), Graphic3d_EF_EnhPostScript); + else + aPicture.save( aFileName, aFmt.toLatin1() ); + QApplication::restoreOverrideCursor(); + } } void XGUI_ViewWindow::fitAll() { - emit vpTransformationStarted( FITALLVIEW ); - myViewPort->fitAll(); - emit vpTransformationFinished( FITALLVIEW ); + emit vpTransformationStarted( FITALLVIEW ); + myViewPort->fitAll(); + emit vpTransformationFinished( FITALLVIEW ); } /*! @@ -977,8 +989,7 @@ void XGUI_ViewWindow::activateWindowFit() if ( myOperation != WINDOWFIT ) { QCursor handCursor (Qt::PointingHandCursor); - if( setTransformRequested ( WINDOWFIT ) ) - { + if( setTransformRequested ( WINDOWFIT ) ) { myViewPort->setCursor ( handCursor ); myCursorIsHand = true; } @@ -993,7 +1004,8 @@ void XGUI_ViewWindow::frontView() { emit vpTransformationStarted ( FRONTVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Xpos); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Xpos); myViewPort->fitAll(); emit vpTransformationFinished ( FRONTVIEW ); } @@ -1005,7 +1017,8 @@ void XGUI_ViewWindow::backView() { emit vpTransformationStarted ( BACKVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Xneg); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Xneg); myViewPort->fitAll(); emit vpTransformationFinished ( BACKVIEW ); } @@ -1017,7 +1030,8 @@ void XGUI_ViewWindow::topView() { emit vpTransformationStarted ( TOPVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Zpos); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Zpos); myViewPort->fitAll(); emit vpTransformationFinished ( TOPVIEW ); } @@ -1029,7 +1043,8 @@ void XGUI_ViewWindow::bottomView() { emit vpTransformationStarted ( BOTTOMVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Zneg); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Zneg); myViewPort->fitAll(); emit vpTransformationFinished ( BOTTOMVIEW ); } @@ -1041,7 +1056,8 @@ void XGUI_ViewWindow::leftView() { emit vpTransformationStarted ( LEFTVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Yneg); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Yneg); myViewPort->fitAll(); emit vpTransformationFinished ( LEFTVIEW ); } @@ -1053,7 +1069,35 @@ void XGUI_ViewWindow::rightView() { emit vpTransformationStarted ( RIGHTVIEW ); Handle(V3d_View) aView3d = myViewPort->getView(); - if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Ypos); + if ( !aView3d.IsNull() ) + aView3d->SetProj (V3d_Ypos); myViewPort->fitAll(); emit vpTransformationFinished ( RIGHTVIEW ); } + +void XGUI_ViewWindow::reset() +{ + emit vpTransformationStarted( RESETVIEW ); + bool upd = myViewPort->getView()->SetImmediateUpdate( false ); + myViewPort->getView()->Reset( false ); + myViewPort->fitAll( false, true, false ); + myViewPort->getView()->SetImmediateUpdate( upd ); + myViewPort->getView()->Update(); + emit vpTransformationFinished( RESETVIEW ); +} + + +void XGUI_ViewWindow::updateToolBar() +{ + myGripWgt->repaint(); + myViewBar->repaint(); + myWindowBar->repaint(); + //QTimer::singleShot(300, this, SLOT(repaintToolBar())); +} + +/*void XGUI_ViewWindow::repaintToolBar() +{ + myGripWgt->repaint(); + myViewBar->repaint(); + myWindowBar->repaint(); +}*/ diff --git a/src/XGUI/XGUI_ViewWindow.h b/src/XGUI/XGUI_ViewWindow.h index de6837a5a..cd3db6862 100644 --- a/src/XGUI/XGUI_ViewWindow.h +++ b/src/XGUI/XGUI_ViewWindow.h @@ -64,48 +64,51 @@ public: XGUI_ViewBackground background() const; void setBackground(const XGUI_ViewBackground& theBackground); - bool closable() const { return myClosable; } - void setClosable( const bool isClosable ) { myClosable = isClosable; } + bool closable() const { return myClosable; } + void setClosable( const bool isClosable ) { myClosable = isClosable; } signals: - void vpTransformationStarted(XGUI_ViewWindow::OperationType type); - void vpTransformationFinished(XGUI_ViewWindow::OperationType type); + void vpTransformationStarted(XGUI_ViewWindow::OperationType type); + void vpTransformationFinished(XGUI_ViewWindow::OperationType type); - void Show(QShowEvent *); - void Hide(QHideEvent *); - void maximized(XGUI_ViewWindow*, bool); - void returnedTo3d(); + void Show(QShowEvent *); + void Hide(QHideEvent *); + void maximized(XGUI_ViewWindow*, bool); + void returnedTo3d(); - void tryClosing(XGUI_ViewWindow*); + void tryClosing(XGUI_ViewWindow*); void closed( QMdiSubWindow* ); - void mousePressed(XGUI_ViewWindow*, QMouseEvent*); - void mouseReleased(XGUI_ViewWindow*, QMouseEvent*); - void mouseDoubleClicked(XGUI_ViewWindow*, QMouseEvent*); - void mouseMoving(XGUI_ViewWindow*, QMouseEvent*); - void keyPressed(XGUI_ViewWindow*, QKeyEvent*); - void keyReleased(XGUI_ViewWindow*, QKeyEvent*); - void contextMenuRequested(QContextMenuEvent *e); - - void viewModified(XGUI_ViewWindow*); + void mousePressed(XGUI_ViewWindow*, QMouseEvent*); + void mouseReleased(XGUI_ViewWindow*, QMouseEvent*); + void mouseDoubleClicked(XGUI_ViewWindow*, QMouseEvent*); + void mouseMoving(XGUI_ViewWindow*, QMouseEvent*); + void keyPressed(XGUI_ViewWindow*, QKeyEvent*); + void keyReleased(XGUI_ViewWindow*, QKeyEvent*); + void contextMenuRequested(QContextMenuEvent *e); + + void viewModified(XGUI_ViewWindow*); void viewCloned( QMdiSubWindow* theView ); public slots: void activateZoom(); void activateRotation(); void activatePanning(); - void activateWindowFit(); - void activateGlobalPanning(); - - void cloneView(); - void dumpView(); - void fitAll(); - - void frontView(); - void backView(); - void topView(); - void bottomView(); - void leftView(); - void rightView(); + void activateWindowFit(); + void activateGlobalPanning(); + + void cloneView(); + void dumpView(); + void fitAll(); + + void frontView(); + void backView(); + void topView(); + void bottomView(); + void leftView(); + void rightView(); + + void reset(); + protected: virtual void resizeEvent(QResizeEvent* theEvent); @@ -122,6 +125,9 @@ private slots: void onMinimize(); void onMaximize(); + void updateToolBar(); + //void repaintToolBar(); + private: enum WindowState { @@ -191,7 +197,7 @@ private: bool myCursorIsHand; bool myIsKeyFree; bool myEventStarted; // set when transformation is in process - bool myClosable; + bool myClosable; QCursor myCursor; @@ -218,6 +224,8 @@ public: { } + void repaintBackground(); + protected: virtual void paintEvent(QPaintEvent* theEvent); @@ -235,6 +243,8 @@ public: { } + void repaintBackground(); + protected: virtual void paintEvent(QPaintEvent* theEvent); diff --git a/src/XGUI/XGUI_msg_en.ts b/src/XGUI/XGUI_msg_en.ts index f9090d15d..478964927 100644 --- a/src/XGUI/XGUI_msg_en.ts +++ b/src/XGUI/XGUI_msg_en.ts @@ -218,5 +218,9 @@ RIGHT_VIEW Right + + RESET_VIEW + Reset + diff --git a/src/XGUI/XGUI_pictures.qrc b/src/XGUI/XGUI_pictures.qrc index 0645767cc..283bb434b 100644 --- a/src/XGUI/XGUI_pictures.qrc +++ b/src/XGUI/XGUI_pictures.qrc @@ -11,39 +11,21 @@ pictures/ViewPort.png - pictures/occ_view_ambient.png - pictures/occ_view_anticlockwise.png pictures/occ_view_back.png pictures/occ_view_bottom.png pictures/occ_view_camera_dump.png - pictures/occ_view_clipping.png - pictures/occ_view_clipping_pressed.png - pictures/occ_view_clockwise.png pictures/occ_view_clone.png pictures/occ_view_fitall.png pictures/occ_view_fitarea.png pictures/occ_view_front.png - pictures/occ_view_glpan.png - pictures/occ_view_graduated_axes.png pictures/occ_view_left.png - pictures/occ_view_maximized.png - pictures/occ_view_minimized.png pictures/occ_view_pan.png - pictures/occ_view_preselection.png - pictures/occ_view_presets.png + pictures/occ_view_glpan.png pictures/occ_view_reset.png - pictures/occ_view_return_3d_view.png pictures/occ_view_right.png pictures/occ_view_rotate.png - pictures/occ_view_rotation_point.png - pictures/occ_view_scaling.png - pictures/occ_view_selection.png - pictures/occ_view_shoot.png - pictures/occ_view_style_switch.png pictures/occ_view_top.png - pictures/occ_view_triedre.png pictures/occ_view_zoom.png - pictures/occ_view_zooming_style_switch.png pictures/wnd_close.png pictures/wnd_minimize.png diff --git a/src/XGUI/pictures/occ_view_ambient.png b/src/XGUI/pictures/occ_view_ambient.png deleted file mode 100644 index 7f411531766ea57ea588e7203b346f54b70eae2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmV;M1!Ve(P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>5lKWrRCwBA{Qv(y0|Uc;W+1@^#N0qE2*jd5EM8W& zeciu*{}_J!_`&e`^Jj*4@7{s&(W5OvK>3$I{2GYg1MycN{>8xH_!l6682|s@#|Y%G z0x>7lFbN=*DK6f!y0^EN0R*0Z{l@SQXt6X8H<&LYBg1h0`phU^UatE`GdGdsTkI!e>$B$nnp?Wx> zW-tN-5X?XpAZCYpS>P*FBPclj1HJs`KM4N^^WOu#{`2Qgu>74nPnBN2d@lgi3o?Td zAb^lv2ns_^FR$*!ixw?n`1}px&DX#GGW-F$?hnvl5dRa5=e5EBCgfD8q(Szf+;2^Ihu^!nEyhE>a!0KNNV3|~HdVlXf^X88L17g*ihyU&Dv|Ng_Rq$CM4g8?9bSfGae1x5S9g*&B-i~U!z zv$KbR!U<&9zCC*wf}^4tzI^_~@CztrYGKL1{N)ovYI-_DZ*S&`7cbtifm0sDjQ;=u z1T*lDx_W%0wjO)DwY4O}uV23ye*gXrcBP$z1H-QE+ZpcPzQtf|XV38T@goMNFQ36C zeEs_4%b!1g-!d{Xd;ysOG7BJpK;ibEm)EP#((YsY!qtBnlCr-u+j|?9_eqy+AErNlQlaoPLLX3f#nHd_ce;M-f@)#B_tl0eF!9 zf(>F}VPRkb8p_NBG5E)iUtgJ+m>x+;2;Z1Lf4j1U4HLtKv$sAlGBWZ41Q5u}DvHVs z4AUq6W?*II$TK#ybv$!Sc-rqD@(VaPIKTz~HG|UxPy?9%@8ACqQc}YAyuHmIzIydR zR#lym!Nmh?nFl}sfn50ID=T;1!7$w z_7xKo`ws&B{r&%4U0whC`uc)W#D6_KrK5#~p%M4*FOvX<#Q&Sm+5bnxGK1t|0Ro5- zls|!9kprbepds&oG%wU9IaXG;oqm3P47cxXU13N z(<0)2W_3+wWpFnC#c=l2KXZTpf)oI7ypIKl1%Oxyh^;}cIdS5|e{LRz|1Z9A{QvMD zg7ZpQ{wt|4{!h+i28&;L$o?PXQc!*d2q1I=nSq!ah$TVZK74p$6g1)g-?WzvZXi02 zN&tJe0%Qh205LJ3g8$GI{{x6We);nKSzB95nY6UXoj0%lGc;EI0eK6q7?`0LI-CA5 zEL-q*I?%8VkQhJ!v0yRqFVsK=F)@J$!0=@f7UtW#am{;`GsgwDOzr!qDJJn#SwxhP p;rY}53@=~&p9oai0W$y~zyQ_0WlB6gqLcst002ovPDHLkV1go8n*0C& diff --git a/src/XGUI/pictures/occ_view_anticlockwise.png b/src/XGUI/pictures/occ_view_anticlockwise.png deleted file mode 100644 index 991586fe6d877a528f2afa6647ccfcc5d92bd742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmV;Z16TZsP)Px#24YJ`L;wH)!2rW+L(~EQ000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipS= z4lN>7IvUFW000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}00096NklPd;6H+|O^Vu6z7 z4s~3M?o?9V`F1TwzxVk2QBwFH=!LAk#r?^to6_D_$p@Epa+brIP|3pWpF(gxtE}55(Lu()1*vndf(OPJ{e(Oq7+P%smWR1JeOtY;gI+Wq83ZiSkTTx;q4w_|xg4Wswb?UG|+nzEs(_m~Y%XimZ{!(Nu53xqCWbsuBtg+tPK*Jon!d- zNdkJX*fuM%G5VxM6hZRnmW4P9<>$i%ri?L}$Yc=@nrk*IfAg;5_RT-gZJYSIGF&h3 z|MXIsA^G&PJM2GrosU0BlAOLFeg|Ie$}llHh3;6q)EXtENBlE%WR}s9M;O^Tx_(L$ z)`g?T!lH+5#BFB0|o}uq|-SP&DA6lmAw4w zbJWHwi^P`DJ$k|Sz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;pGibPRCwBA{Qv(y12q9a05K7xXz}93{}~w>iLx0W zfS5>h06{|m0tjp%&~`X(DF_6)Mi_`WVPePtS?#p6U<|bY0fgZ~RnUh1}2F7cOZU)=HqXSY`|D#1!;t*WN>JK06+jSK~(%>_{Q{? z;Ttmqe`op2px(V=GEnLfmN5J-mAFmr3sBt`rhg1yfJS}#|BvCrA4nzw2q3TvUo!s$ z+VmgnLPnq>Mu_X)0`W~OE(C!$&lr9IBl17Pe_#au2BwVPe;~dD2p|S%X#)!Qa3C(7 zS>p~8=m6qGScHHQHYlb3M=hFU=P$R0sjUa;1(^X5KrApDf%q5@UwFd)w+rerT&{z= z^4@Q-t8OA?fNuZ+#DJwd1i8uzIl16)Ay%~j0mOpMX0S~VObB481qdK)27ZTPVgQC( nfB<47u?qMPNvXI2K!5=NR>;YS7u$tM00000NkvXXu0mjf*2zO> diff --git a/src/XGUI/pictures/occ_view_clipping_pressed.png b/src/XGUI/pictures/occ_view_clipping_pressed.png deleted file mode 100644 index e38a8aa7ee31c1798621f901830915d7a2c3312e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)04c=%i9-MY0li5? zK~xyit&}}$6j2n0pL6bf>^O-LR_$zrXeAbcAPa(4wjwqbf)WX~Vr5991RHw^SXm1G zg{@)}h$tb2h(U-1Togo?jdAAQV=;uC5H>sF9=Ofr@|^d*=R-P6i^c>)n>?C7HOrfY zCzAv2#mb|{{|>y?TW_4;*5{4!z&Htwf$>av;4T8Vu4~{0DFhBLA=LYDAc28;2Ch0gk>~EQ*^$7T+ZX6NPhSIl0zWPAqqL#IuWlFA z5CPGExbbbX%^xtsyif$8C~KCV)|&YC&MGgni(`QcpDr_Zy332rtA~%?m(({Nz0E?# y&vI8UH3oLKuKeHnn)p7P7;t&(Bb}wiM!>&e=7IA=3Uh4$0000Px#24YJ`L;wH)!2rW+L(~EQ000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipS= z4lWBlrO{*n000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0008ONklyqBkvU>h1D4pq~ES|`*fD2h^Ch$1Rjr6AO$sHiIiH!j2pv=%{7 zbm2loi&`8&!D&&XLhA%JwJ|lC+AK6lHEqmGUXtrV)0!q}UHHS>+;jf#o^#(hg1_`4 z&#S{90BW#S(d81Tsbt&&|g9dz{h zWU;(|24<^x!U}B}KLKJ;N@3$V=cp*w890OfvQ>}&egOlhyEU?NX=sM^+I~Hr)-D6^H zO=V7(c@^Gzo*@{FVg~kYaIkkn0+)S`==<)G=7f&j1Wk<&)-BO+T4#yT{v4n`@>bq! zi(-k#DYdEWS#QQ=pDO^8nFK3lC>+^oXJPqFp_;Yv$3|5&{O`kPv7fA(WkHxmen^FV zk!U`k;htSx6jq>RfgFmXWF#7C6rtusD@qrM@#ZzB!c4}XyhKGwCVBTZ1R15M(etHS zz7KZGxG`89Xw~ejSz3x>B>37N;mMO9L=&Nw(XfvLZ{(S?el~Aw=Xi6c3`BZl!Ite4 zr;6=c2juNmFNTrk*vXfKzs2jfH8^ET{zM2fhHl|pb3czC`2pw;43ZM@;;R=;gj%j% z>#9F>`sMI>$>a<t}%KOVZUH#xQ;l{1m5^OP5!$z%_5|)r-V~^7;)gO-&uc=FzIH zad7m+GTb%u1;Dtw98H8;e4m5$5AXNk@r3bof2FLz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;07*naRCwBA`2YVu13vJ;#00+rGyo7lOhl>^2V!nw z6aoYg6EUs>(l3CN1Th8z1P}uOFY`hTtpZ{%5TB5F00G1ZGLVsx5tqD-v9a-EdQCNfLQPa2gtCsK+A5ow_`|FR8+v2prCjU#9x5;7eD|p;W6xQM@I)% zNswVkaw;im)@h0~(eq!v4A!D0vqkfUqTOAz&=O z72}z~P*n2)XZiygwjW4+hNeGeXkLE?5I{H$B#=8+11XSg&w&`EmJON~p8y09x`9ld z_NV`DKWORzWII9=Edx~ZZzvm-#Xf;F1Mxj*8Uz`@1_t3dn`h<~8@7^L|d)KHL1 ze}W8xNdg2A*vnoHXZ{0SrUEUZ_(8!0HSim#3oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#Dwhb4qUzP$<5Ph`-JULvAsp9}b@cVq6!#3oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#Dwhb4lIHhsH)?@G^E_P~LpZJ{>*(vJDe!GDFfb@7`SKvV0T zZlI|B_w#f9Mu7(A&`@5E$G5hg7HFF`O^-2u;Z7mfmp3=7EAk{K7yImAtl?_Rwuo_e w(3)cjfmMHgFsem(I2>YKehFx~z~mT)+110s2Wq zK~y-)y_8)@Q(+j#f9GtieNibbwnej#ElzbaoEH(&MbS-kQ|l&ZH&J*|kZd9p2z@AM zX_+x$AtkY!h@c=E5*baJL=A*4+(m4iTn0*GXeM;#Io-@4@|dpCbMw9r@B9Av^F06e z5hO{XT9L_QFqZdP6<`g(=6Z0yPRtQct2J5ZDbo<4hxXsDsL_ZEk`KmD6RK@hRq9gL(hw0GR*!6_S!b9XCO zD2fJbb_WP%hMtdNwVH@TA{>`xniK2(_#rD&XtCC?zIH2u!OX))Pw4L-!0-3VI#1He z0yRxVQRWd1CX7Zib2CK-2k#M%wA2lSH|qh@`nJ(jzRgZkEXbgiaJ#n<3Y}n+V%>H@PfUufJHV2#a`mj>HExN{sSJ5lhM>WvL7d6Z#wrj{M9z)5%ep*7G80G zAc`fK;6f5EUA|6RTNm%g#&Eh^$K*Q)^?~K#82GJa>9?_H-_54Q+$Z^B+qS!yo|@u^ zQo0BTOWLixx&ZfbwQ29@Ivflhy<#+3S!=b2JkAaArSAO%t^ue1e^00000NkvXX Hu0mjfoPHRK diff --git a/src/XGUI/pictures/occ_view_presets.png b/src/XGUI/pictures/occ_view_presets.png deleted file mode 100644 index b436f946d809ea5f2331543a6d2482ba0789ced1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a?JP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-mq|oHRCwCNl)-A-KoEw%4LNKehvanvy;S4{l2g3U zQ|Kw=VcZQEoLo{?ImtE&>Y+vjlhV9O4hHEU&>jqvgKX6+x3L9<4h-6Fg?|2>nUxX| z6pB>{h+=J{W9+SifUKU`G!ua)y9+Ah<>xN|M&pFn`75Jw(!5T_iKI`d>?Wvc2PYp+ z060H8$Mg)|d%iuT0Qk~Vl*Nt?rLI{rsvX(B#r7?xXDG^o_`y;63Kkt}=)G^&$4AEi z^ezlqYYq+%(1&`vqWmtoxY)^ZYa?CkBz;T;sk`>K3>=!CAsHpy4R28j;;#;XyWuTW zS>YFct3egaq1qe|cVCN|PiBYXqW0H0eM~9Jf~u^z{CtV+Tk<03>iUZ8d$v_CQjr9L zT5I&8F1(A~Mpr+cM$P)iG}~Z+KrlLuR5s1T?|b~h2VGx%G#Cz+GyvMX-sSglIRWji zw;2eJye;Af$7DQN(gbMp|8$tob8fy^X3w+6Q9cj3lSA9Lfulch=Ng6%XF!|VH|5|LZ6HnY2DTKF00000NkvXXu0mjf48-Oy diff --git a/src/XGUI/pictures/occ_view_return_3d_view.png b/src/XGUI/pictures/occ_view_return_3d_view.png deleted file mode 100644 index 01de30bc65a5ad8d474418b856464b9d2a74e856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVbVy)>Fd0f229V9h zDQ0_Mt>#L#0$o?hWZr7R%8ly+0q*Z}TwLsvOcod)529&4_VyyQw6xOSKa8%25Td*8 z9dqo>8gkx+>q5VX^G-%yNFdOFI3D*Bg|pv%0!QU*8aZ|B}?oxwJyZ zKpuFp07IcET&@XA$Hm2+n)b5UIEG;y134fAz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;&`Cr=RCwBA{Qv(y12q9a05LI882|(j3n2xJjEp=$ zUwlF0Gntv0{Y6)I>eMMdAoU9%fLI6^=ETFpv=>P8f((Tjrjxc7uI9?DU>H*th+hK) z5DOl|(wrQ)X5N4Bo8ilsf1*JCH<-(i3}FzmDPVYaWCDn(4a8Rg0*D2NVIDx2&Ft+I zVKA|J1QOx_Vpb4CIdl?S-QCrB$l7Fp_%T2LF<~(*lZ}mW`_lOm3@S>j4AtdA47xh( zmw-}Je*E|WR>O5;Ha2&F!jJgz1R9!?lPNH{t5t-7lamoeE-v{6!_gC>3?d>T$g#Tx zNIeANi$Hu5Ab=P^1|nl1UT15$7oh-U)v zN+4be3JM@D1Y#FZI06I^Mx+1@1;u1BDE-;na;A0kyk~gy_z%O(DPj!jYHT1S!capw zf%qp7zXjs^Q2ZVsfEaOQJ)nUG!0 zfcQDkyOG|W+zhtPk3nM72$fC%0R(d)HxO&VybMZ*Kn%(T(<@2@|NHrHgTyKbxekN@ z0tlRJfJp>opga&808C$X-6moRSbzY68ORPz1|V-rL*<@A k6RS8-%_(9_Y=8g*0FLr@0@O3lmjD0&07*qoM6N<$f_(BtfB*mh diff --git a/src/XGUI/pictures/occ_view_scaling.png b/src/XGUI/pictures/occ_view_scaling.png deleted file mode 100644 index fa8cbbc71e4c929f859c045ef73c53a8e431fcad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 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 DY-mW# diff --git a/src/XGUI/pictures/occ_view_style_switch.png b/src/XGUI/pictures/occ_view_style_switch.png deleted file mode 100644 index b0a9c807e016446374173db06507c4d237312483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmV+p1M&QcP)_#cKcn03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00MGJL_t&-)76tdOB_KM z#(#6Spd0VpfEGCmvA8QN6zl}WN))tA<0mj5z%P}`P7WeSG(`kO1uZN@(GX77^KLJ< zx3jZ5JCnlPq48hRC2uwJ!26p&&-226S+}>hc5Q9Vo}8T6zwH&>g|&CRQc8PpaKPc= zAtNIr3=a>Zl%iIvQ7)I6nVAuP3_LwOwU?Kd%+Ai@x-P9&3&+WkWrj4>?CtFVu(Y)F z2r9&#l)En;9UZZ_xQOezB#Gkco6qO3mwd0?5Hy=qDiw?|?Ck73`xOs>j^h9jh9N4J z1nrcMpDfic4UCDoxw&C_dYU+nIX^$QuL8T*w${?=L=3*kh?5o$DI8 z&-3s+k9VaJ0E~e+mObFu*cjW}+bE@MUtgbi^2uqMJ{bh9Goq-2Qi@zIhcO1NHRI#s z?C$QqZp!b6NGXw0qP0eAO&EsM>vde$LoB+2u@iHQl0kB2qAD?m;U~Klu|@dL=Xf7K|mOWWLbvRnnI!Q@+`O8ZM(j{&fMG_tyT+T3|W?; zltM~Lnx;68gAjuK{e4zfR~Z@_65R|x0s>rIT-a*0N~KaEpUz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;FiAu~RCwBA{Qv(y12q9a05O0Jgkf}$kdQ#KZ2$qp zgirF{zkdv;PoMsO_Uv+^4F(7xoCZcjMEw8w@gqZEU?9-ozaSxbAm$=uAV2`&^D>u- ziOK&nXO{jydUWRhEnC|DLk-0X00Ib~m$_cQe$8;_4l~1#ADW1qB5eL_|aw*x6aZd?0=erEvm)0Aj%>DI_Gsz`?-* zbR`>z`;{020RjlGfvl{o3`|TQPp}c44gmrPZ#raTWP~VU!fvm(w>L)800b`7drzdCp!Z(GYbPq`|sbs7`}Y@&hY2YUj~2x zLUCbYV&Z?8VOzFr0kQ4&?CAl~%Yb+e5Vr$y4H9mTjEwx>-JJnalL1l>5I`s{w6nAO z|MKNah7~KC7>tY}O!n{ZJLBkB)B#O<-=Hy#4!EJ|6C`&XAb?N|1SXOHKY#vY0A@9Y z@83T&xVV%QBN_A%nrzSk$S^G^`x-z1p@*SnO-;=;V`Dak=g;3Vym|A9p{{PeC)BWq zIMN_22Z6wAfB-@_5R_Lz2ADvF9suzfD1JjsIs^zH^aKX-(rGALgix-)1^@yGTe3kf g1c=JRFaQu>05%EfVPBu~R{#J207*qoM6N<$g3D|Y2LJ#7 diff --git a/src/XGUI/pictures/occ_view_zooming_style_switch.png b/src/XGUI/pictures/occ_view_zooming_style_switch.png deleted file mode 100644 index 8f3a4867098920df40aebdfd7981a0720d638444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3389 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