[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