From 35a02ee81e360a0f8c7643a38b72305c33da08c6 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 27 Mar 2013 18:14:16 +0100 Subject: Now using SVG and yosys-svgviewer per default in show command --- libs/svgviewer/mainwindow.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'libs/svgviewer/mainwindow.cpp') diff --git a/libs/svgviewer/mainwindow.cpp b/libs/svgviewer/mainwindow.cpp index 7d4d303e..31dd63e5 100644 --- a/libs/svgviewer/mainwindow.cpp +++ b/libs/svgviewer/mainwindow.cpp @@ -41,12 +41,15 @@ #include "mainwindow.h" #include +#include #include "svgview.h" MainWindow::MainWindow() : QMainWindow() , m_view(new SvgView) + , m_watcher(NULL) + , m_filehandle(NULL) { QMenu *fileMenu = new QMenu(tr("&File"), this); QAction *openAction = fileMenu->addAction(tr("&Open...")); @@ -118,6 +121,15 @@ void MainWindow::openFile(const QString &path) else fileName = path; + if (m_watcher) { + delete m_watcher; + m_watcher = NULL; + } + if (m_filehandle) { + fclose(m_filehandle); + m_filehandle = NULL; + } + if (!fileName.isEmpty()) { QFile file(fileName); if (!file.exists()) { @@ -129,6 +141,13 @@ void MainWindow::openFile(const QString &path) return; } + m_watcher = new QFileSystemWatcher(this); + m_watcher->addPath(fileName); + connect(m_watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(reloadFile())); + + // just keep the file open so this process is found using 'fuser' + m_filehandle = fopen(fileName.toAscii(), "r"); + m_view->openFile(file); if (!fileName.startsWith(":/")) { @@ -139,10 +158,15 @@ void MainWindow::openFile(const QString &path) m_outlineAction->setEnabled(true); m_backgroundAction->setEnabled(true); - resize(m_view->sizeHint() + QSize(80, 80 + menuBar()->height())); + // resize(m_view->sizeHint() + QSize(80, 80 + menuBar()->height())); } } +void MainWindow::reloadFile() +{ + openFile(m_currentPath); +} + void MainWindow::setRenderer(QAction *action) { #ifndef QT_NO_OPENGL -- cgit v1.2.3