From: Clifford Wolf Date: Wed, 27 Mar 2013 17:48:38 +0000 (+0100) Subject: Keep viewport transform stable on reload in yosys-svgviewer X-Git-Tag: yosys-0.2.0~672 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=98fcb5daa361c9de56ce75d9416d4eeffd01cc85;p=yosys.git Keep viewport transform stable on reload in yosys-svgviewer --- diff --git a/libs/svgviewer/mainwindow.cpp b/libs/svgviewer/mainwindow.cpp index 31dd63e5c..9c4aa23f8 100644 --- a/libs/svgviewer/mainwindow.cpp +++ b/libs/svgviewer/mainwindow.cpp @@ -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) diff --git a/libs/svgviewer/mainwindow.h b/libs/svgviewer/mainwindow.h index bfbfd803b..5b549e92a 100644 --- a/libs/svgviewer/mainwindow.h +++ b/libs/svgviewer/mainwindow.h @@ -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();