[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bcirkuit/zoomable-preview=5D_src=3A_Correctly_rememb?=
From:       Matteo Agostinelli <agostinelli () gmail ! com>
Date:       2011-01-31 21:32:32
Message-ID: 20110131213232.01937A60AE () git ! kde ! org
[Download RAW message or body]

Git commit 62f6e94e5adee3b18642eeb340fd7d0c218d6a52 by Matteo Agostinelli.
Pushed by agostinelli into branch 'zoomable-preview'.

Correctly remember the zoom level

M  +9    -3    src/generatorthread.cpp     
M  +3    -1    src/generatorthread.h     
M  +13   -15   src/mainwindow.cpp     
M  +2    -0    src/mainwindow.h     
M  +4    -0    src/widgets/imageview.cpp     
M  +2    -0    src/widgets/imageview.h     

http://commits.kde.org/74f3f67f/62f6e94e5adee3b18642eeb340fd7d0c218d6a52

diff --git a/src/generatorthread.cpp b/src/generatorthread.cpp
index 3a033c5..66a3635 100644
--- a/src/generatorthread.cpp
+++ b/src/generatorthread.cpp
@@ -35,6 +35,7 @@ GeneratorThread::GeneratorThread(QObject* parent): QThread(parent)
     m_previewUrl = QString();
     m_backend = 0;
     m_doc = 0;
+    m_scaleFactor = 1.0;
     m_render = new RenderThread;
     connect(m_render, SIGNAL(previewReady(QImage)), this, \
SIGNAL(previewReady(QImage)));  }
@@ -71,7 +72,7 @@ void GeneratorThread::run()
     m_previewUrl = gen->formatPath(Format::Pdf);
     emit previewUrl(m_previewUrl);
     if (m_output == Format::QtImage) {        
-        m_render->generatePreview(gen->formatPath(Format::Pdf));
+        m_render->generatePreview(gen->formatPath(Format::Pdf), m_scaleFactor);
     }
     
     if (m_saveToFile) {
@@ -86,14 +87,19 @@ GeneratorThread::~GeneratorThread()
     
 }
 
-void GeneratorThread::generate(const Cirkuit::Format& in, const Cirkuit::Format& \
out, Cirkuit::Backend* backend, Cirkuit::Document* doc, bool saveToFile) +void \
GeneratorThread::setScaleFactor(double scaleFactor) +{
+    m_scaleFactor = scaleFactor;
+}
+
+void GeneratorThread::generate(const Cirkuit::Format& in, const Cirkuit::Format& \
out, Cirkuit::Backend* backend, Cirkuit::Document* doc, bool saveToFile, double \
scaleFactor)  {
     m_input = in;
     m_output = out;
     m_doc = doc;
     m_saveToFile = saveToFile;
     m_backend = backend;
-    
+    setScaleFactor(scaleFactor);
     start(LowPriority);
 }
 
diff --git a/src/generatorthread.h b/src/generatorthread.h
index a06a249..557ba43 100644
--- a/src/generatorthread.h
+++ b/src/generatorthread.h
@@ -48,7 +48,8 @@ protected:
     void run();
     
 public slots:
-    void generate(const Cirkuit::Format& in, const Cirkuit::Format& out, \
Cirkuit::Backend* backend = 0, Cirkuit::Document* doc = 0, bool saveToFile = false); \
+    void generate(const Cirkuit::Format& in, const Cirkuit::Format& out, \
Cirkuit::Backend* backend = 0, Cirkuit::Document* doc = 0, bool saveToFile = false, \
double scaleFactor=1.0); +    void setScaleFactor(double scaleFactor);
     
 signals:
     void previewReady(const QImage);
@@ -65,6 +66,7 @@ private:
     Cirkuit::Backend* m_backend;
     RenderThread* m_render;
     bool m_saveToFile;
+    double m_scaleFactor;
     
     QString m_previewUrl;
 };
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index dd79868..027b71b 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -78,6 +78,7 @@ MainWindow::MainWindow(QWidget *)
     m_view = qobject_cast<KTextEditor::View*>(m_doc->createView(this));
    
     m_livePreviewWidget = new LivePreviewWidget(i18n("Live preview"), this);
+    m_imageView = m_livePreviewWidget->view();
     addDockWidget(Qt::TopDockWidgetArea, m_livePreviewWidget);
     
     m_logViewWidget = new LogViewWidget(i18n("Log"), this);
@@ -113,10 +114,8 @@ MainWindow::MainWindow(QWidget *)
     connect(m_generator, SIGNAL(previewReady(QImage)), this, \
                SLOT(showPreview(QImage)));
     connect(m_generator, SIGNAL(fileReady(QString)), this, \
                SLOT(saveFileToDisk(QString)));
     connect(m_generator, SIGNAL(error(QString,QString)), m_logViewWidget, \
                SLOT(displayError(QString,QString)));
-    connect(m_generator, SIGNAL(output(QString,QString)), m_logViewWidget, \
                SLOT(displayMessage(QString,QString)));
