Added an ImageLoader Object to Support Multi Threading in Loading an Image
[photoenhancer] / src / core / baseui / workspace.h
1 #ifndef WORKSPACE_H
2 #define WORKSPACE_H
3
4 #include <QWidget>
5 #include <QThread>
6
7 class ImageLoader:public QThread
8 {
9     Q_OBJECT
10 public:
11     ImageLoader();
12     void fetchImage(QString path);
13 private:
14     void run();
15 signals:
16     void ready(QImage&);
17 private:
18     QString url;
19 };
20
21 class Workspace : public QWidget
22 {
23     Q_OBJECT
24 public:
25     Workspace(QWidget *parent = 0);
26     void loadImage(QString fileName);
27     virtual void paintEvent(QPaintEvent *);
28 signals:
29
30 public slots:
31     void zoomIn();
32     void zoomOut();
33 private slots:
34     void onImageLoaded(QImage&);
35 private:
36     QImage mImage;
37     ImageLoader *mImageLoader;
38 };
39
40 #endif // WORKSPACE_H