-rw-r--r-- | noncore/multimedia/showimg/showimg.h | 195 |
1 files changed, 175 insertions, 20 deletions
diff --git a/noncore/multimedia/showimg/showimg.h b/noncore/multimedia/showimg/showimg.h index 71003b1..0d3bc7d 100644 --- a/noncore/multimedia/showimg/showimg.h +++ b/noncore/multimedia/showimg/showimg.h @@ -27,11 +27,19 @@ #include <qlabel.h> #include <qlayout.h> +#include <qscrollview.h> +#include <qdialog.h> +#include <qstringlist.h> - -class QMenuBar; +class QPEToolBar; +class QPEMenuBar; class QPopupMenu; class QWidgetStack; class FileSelector; class DocLnk; +class QLabel; +class QAction; +class QSpinBox; +class ImageFileSelector; + @@ -40,8 +48,20 @@ class ImageWidget : public QWidget Q_OBJECT public: - ImageWidget( QWidget *parent=0 ) : QWidget( parent ) { } - ~ImageWidget() { } + ImageWidget( + QWidget *parent=0 + ) : QWidget( parent ) + { + setBackgroundMode(NoBackground); + } + ~ImageWidget() + { + + } - void setPixmap( const QPixmap &pm ) { pixmap = pm; } + void setPixmap( const QPixmap &pm ) + { + pixmap = pm; + show(); + } signals: @@ -56,4 +76,39 @@ private: }; +class InfoDialog:public QDialog +{ + Q_OBJECT + + public: + + static void displayInfo(const QString &caption, const QStringList text, QWidget *parent); + +private: + + InfoDialog(const QString &caption,const QStringList text, QWidget *parent); + +}; + +class ControlsDialog:public QDialog +{ + Q_OBJECT + + public: + ControlsDialog(const QString &caption,const QImage image,int *brightness, QWidget *parent); + + +private slots: + + void bValueChanged(int); + void accept(); + + +private: + ImageWidget *pixmap; + QSpinBox *spb; + QImage img; + int *b; +}; + class ImagePane : public QWidget @@ -62,17 +117,44 @@ class ImagePane : public QWidget public: ImagePane( QWidget *parent=0 ); - ~ImagePane() { } + ~ImagePane() + { + + } - void showStatus(); - void hideStatus(); - QLabel *statusLabel() { return status; } + //void showStatus(); + //void hideStatus(); + //QLabel *statusLabel() + //{ + // return status; + //} void setPixmap( const QPixmap &pm ); + + int paneWidth() const + { + return image->visibleWidth(); + } + + int paneHeight() const + { + return image->visibleHeight(); + } + + void setPosition(int x, int y) + { + image->setContentsPos (x,y ); + } + + void disable() + { + pic->hide(); + } + signals: void clicked(); private: - ImageWidget *image; - QLabel *status; + QScrollView *image; + ImageWidget *pic; QVBoxLayout *vb; @@ -93,8 +175,28 @@ public: void show(); + + enum INFO_STRINGS + { + PATH, + FORMAT, + FILE_SIZE, + SIZE, + COLORS, + ALPHA, + LAST + }; + + enum RotateDirection + { + Rotate90, Rotate180, Rotate270 + }; + + + static QImage rotate(QImage &img, RotateDirection r); + static QImage& intensity(QImage &image, float percent); + static QImage& toGray(QImage &image, bool fast = false); + protected: void resizeEvent( QResizeEvent * ); - void mousePressEvent( QMouseEvent * ); - void mouseMoveEvent( QMouseEvent * ); void closeEvent( QCloseEvent * ); @@ -103,14 +205,24 @@ private: bool loadSelected(); void scale(); - void convertEvent( QMouseEvent* e, int& x, int& y ); bool reconvertImage(); int calcHeight(); void setImage(const QImage& newimage); - void updateStatus(); + void updateImageInfo(QString &filePath); + void switchToFileSelector(); + void switchToImageView(); + + void updateImage(); + + + private slots: + + void switchThumbView(); + void switchSizeToScreen(); void setDocument(const QString& fileref); void doDelayedLoad(); void openFile( const DocLnk &file ); + //void openFile(); void open(); void closeFileSelector(); @@ -119,8 +231,34 @@ private slots: void rot180(); void rot90(); + void rot270(); void normalView(); void fullScreen(); + void blackAndWhite(); + void displayInfoDialog(); + void displayControlsDialog(); + + + + + + + + + private: + + + + + enum MENU_ITEMS + { + SHOW_THUMBNAILS, + SIZE_TO_SCREEN, + BLACKANDWHITE + }; + + + QString filename; QString delayLoad; @@ -128,14 +266,31 @@ private: QPixmap pm; // the converted pixmap QPixmap pmScaled; // the scaled pixmap - QMenuBar *menubar; + QPEToolBar *toolBar; + QPEToolBar *iconToolBar; + QPEMenuBar *menuBar; + QPEMenuBar *current; + + + QPopupMenu *fileMenuFile; + QPopupMenu *viewMenuFile; + QPopupMenu *optionsMenuFile; + QPopupMenu *fileMenuView; + QPopupMenu *viewMenuView; + + QAction *sss; // scale to screen size + + QLabel *lab; ImagePane *imagePanel; - QToolBar *toolBar; QWidgetStack *stack; - FileSelector *fileSelector; - int pickx, picky; - int clickx, clicky; + //FileSelector *fileSelector; + ImageFileSelector *fileSelector; bool isFullScreen; + bool isSized; // true if image is to be resized to fit the window size bool bFromDocView; // a flag to indicate whether or not we were // launched from the document view... + + bool showThumbView; // a flag to indicate if FileSelector should be initialized with thumbnail view + + QString imageInfo[LAST]; }; |