Keep viewport transform stable on reload in yosys-svgviewer
authorClifford Wolf <clifford@clifford.at>
Wed, 27 Mar 2013 17:48:38 +0000 (18:48 +0100)
committerClifford Wolf <clifford@clifford.at>
Wed, 27 Mar 2013 17:48:38 +0000 (18:48 +0100)
libs/svgviewer/mainwindow.cpp
libs/svgviewer/mainwindow.h

index 31dd63e5c45c73288447b064d43fed7be06bb323..9c4aa23f8ce8eb12aa3922d810615942874af57d 100644 (file)
@@ -112,7 +112,7 @@ MainWindow::MainWindow()
     setWindowTitle(tr("SVG Viewer"));
 }
 
-void MainWindow::openFile(const QString &path)
+void MainWindow::openFile(const QString &path, bool reload)
 {
     QString fileName;
     if (path.isNull())
@@ -148,6 +148,7 @@ void MainWindow::openFile(const QString &path)
        // just keep the file open so this process is found using 'fuser'
        m_filehandle = fopen(fileName.toAscii(), "r");
 
+       QTransform oldTransform = m_view->transform();
         m_view->openFile(file);
 
         if (!fileName.startsWith(":/")) {
@@ -158,13 +159,16 @@ void MainWindow::openFile(const QString &path)
         m_outlineAction->setEnabled(true);
         m_backgroundAction->setEnabled(true);
 
-        // resize(m_view->sizeHint() + QSize(80, 80 + menuBar()->height()));
+       if (reload)
+               m_view->setTransform(oldTransform);
+       else
+               resize(m_view->sizeHint() + QSize(80, 80 + menuBar()->height()));
     }
 }
 
 void MainWindow::reloadFile()
 {
-       openFile(m_currentPath);
+       openFile(m_currentPath, true);
 }
 
 void MainWindow::setRenderer(QAction *action)
index bfbfd803b52554c6585c7bd8ebd119562c14d926..5b549e92a83210b24a5f950fc7d3d01f198a3b77 100644 (file)
@@ -63,7 +63,7 @@ public:
     MainWindow();
 
 public slots:
-    void openFile(const QString &path = QString());
+    void openFile(const QString &path = QString(), bool reload = false);
     void setRenderer(QAction *action);
     void reloadFile();