Diffstat (limited to 'noncore/multimedia/showimg/showimg.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/showimg/showimg.h | 104 |
1 files changed, 47 insertions, 57 deletions
diff --git a/noncore/multimedia/showimg/showimg.h b/noncore/multimedia/showimg/showimg.h index 0d3bc7d..8555ff0 100644 --- a/noncore/multimedia/showimg/showimg.h +++ b/noncore/multimedia/showimg/showimg.h | |||
@@ -1,298 +1,288 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #ifndef SHOWIMG_H | 21 | #ifndef SHOWIMG_H |
22 | #define SHOWIMG_H | 22 | #define SHOWIMG_H |
23 | 23 | ||
24 | #include <qwidget.h> | 24 | #include <qwidget.h> |
25 | #include <qmainwindow.h> | 25 | #include <qmainwindow.h> |
26 | #include <qimage.h> | 26 | #include <qimage.h> |
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qscrollview.h> | 29 | #include <qscrollview.h> |
30 | #include <qdialog.h> | 30 | #include <qdialog.h> |
31 | #include <qstringlist.h> | 31 | #include <qstringlist.h> |
32 | #include <qvaluelist.h> | ||
33 | #include <qwmatrix.h> | ||
32 | 34 | ||
35 | |||
36 | class QAction; | ||
33 | class QPEToolBar; | 37 | class QPEToolBar; |
34 | class QPEMenuBar; | 38 | class QPEMenuBar; |
35 | class QPopupMenu; | 39 | class QPopupMenu; |
36 | class QWidgetStack; | 40 | class QWidgetStack; |
37 | class FileSelector; | 41 | class FileSelector; |
38 | class DocLnk; | 42 | class DocLnk; |
39 | class QLabel; | 43 | class QLabel; |
40 | class QAction; | 44 | class QAction; |
41 | class QSpinBox; | 45 | class QSpinBox; |
42 | class ImageFileSelector; | 46 | class ImageFileSelector; |
43 | 47 | class QTimer; | |
44 | 48 | ||
45 | 49 | ||
46 | class ImageWidget : public QWidget | 50 | class ImageWidget : public QWidget |
47 | { | 51 | { |
48 | Q_OBJECT | 52 | Q_OBJECT |
49 | public: | 53 | public: |
50 | ImageWidget( | 54 | ImageWidget( QWidget *parent=0 ) |
51 | QWidget *parent=0 | 55 | : QWidget( parent ) { |
52 | ) : QWidget( parent ) | ||
53 | { | ||
54 | setBackgroundMode(NoBackground); | 56 | setBackgroundMode(NoBackground); |
55 | } | 57 | } |
56 | ~ImageWidget() | 58 | ~ImageWidget() { } |
57 | { | ||
58 | |||
59 | } | ||
60 | 59 | ||
61 | void setPixmap( const QPixmap &pm ) | 60 | void setPixmap( const QPixmap &pm ) { |
62 | { | ||
63 | pixmap = pm; | 61 | pixmap = pm; |
64 | show(); | 62 | show(); |
65 | } | 63 | } |
66 | 64 | ||
67 | signals: | 65 | signals: |
68 | void clicked(); | 66 | void clicked(); |
69 | 67 | ||
70 | protected: | 68 | protected: |
71 | void paintEvent( QPaintEvent * ); | 69 | void paintEvent( QPaintEvent * ); |
72 | void mouseReleaseEvent(QMouseEvent* event); | 70 | void mouseReleaseEvent(QMouseEvent* event); |
73 | 71 | ||
74 | private: | 72 | private: |
75 | QPixmap pixmap; | 73 | QPixmap pixmap; |
76 | }; | 74 | }; |
77 | 75 | ||
78 | class InfoDialog:public QDialog | 76 | class InfoDialog:public QDialog |
79 | { | 77 | { |
80 | Q_OBJECT | 78 | Q_OBJECT |
81 | 79 | ||
82 | public: | 80 | public: |
83 | 81 | ||
84 | static void displayInfo(const QString &caption, const QStringList text, QWidget *parent); | 82 | static void displayInfo(const QString &caption, const QStringList text, QWidget *parent); |
85 | 83 | ||
86 | private: | 84 | private: |
87 | 85 | ||
88 | InfoDialog(const QString &caption,const QStringList text, QWidget *parent); | 86 | InfoDialog(const QString &caption,const QStringList text, QWidget *parent); |
89 | 87 | ||
90 | }; | 88 | }; |
91 | 89 | ||
92 | class ControlsDialog:public QDialog | 90 | class ControlsDialog:public QDialog |
93 | { | 91 | { |
94 | Q_OBJECT | 92 | Q_OBJECT |
95 | 93 | ||
96 | public: | 94 | public: |
97 | ControlsDialog(const QString &caption,const QImage image,int *brightness, QWidget *parent); | 95 | ControlsDialog(const QString &caption,const QImage image,int *brightness, QWidget *parent); |
98 | 96 | ||
99 | 97 | ||
100 | private slots: | 98 | private slots: |
101 | 99 | ||
102 | void bValueChanged(int); | 100 | void bValueChanged(int); |
103 | void accept(); | 101 | void accept(); |
104 | 102 | ||
105 | 103 | ||
106 | private: | 104 | private: |
107 | ImageWidget *pixmap; | 105 | ImageWidget *pixmap; |
108 | QSpinBox *spb; | 106 | QSpinBox *spb; |
109 | QImage img; | 107 | QImage img; |
110 | int *b; | 108 | int *b; |
111 | }; | 109 | }; |
112 | 110 | ||
113 | 111 | ||
114 | class ImagePane : public QWidget | 112 | class ImagePane : public QWidget |
115 | { | 113 | { |
116 | Q_OBJECT | 114 | Q_OBJECT |
117 | public: | 115 | public: |
118 | ImagePane( QWidget *parent=0 ); | 116 | ImagePane( QWidget *parent=0 ); |
119 | ~ImagePane() | 117 | ~ImagePane() { } |
120 | { | ||
121 | |||
122 | } | ||
123 | 118 | ||
124 | //void showStatus(); | 119 | //void showStatus(); |
125 | //void hideStatus(); | 120 | //void hideStatus(); |
126 | //QLabel *statusLabel() | 121 | //QLabel *statusLabel() |
127 | //{ | 122 | //{ |
128 | // return status; | 123 | // return status; |
129 | //} | 124 | //} |
130 | void setPixmap( const QPixmap &pm ); | 125 | void setPixmap( const QPixmap &pm ); |
131 | 126 | ||
132 | 127 | ||
133 | int paneWidth() const | 128 | int paneWidth() const { |
134 | { | ||
135 | return image->visibleWidth(); | 129 | return image->visibleWidth(); |
136 | } | 130 | } |
137 | 131 | ||
138 | int paneHeight() const | 132 | int paneHeight() const { |
139 | { | ||
140 | return image->visibleHeight(); | 133 | return image->visibleHeight(); |
141 | } | 134 | } |
142 | 135 | ||
143 | void setPosition(int x, int y) | 136 | void setPosition(int x, int y) { |
144 | { | ||
145 | image->setContentsPos (x,y ); | 137 | image->setContentsPos (x,y ); |
146 | } | 138 | } |
147 | 139 | ||
148 | void disable() | 140 | void disable() { |
149 | { | ||
150 | pic->hide(); | 141 | pic->hide(); |
151 | } | 142 | } |
152 | 143 | ||
153 | signals: | 144 | signals: |
154 | void clicked(); | 145 | void clicked(); |
155 | 146 | ||
156 | private: | 147 | private: |
157 | QScrollView *image; | 148 | QScrollView *image; |
158 | ImageWidget *pic; | 149 | ImageWidget *pic; |
159 | QVBoxLayout *vb; | 150 | QVBoxLayout *vb; |
160 | 151 | ||
161 | private slots: | 152 | private slots: |
162 | void imageClicked(); | 153 | void imageClicked(); |
163 | }; | 154 | }; |
164 | 155 | ||
165 | 156 | ||
166 | class ImageViewer : public QMainWindow | 157 | class ImageViewer : public QMainWindow |
167 | { | 158 | { |
168 | Q_OBJECT | 159 | Q_OBJECT |
169 | public: | 160 | public: |
170 | ImageViewer( QWidget *parent=0, const char *name=0, int wFlags=0 ); | 161 | ImageViewer( QWidget *parent=0, const char *name=0, int wFlags=0 ); |
171 | ~ImageViewer(); | 162 | ~ImageViewer(); |
172 | 163 | ||
173 | void loadImage( const char *fileName ); | 164 | void loadImage( const char *fileName ); |
174 | void show(const QString& fileref); | 165 | void show(const QString& fileref); |
175 | void show(); | 166 | void show(); |
176 | 167 | ||
177 | 168 | ||
178 | enum INFO_STRINGS | 169 | enum INFO_STRINGS { |
179 | { | ||
180 | PATH, | 170 | PATH, |
181 | FORMAT, | 171 | FORMAT, |
182 | FILE_SIZE, | 172 | FILE_SIZE, |
183 | SIZE, | 173 | SIZE, |
184 | COLORS, | 174 | COLORS, |
185 | ALPHA, | 175 | ALPHA, |
186 | LAST | 176 | LAST |
187 | }; | 177 | }; |
188 | 178 | ||
189 | enum RotateDirection | 179 | enum RotateDirection { |
190 | { | ||
191 | Rotate90, Rotate180, Rotate270 | 180 | Rotate90, Rotate180, Rotate270 |
192 | }; | 181 | }; |
193 | 182 | ||
194 | 183 | ||
195 | static QImage rotate(QImage &img, RotateDirection r); | 184 | static QImage rotate(QImage &img, RotateDirection r); |
196 | static QImage& intensity(QImage &image, float percent); | 185 | static QImage& intensity(QImage &image, float percent); |
197 | static QImage& toGray(QImage &image, bool fast = false); | 186 | static QImage& toGray(QImage &image, bool fast = false); |
187 | bool showThumbView; // a flag to indicate if FileSelector should be initialized with thumbnail view | ||
198 | 188 | ||
199 | protected: | 189 | protected: |
200 | void resizeEvent( QResizeEvent * ); | 190 | void resizeEvent( QResizeEvent * ); |
201 | void closeEvent( QCloseEvent * ); | 191 | void closeEvent( QCloseEvent * ); |
202 | 192 | ||
203 | private: | 193 | private: |
194 | int imageIndex(void); | ||
195 | |||
204 | void updateCaption( QString name ); | 196 | void updateCaption( QString name ); |
205 | bool loadSelected(); | 197 | bool loadSelected(); |
206 | void scale(); | 198 | void scale(); |
207 | bool reconvertImage(); | 199 | bool reconvertImage(); |
208 | int calcHeight(); | 200 | int calcHeight(); |
209 | void setImage(const QImage& newimage); | 201 | void setImage(const QImage& newimage); |
210 | void updateImageInfo(QString &filePath); | 202 | void updateImageInfo(QString &filePath); |
211 | void switchToFileSelector(); | 203 | void switchToFileSelector(); |
212 | void switchToImageView(); | 204 | void switchToImageView(); |
213 | 205 | ||
214 | void updateImage(); | 206 | void updateImage(); |
215 | 207 | ||
216 | |||
217 | |||
218 | |||
219 | private slots: | 208 | private slots: |
220 | 209 | ||
210 | void slideShow( bool on ); | ||
211 | void help(); | ||
212 | void slideUpdate(); | ||
213 | bool nextImage(); | ||
214 | bool prevImage(); | ||
215 | void settings(); | ||
216 | |||
221 | void switchThumbView(); | 217 | void switchThumbView(); |
222 | void switchSizeToScreen(); | 218 | void switchSizeToScreen(); |
223 | void setDocument(const QString& fileref); | 219 | void setDocument(const QString& fileref); |
224 | void doDelayedLoad(); | 220 | void doDelayedLoad(); |
225 | void openFile( const DocLnk &file ); | 221 | void openFile( const DocLnk &file ); |
226 | //void openFile(); | 222 | void openFile(); |
227 | void open(); | 223 | void open(); |
228 | void closeFileSelector(); | 224 | void closeFileSelector(); |
229 | void hFlip(); | 225 | void hFlip(); |
230 | void vFlip(); | 226 | void vFlip(); |
231 | void rot180(); | 227 | void rot180(); |
232 | void rot90(); | 228 | void rot90(); |
233 | void rot270(); | 229 | void rot270(); |
234 | void normalView(); | 230 | void normalView(); |
235 | void fullScreen(); | 231 | void fullScreen(); |
232 | void stopSlideShow(); | ||
236 | void blackAndWhite(); | 233 | void blackAndWhite(); |
237 | void displayInfoDialog(); | 234 | void displayInfoDialog(); |
238 | void displayControlsDialog(); | 235 | void displayControlsDialog(); |
239 | |||
240 | |||
241 | |||
242 | |||
243 | |||
244 | |||
245 | |||
246 | |||
247 | |||
248 | |||
249 | private: | 236 | private: |
250 | 237 | QWMatrix matrix; | |
251 | 238 | bool rotated90; | |
252 | 239 | enum MENU_ITEMS { | |
253 | |||
254 | enum MENU_ITEMS | ||
255 | { | ||
256 | SHOW_THUMBNAILS, | 240 | SHOW_THUMBNAILS, |
257 | SIZE_TO_SCREEN, | 241 | SIZE_TO_SCREEN, |
258 | BLACKANDWHITE | 242 | BLACKANDWHITE |
259 | }; | 243 | }; |
260 | 244 | ||
261 | |||
262 | |||
263 | QString filename; | 245 | QString filename; |
264 | QString delayLoad; | 246 | QString delayLoad; |
265 | QImage image; // the loaded image | 247 | QImage image; // the loaded image |
266 | QPixmap pm; // the converted pixmap | 248 | QPixmap pm; // the converted pixmap |
267 | QPixmap pmScaled; // the scaled pixmap | 249 | QPixmap pmScaled; // the scaled pixmap |
268 | QPEToolBar *toolBar; | 250 | QPEToolBar *toolBar; |
269 | QPEToolBar *iconToolBar; | 251 | QPEToolBar *iconToolBar; |
270 | QPEMenuBar *menuBar; | 252 | QPEMenuBar *menuBar; |
271 | QPEMenuBar *current; | 253 | QPEMenuBar *current; |
272 | 254 | ||
273 | 255 | ||
274 | QPopupMenu *fileMenuFile; | 256 | QPopupMenu *fileMenuFile; |
275 | QPopupMenu *viewMenuFile; | 257 | QPopupMenu *viewMenuFile; |
276 | QPopupMenu *optionsMenuFile; | 258 | QPopupMenu *optionsMenuFile; |
277 | QPopupMenu *fileMenuView; | 259 | QPopupMenu *fileMenuView; |
278 | QPopupMenu *viewMenuView; | 260 | QPopupMenu *viewMenuView; |
279 | 261 | ||
280 | QAction *sss; // scale to screen size | 262 | QAction *sss; // scale to screen size |
281 | 263 | ||
282 | QLabel *lab; | 264 | QLabel *lab; |
283 | ImagePane *imagePanel; | 265 | ImagePane *imagePanel; |
284 | QWidgetStack *stack; | 266 | QWidgetStack *stack; |
285 | //FileSelector *fileSelector; | 267 | //FileSelector *fileSelector; |
286 | ImageFileSelector *fileSelector; | 268 | ImageFileSelector *fileSelector; |
287 | bool isFullScreen; | 269 | bool isFullScreen; |
288 | bool isSized; // true if image is to be resized to fit the window size | 270 | bool isSized; // true if image is to be resized to fit the window size |
289 | bool bFromDocView; // a flag to indicate whether or not we were | 271 | bool bFromDocView; // a flag to indicate whether or not we were |
290 | // launched from the document view... | 272 | // launched from the document view... |
291 | 273 | ||
292 | bool showThumbView; // a flag to indicate if FileSelector should be initialized with thumbnail view | 274 | int slideDelay; |
275 | bool slideRepeat; | ||
276 | bool slideReverse; // show slideshow in reverse order | ||
277 | bool rotateOnLoad; // rotate by 90 degrees on loading | ||
278 | bool fastLoad; | ||
279 | QTimer *slideTimer; | ||
280 | QValueList<DocLnk> imageList; | ||
281 | QAction *slideAction; | ||
282 | |||
293 | 283 | ||
294 | QString imageInfo[LAST]; | 284 | QString imageInfo[LAST]; |
295 | }; | 285 | }; |
296 | 286 | ||
297 | 287 | ||
298 | #endif // SHOWIMG_H | 288 | #endif // SHOWIMG_H |