00001 #ifndef QIMAGEVIEWER_H
00002 #define QIMAGEVIEWER_H
00003
00004 #include <QMainWindow>
00005 #include <QGraphicsView>
00006 #include <QGraphicsScene>
00007 #include <QGraphicsPixmapItem>
00008 #include <QMessageBox>
00009 #include <QDebug>
00010 #include <QMouseEvent>
00011 #include <QLibrary>
00012 #include <QLabel>
00013 #include <QVBoxLayout>
00014 #include <QHBoxLayout>
00015 #include <QPushButton>
00016 #include <QDesktopWidget>
00017 #include <QGraphicsProxyWidget>
00018 #include <QGraphicsLinearLayout>
00019 #include <QMenuBar>
00020
00021 #include "servicemgr.h"
00022 #include "datatypes/photo.h"
00023 #include "widgets/qmousetrackingview.h"
00024 #include "widgets/qcommentwidget.h"
00025 #include "widgets/qaddcomment.h"
00026
00027 #ifdef Q_WS_MAEMO_5
00028 #include "utils/fullscreenexitbutton.h"
00029 #endif
00030
00031 #ifdef Q_WS_MAEMO_5
00032 #define WINDOW_TITLE "Gallery"
00033 #else
00034 #define WINDOW_TITLE "MySocials Gallery Image Viewer"
00035 #endif
00036
00037 class QImageViewer : public QMainWindow
00038 {
00039 Q_OBJECT
00040 public:
00041 explicit QImageViewer(QFont textFont, QWidget *parent = 0);
00042 ~QImageViewer();
00043
00049 void loadImage(ServiceMgr *sm, Photo image);
00050
00051 protected:
00052 void keyPressEvent(QKeyEvent *event);
00053
00054 private:
00058 void showImage(bool isNeedCompare);
00059 void showComments();
00060
00061
00062 Photo currentPhoto;
00063
00064
00065 PhotoList list;
00066
00067
00068 ServiceMgr *sm;
00069
00070
00071 QLabel *description;
00072
00073
00074 QWidget *comments;
00075 QGraphicsProxyWidget *commentsWidget;
00076
00077 QMouseTrackingView *view;
00078 QGraphicsScene *scene;
00079
00080
00081 QGraphicsPixmapItem *pixmapItem;
00082
00083
00084 QGraphicsTextItem *processItem;
00085
00086
00087 QSize windowSize;
00088
00089
00090 int currentImageIndex;
00091
00092 void createMenu();
00093
00094 #ifdef Q_WS_MAEMO_5
00095 FullScreenExitButton *fullScreenButton;
00096 #endif
00097
00098 signals:
00099
00100 private slots:
00101 void action_refresh_comments_toggled();
00102 void action_add_comment_toggled();
00103
00104 public slots:
00105
00106 void imageListUpdate(QString accountId, QString friendId, QString albumId, PhotoList list, bool isLastUpdate);
00107 void gotProfile(Friend profile);
00108 void close();
00109 void resizeEvent(QResizeEvent *);
00110 void moveImage(Qt::ArrowType);
00111 void on_actionFull_screen_toggled();
00112 void orientationChanged();
00113
00114 void gotComments(QString photoId, PhotoCommentList list);
00115 };
00116
00117 #endif // QIMAGEVIEWER_H