OSDN Git Service

Ver0.21
[gefu/Gefu.git] / simpleimageview.h
index 58b6bef..d7ceef7 100644 (file)
@@ -1,53 +1,49 @@
 #ifndef SIMPLEIMAGEVIEW_H
 #define SIMPLEIMAGEVIEW_H
 
+#include "abstractview.h"
+
 #include <QGraphicsView>
 
-class SimpleImageView : public QGraphicsView
+class MainWindow;
+
+class SimpleImageView : public QGraphicsView, public AbstractView
 {
     Q_OBJECT
 public:
     explicit SimpleImageView(QWidget *parent = 0);
 
-    bool setSource(const QString &path);
-
-    void changeScale(bool up);
+    void    initialize(MainWindow *w);
+    void    setSource(const QPixmap &pixmap);
 
 private:
-    QAction *m_back;
-    QAction *m_fitToWindow;
-    QAction *m_scaleUp;
-    QAction *m_scaleDown;
-    QAction *m_scaleNormal;
-    QAction *m_rot90;
-    QAction *m_rot180;
-    QPixmap m_imgSrc;
-    double m_scaleFactor;
-    int m_rotateDeg;
+    QPixmap         m_imgSrc;
+    QGraphicsScene  m_scene;
+    double          m_scaleFactor;
+    int             m_rotateDeg;
 
 private:
-    double scaleFactor(const QSize &size);
-    void updateActions();
-    void sizeChanged();
-    double resizeImage();
+    double  scaleFactor();
+    void    sizeChanged();
+    double  resizeImage();
 
 signals:
-    void viewFinished();
-    void fileInfo(const QString &info);
+    void    statusChanged(const QString &info);
 
-private slots:
-    void fitToWindow(bool checked);
-    void scaleNormal();
-    void scaleUp();
-    void scaleDown();
-    void rotate90();
-    void rotate180();
+public slots:
+    void    fitToWindow(bool checked);
+    void    scaleNormal();
+    void    rotate90();
+    void    rotate180();
 
     // QWidget interface
 protected:
-    void keyPressEvent(QKeyEvent *event);
-    void contextMenuEvent(QContextMenuEvent *event);
     void resizeEvent(QResizeEvent *event);
+
+    // AbstractView interface
+public slots:
+    void    scaleUp();
+    void    scaleDown();
 };
 
 #endif // SIMPLEIMAGEVIEW_H