]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Merge branch 'oscar/imps_2017' V8_5_0b1
authorvsr <vsr@opencascade.com>
Mon, 9 Apr 2018 10:30:52 +0000 (13:30 +0300)
committervsr <vsr@opencascade.com>
Mon, 9 Apr 2018 10:30:52 +0000 (13:30 +0300)
1  2 
src/GraphicsView/GraphicsView_ViewFrame.h
src/GraphicsView/GraphicsView_ViewPort.cxx
src/GraphicsView/GraphicsView_ViewPort.h
src/GraphicsView/GraphicsView_Viewer.cxx
src/GraphicsView/GraphicsView_Viewer.h
src/SUIT/SUIT_ViewManager.cxx
src/SUIT/SUIT_ViewWindow.cxx
src/SUIT/resources/SUIT_msg_fr.ts
src/SUIT/resources/SUIT_msg_ja.ts
src/SalomeApp/SalomeApp_Application.cxx

index 537c81052e7a16946371cfb61871647964a90b41,8068f9e9fda309c50cc45442b48065adaa0a7397..c5d2b3aff7eec4ed2ed84d7751f8daf6242cf04a
@@@ -48,9 -48,8 +48,8 @@@ public
  
  public:
    GraphicsView_ViewFrame( SUIT_Desktop*, GraphicsView_Viewer*, QWidget* w = NULL );
 -  virtual ~GraphicsView_ViewFrame();
 +  ~GraphicsView_ViewFrame();
  
- public:
    GraphicsView_Viewer*    getViewer() const { return myViewer; }
    GraphicsView_ViewPort*  getViewPort() const  { return myViewPort; }
  
index 40086a4f8c9754e8b4a0bed8a673c5db99d75643,aa60c1f63dcefaabf280d8b692c3c681b285a953..4b3dafd5fc58e358995eb5757971ef61e8cc68c7
@@@ -457,6 -474,34 +474,38 @@@ QImage GraphicsView_ViewPort::dumpView
    return anImage;
  }
  
+ bool GraphicsView_ViewPort::dumpViewToFormat(const QString& fileName, const QString& format)
+ {
+   if( format!="PS" && format!="EPS" )
+     return false;
+   QPrinter printer(QPrinter::ScreenResolution);
++#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+   printer.setOutputFormat(QPrinter::PostScriptFormat);
++#else
++  printer.setOutputFormat(QPrinter::PdfFormat);
++#endif
+   printer.setOutputFileName(fileName);
+   QPainter painter;  
+   if (!painter.begin(&printer))
+     return false;
+   QRect view( 0, 0, printer.pageRect().width(), printer.paperRect().height() );
+   QRectF bounds = myScene->itemsBoundingRect();
+     
+   if( !view.isEmpty() && !bounds.isEmpty() )
+   {
+     float SCALE = 0.5;//qMin( view.width()/bounds.width(), view.height()/bounds.height() );
+     painter.setViewport( view );
+     painter.scale( SCALE, SCALE );
+   }
+   myScene->render( &painter, QRectF( view ), bounds );
+   if (!painter.end())
+     return false;
+   return true;
+ }
  //================================================================
  // Function : setSceneGap
  // Purpose  : 
@@@ -850,14 -915,9 +919,14 @@@ void GraphicsView_ViewPort::zoom( doubl
    aTransform.scale( aZoom, aZoom );
    double aM11 = aTransform.m11();
    double aM22 = aTransform.m22();
 +
 +
 +  QGraphicsView::ViewportAnchor old_anchor = transformationAnchor();
 +  setTransformationAnchor( QGraphicsView::AnchorUnderMouse );
 +
    // increasing of diagonal coefficients (>300) leads to a crash sometimes
    // at the values of 100 some primitives are drawn incorrectly
-   if( qMax( aM11, aM22 ) < 100 )
+   if( myZoomCoeff < 0 || qMax( aM11, aM22 ) < myZoomCoeff )
      setTransform( aTransform );
  
    myIsTransforming = false;
@@@ -973,6 -1031,38 +1042,41 @@@ void GraphicsView_ViewPort::applyTransf
        anObject->setViewTransform( transform() );
  }
  
+ //================================================================
+ // Function : setZoomCoeff
+ // Purpose  : 
+ //================================================================
+ void GraphicsView_ViewPort::setZoomCoeff( const int& theZoomCoeff )
+ {
+   myZoomCoeff = theZoomCoeff;
+ }
+ //================================================================
+ // Function : setUnlimitedPanning
+ // Purpose  : 
+ //================================================================
+ void GraphicsView_ViewPort::setUnlimitedPanning( const bool& theValue )
+ {
++  if ( myUnlimitedPanning == theValue )
++    return;
++
+   myUnlimitedPanning = theValue;
+   if( myUnlimitedPanning )
+   {
+     myHBarPolicy = horizontalScrollBarPolicy();
+     myVBarPolicy = verticalScrollBarPolicy();
+     setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
+     setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
+   }
+   else
+   {
+     setHorizontalScrollBarPolicy( myHBarPolicy );
+     setVerticalScrollBarPolicy( myVBarPolicy );
+   }
+ }
  //================================================================
  // Function : currentBlock
  // Purpose  : 
Simple merge
Simple merge
index d3785c28da1ece546f7d5a85e0f6c922cc31c496,d3785c28da1ece546f7d5a85e0f6c922cc31c496..97f2cf33def5d1571587908cea522fe80abf3b6b
@@@ -160,4 -160,4 +160,15 @@@ Voulez-vous l&apos;écraser ?</translat
          <translation>Tous les fichiers (*)</translation>
      </message>
  </context>
++<context>
++    <name>SUIT_ViewWindow</name>
++    <message>
++        <source>TLT_DUMP_VIEW</source>
++        <translation>Enregistrer la vue dans le fichier</translation>
++    </message>
++    <message>
++        <source>TLT_IMAGE_FILES</source>
++        <translation>Fichiers images (*.bmp *.png *.jpg *.jpeg)</translation>
++    </message>
++</context>    
  </TS>
index f641779cf716b72c1e1debfdfeba00e8fa4f7f77,f641779cf716b72c1e1debfdfeba00e8fa4f7f77..8da7266dbb2c71e43d0bb2ca53bcdf0a05b7b6da
        <translation>すべてのファイル (*)</translation>
      </message>
    </context>
++<context>
++    <name>SUIT_ViewWindow</name>
++    <message>
++      <source>TLT_DUMP_VIEW</source>
++      <translation>ビューでファイルを保存します。</translation>
++    </message>
++    <message>
++      <source>TLT_IMAGE_FILES</source>
++      <translation>イメージ (*.bmp *.png *.jpg *.jpeg) ファイル</translation>
++    </message>
++</context>    
  </TS>