X-Git-Url: http://git.maemo.org/git/?p=photoenhancer;a=blobdiff_plain;f=src%2Fcore%2Fbaseui%2Fworkspace.cpp;h=38b18f912c27f7cc4b5c681c43bfc09c43e974ca;hp=673555e5d7a6f4ba2bfb6a3ed901b5d04a6d3768;hb=8db50d870c0691faa6a515265cb2e5381b4a022b;hpb=97d708fe2ef37ca3096398e3293b4d2ebc0f42c1 diff --git a/src/core/baseui/workspace.cpp b/src/core/baseui/workspace.cpp index 673555e..38b18f9 100644 --- a/src/core/baseui/workspace.cpp +++ b/src/core/baseui/workspace.cpp @@ -1,18 +1,64 @@ #include "workspace.h" #include +#include +#include +#include + +ImageLoader::ImageLoader() +{ + url=QString(); +} +void ImageLoader::fetchImage(QString path) +{ + url=path; + start(); +} +void ImageLoader::run() +{ + QImage image(url); + emit ready(image); +} +void Workspace::testEffect() +{ + QTransform sharpness(0,-1,0,-1,5,-1,0,-1,0); + mImage=mImage.transformed(sharpness); +} + Workspace::Workspace(QWidget *parent) : QWidget(parent) { - loadImage("/home/shakir/Desktop/Test/test1.jpg"); + qRegisterMetaType("QImage &" ); + mImageLoader=new ImageLoader(); + connect(mImageLoader,SIGNAL(ready(QImage&)),this,SLOT(onImageLoaded(QImage&))); } void Workspace::loadImage(QString fileName) { - mImage=QImage(fileName); + mImageLoader->fetchImage(fileName); } +void Workspace::onImageLoaded(QImage &image) +{ + mImage=image.copy(); + testEffect(); + update(); + + setMaximumSize(mImage.size()); + setMinimumSize(mImage.size()); + + +} +void Workspace::keyPressEvent(QKeyEvent *e) +{ + qDebug()<key(); + if(e->key()==Qt::Key_Z) + zoomIn(); + else if(e->key()==Qt::Key_X) + zoomOut(); +} + void Workspace::zoomIn() { - mImage=mImage.scaledToHeight(mImage.height()*1.5); - mImage=mImage.scaledToWidth(mImage.width()*1.5); + mImage=mImage.scaledToHeight(mImage.height()*1.5).copy(rect()); + mImage=mImage.scaledToWidth(mImage.width()*1.5).copy(rect()); update(); } void Workspace::zoomOut() @@ -25,5 +71,8 @@ void Workspace::zoomOut() void Workspace::paintEvent(QPaintEvent *p) { QPainter painter(this); - painter.drawImage(mImage.rect(),mImage); + + int resultX=(rect().width()-mImage.width())/2; + int resultY=(rect().height()-mImage.height())/2; + painter.drawImage(QPoint(resultX,resultY),mImage); }