#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()
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);
}