Done ! Testing and not working :)
[photoenhancer] / src / core / baseui / workspace.cpp
index 673555e..58e527c 100644 (file)
@@ -1,18 +1,64 @@
 #include "workspace.h"
 #include <QPainter>
+#include <QKeyEvent>
+#include <QTransform>
+#include <QDebug>
+
+ImageLoader::ImageLoader()
+{
+    url=QString();
+}
+void ImageLoader::fetchImage(QString path)
+{
+    url=path;
+    start();
+}
+void ImageLoader::run()
+{
+    QImage image(url);
+    emit ready(image);
+}
+void Workspace::testEffect()
+{
+
+
+}
+
 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)
 {
-    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()<<e->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);
 }