Diffstat (limited to 'noncore/multimedia/showimg/showimg.h') (more/less context) (show whitespace changes)
-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 @@ -28,5 +28,8 @@ #include <qlayout.h> +#include <qscrollview.h> +#include <qdialog.h> +#include <qstringlist.h> - -class QMenuBar; +class QPEToolBar; +class QPEMenuBar; class QPopupMenu; @@ -35,2 +38,7 @@ class FileSelector; class DocLnk; +class QLabel; +class QAction; +class QSpinBox; +class ImageFileSelector; + @@ -41,6 +49,18 @@ class ImageWidget : public QWidget 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(); + } @@ -57,2 +77,37 @@ 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; +}; + @@ -63,9 +118,36 @@ 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: @@ -74,4 +156,4 @@ signals: private: - ImageWidget *image; - QLabel *status; + QScrollView *image; + ImageWidget *pic; QVBoxLayout *vb; @@ -94,6 +176,26 @@ public: + + 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 * ); @@ -104,3 +206,2 @@ private: void scale(); - void convertEvent( QMouseEvent* e, int& x, int& y ); bool reconvertImage(); @@ -108,5 +209,15 @@ private: 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); @@ -114,2 +225,3 @@ private slots: void openFile( const DocLnk &file ); + //void openFile(); void open(); @@ -120,6 +232,32 @@ private slots: 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; @@ -129,12 +267,29 @@ private: 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]; }; |