projects
/
photoenhancer
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added an ImageLoader Object to Support Multi Threading in Loading an Image
[photoenhancer]
/
src
/
core
/
baseui
/
workspace.cpp
diff --git
a/src/core/baseui/workspace.cpp
b/src/core/baseui/workspace.cpp
index
673555e
..
b77feef
100644
(file)
--- a/
src/core/baseui/workspace.cpp
+++ b/
src/core/baseui/workspace.cpp
@@
-1,14
+1,37
@@
#include "workspace.h"
#include <QPainter>
#include "workspace.h"
#include <QPainter>
+ImageLoader::ImageLoader()
+{
+ url=QString();
+}
+void ImageLoader::fetchImage(QString path)
+{
+ url=path;
+ start();
+}
+void ImageLoader::run()
+{
+ QImage image(url);
+ emit ready(image);
+}
+
Workspace::Workspace(QWidget *parent) :
QWidget(parent)
{
Workspace::Workspace(QWidget *parent) :
QWidget(parent)
{
- loadImage("/home/shakir/Desktop/Test/test1.jpg");
+ qRegisterMetaType<QImage>("QImage &" );
+ mImageLoader=new ImageLoader();
+ connect(mImageLoader,SIGNAL(ready(QImage&)),this,SLOT(onImageLoaded(QImage&)));
}
void Workspace::loadImage(QString fileName)
{
}
void Workspace::loadImage(QString fileName)
{
- mImage=QImage(fileName);
+ mImageLoader->fetchImage(fileName);
}
}
+void Workspace::onImageLoaded(QImage &image)
+{
+ mImage=image.copy();
+ update();
+}
+
void Workspace::zoomIn()
{
mImage=mImage.scaledToHeight(mImage.height()*1.5);
void Workspace::zoomIn()
{
mImage=mImage.scaledToHeight(mImage.height()*1.5);