-    
-    ImageView* view = m_livePreviewWidget->view();
-    connect(m_generator, SIGNAL(previewUrl(QString)), view, \
SLOT(setPdfUrl(QString))); +    connect(m_generator, SIGNAL(output(QString,QString)), \
m_logViewWidget, SLOT(displayMessage(QString,QString)));    +    connect(m_generator, \
SIGNAL(previewUrl(QString)), m_imageView, SLOT(setPdfUrl(QString)));  
     checkCircuitMacros();
     initializeBackend();
@@ -134,13 +133,12 @@ void MainWindow::setupActions()
     KStandardAction::preferences(this, SLOT(configure()),
                                             actionCollection());
     
-    ImageView* view = m_livePreviewWidget->view();
-    KAction* zoomInAction = KStandardAction::zoomIn(view, SLOT(zoomIn()), \
                actionCollection());
-    KAction* zoomOutAction = KStandardAction::zoomOut(view, SLOT(zoomOut()), \
                actionCollection());
-    KStandardAction::actualSize(view, SLOT(normalSize()), actionCollection());
+    KAction* zoomInAction = KStandardAction::zoomIn(m_imageView, SLOT(zoomIn()), \
actionCollection()); +    KAction* zoomOutAction = \
KStandardAction::zoomOut(m_imageView, SLOT(zoomOut()), actionCollection()); +    \
KStandardAction::actualSize(m_imageView, SLOT(normalSize()), actionCollection());  
-    connect(view, SIGNAL(enableZoomIn(bool)), zoomInAction, SLOT(setEnabled(bool)));
-    connect(view, SIGNAL(enableZoomOut(bool)), zoomOutAction, \
SLOT(setEnabled(bool))); +    connect(m_imageView, SIGNAL(enableZoomIn(bool)), \
zoomInAction, SLOT(setEnabled(bool))); +    connect(m_imageView, \
SIGNAL(enableZoomOut(bool)), zoomOutAction, SLOT(setEnabled(bool)));  
     recentFilesAction = KStandardAction::openRecent(this, SLOT(loadFile( const KUrl& \
                )),
                                                                     \
actionCollection()); @@ -215,7 +213,7 @@ void MainWindow::openFile()
     }
 
     if (!filename.isEmpty()) {
-        m_livePreviewWidget->clear();
+        m_imageView->clear();
         recentFilesAction->addUrl(KUrl(filename));
         loadFile(filename);
     }
@@ -327,7 +325,7 @@ void MainWindow::buildPreview()
     m_logViewWidget->hide();
     
     m_doc->setDirectory(m_currentFile.directory());
-    m_generator->generate(Cirkuit::Format::Source, Cirkuit::Format::QtImage, \
m_backend, m_doc); +    m_generator->generate(Cirkuit::Format::Source, \
Cirkuit::Format::QtImage, m_backend, m_doc, false, m_imageView->scaleFactor());  
     kDebug() << "Preview generation in progress...";
 }
@@ -402,7 +400,7 @@ void MainWindow::reset()
 {
     m_currentFile = "";
     m_doc->clear();
-	m_livePreviewWidget->clear();
+	m_imageView->clear();
     updateTitle();	
 }
 
@@ -486,13 +484,13 @@ void MainWindow::circuitMacrosConfigured()
 
 void MainWindow::failedNotification()
 {
-    m_livePreviewWidget->setImage(QImage());
+    m_imageView->setImage(QImage());
     statusBar()->showMessage(i18n("Unable to generate a preview for the current \
input"), 5000);  }
 
 void MainWindow::showPreview(const QImage& image)
 {
-    m_livePreviewWidget->setImage(image);
+    m_imageView->setImage(image);
 }
 
 void MainWindow::saveFileToDisk(const QString& path)
diff --git a/src/mainwindow.h b/src/mainwindow.h
index c8ba763..cc0629c 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -25,6 +25,7 @@
 #include <QtGui/QKeyEvent>
 #include <KUrl>
 
+class ImageView;
 class LogViewWidget;
 namespace KTextEditor
 {
@@ -103,6 +104,7 @@ private:
 
     QString m_windowTitle;
     LivePreviewWidget *m_livePreviewWidget;
+    ImageView* m_imageView;
     LogViewWidget* m_logViewWidget;
     GeneratorThread* m_generator;
 
diff --git a/src/widgets/imageview.cpp b/src/widgets/imageview.cpp
index 4d077aa..1d8aa5f 100644
--- a/src/widgets/imageview.cpp
+++ b/src/widgets/imageview.cpp
@@ -103,3 +103,7 @@ void ImageView::zoomOut()
     scaleImage(0.8);
 }
 
+double ImageView::scaleFactor() const
+{
+    return m_scaleFactor;
+}
diff --git a/src/widgets/imageview.h b/src/widgets/imageview.h
index 6905cfb..dbd33e6 100644
--- a/src/widgets/imageview.h
+++ b/src/widgets/imageview.h
@@ -36,6 +36,8 @@ public:
     ImageView(QWidget* parent = 0);
     virtual ~ImageView();
     
+    double scaleFactor() const;
+    
 public slots:
     void setImage(const QImage& image);
     void setPdfUrl(const QString& pdfUrl);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic