summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/showimg/showimg.h195
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];
};