author | alwin <alwin> | 2005-03-02 12:05:55 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-02 12:05:55 (UTC) |
commit | b9d921e98946ee787ec995f44eb1b937d669b430 (patch) (unidiff) | |
tree | 7136aa32ca3d90c0b03ec21f855f32b7536eb339 | |
parent | 374cb9f45664c307ab7d0ed88fea5e76631518d9 (diff) | |
download | opie-b9d921e98946ee787ec995f44eb1b937d669b430.zip opie-b9d921e98946ee787ec995f44eb1b937d669b430.tar.gz opie-b9d921e98946ee787ec995f44eb1b937d669b430.tar.bz2 |
fixed some problems in bigscreen mode and when rotating
-rw-r--r-- | noncore/graphics/opie-eye/gui/imageview.cpp | 37 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/imageview.h | 7 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/mainwindow.cpp | 22 |
3 files changed, 55 insertions, 11 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp index ac6474c..03df321 100644 --- a/noncore/graphics/opie-eye/gui/imageview.cpp +++ b/noncore/graphics/opie-eye/gui/imageview.cpp | |||
@@ -1,42 +1,72 @@ | |||
1 | #include "imageview.h" | 1 | #include "imageview.h" |
2 | 2 | ||
3 | #include <opie2/odebug.h> | 3 | #include <opie2/odebug.h> |
4 | #include <opie2/oconfig.h> | 4 | #include <opie2/oconfig.h> |
5 | #include <opie2/okeyconfigwidget.h> | 5 | #include <opie2/okeyconfigwidget.h> |
6 | 6 | ||
7 | #include <qpe/resource.h> | 7 | #include <qpe/resource.h> |
8 | #include <qpe/qpeapplication.h> | 8 | #include <qpe/qpeapplication.h> |
9 | #include <qpe/qcopenvelope_qws.h> | ||
10 | |||
9 | #include <qpopupmenu.h> | 11 | #include <qpopupmenu.h> |
10 | #include <qtimer.h> | 12 | #include <qtimer.h> |
11 | #include <qaction.h> | 13 | #include <qaction.h> |
12 | 14 | ||
13 | using namespace Opie::Core; | 15 | using namespace Opie::Core; |
14 | 16 | ||
15 | ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl ) | 17 | ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl ) |
16 | : Opie::MM::OImageScrollView(parent,name,fl) | 18 | : Opie::MM::OImageScrollView(parent,name,fl) |
17 | { | 19 | { |
18 | m_viewManager = 0; | 20 | m_viewManager = 0; |
19 | focus_in_count = 0; | 21 | focus_in_count = 0; |
20 | m_cfg = cfg; | 22 | m_cfg = cfg; |
21 | m_isFullScreen = false; | 23 | m_isFullScreen = false; |
22 | m_ignore_next_in = false; | 24 | m_ignore_next_in = false; |
23 | m_slideTimer = 0; | 25 | m_slideTimer = 0; |
24 | QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); | 26 | QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); |
25 | initKeys(); | 27 | initKeys(); |
26 | m_slideValue = 5; | 28 | m_slideValue = 5; |
27 | m_gDisplayType = 0; | 29 | m_gDisplayType = 0; |
28 | m_gPrevNext = 0; | 30 | m_gPrevNext = 0; |
29 | m_hGroup = 0; | 31 | m_hGroup = 0; |
32 | m_Rotated = false; | ||
30 | closeIfHide = false; | 33 | closeIfHide = false; |
34 | int min = QApplication::desktop()->size().width()>QApplication::desktop()->size().height()? | ||
35 | QApplication::desktop()->size().height():QApplication::desktop()->size().width(); | ||
36 | if (min>320) { | ||
37 | // bigscreen | ||
38 | setMinimumSize(min/3,min/3); | ||
39 | } else { | ||
40 | setMinimumSize(10,10); | ||
41 | } | ||
42 | m_sysChannel = new QCopChannel( "QPE/System", this ); | ||
43 | connect( m_sysChannel, SIGNAL( received(const QCString&,const QByteArray&) ), | ||
44 | this, SLOT( systemMessage(const QCString&,const QByteArray&) ) ); | ||
45 | } | ||
46 | |||
47 | void ImageView::systemMessage( const QCString& msg, const QByteArray& data ) | ||
48 | { | ||
49 | int _newrotation; | ||
50 | QDataStream stream( data, IO_ReadOnly ); | ||
51 | odebug << "received system message: " << msg << oendl; | ||
52 | if ( msg == "setCurrentRotation(int)" ) | ||
53 | { | ||
54 | stream >> _newrotation; | ||
55 | odebug << "received setCurrentRotation(" << _newrotation << ")" << oendl; | ||
56 | if (!fullScreen()) { | ||
57 | m_rotation = _newrotation; | ||
58 | return; | ||
59 | } | ||
60 | } | ||
31 | } | 61 | } |
32 | 62 | ||
33 | void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup) | 63 | void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup) |
34 | { | 64 | { |
35 | m_gDisplayType = disptypeGroup; | 65 | m_gDisplayType = disptypeGroup; |
36 | m_gPrevNext = nextprevGroup; | 66 | m_gPrevNext = nextprevGroup; |
37 | m_hGroup = hGroup; | 67 | m_hGroup = hGroup; |
38 | } | 68 | } |
39 | 69 | ||
40 | ImageView::~ImageView() | 70 | ImageView::~ImageView() |
41 | { | 71 | { |
42 | odebug << "Destructor imageview" << oendl; | 72 | odebug << "Destructor imageview" << oendl; |
@@ -170,25 +200,25 @@ void ImageView::setCloseIfHide(bool how) | |||
170 | 200 | ||
171 | void ImageView::slotShowImageInfo() | 201 | void ImageView::slotShowImageInfo() |
172 | { | 202 | { |
173 | emit dispImageInfo(m_lastName); | 203 | emit dispImageInfo(m_lastName); |
174 | } | 204 | } |
175 | 205 | ||
176 | void ImageView::contentsMousePressEvent ( QMouseEvent * e) | 206 | void ImageView::contentsMousePressEvent ( QMouseEvent * e) |
177 | { | 207 | { |
178 | if (e->button()==1) { | 208 | if (e->button()==1) { |
179 | return OImageScrollView::contentsMousePressEvent(e); | 209 | return OImageScrollView::contentsMousePressEvent(e); |
180 | } | 210 | } |
181 | odebug << "Popup " << oendl; | 211 | odebug << "Popup " << oendl; |
182 | QPopupMenu *m = new QPopupMenu(0); | 212 | QPopupMenu *m = new QPopupMenu(this); |
183 | if (!m) return; | 213 | if (!m) return; |
184 | if (m_hGroup) { | 214 | if (m_hGroup) { |
185 | m_hGroup->addTo(m); | 215 | m_hGroup->addTo(m); |
186 | } | 216 | } |
187 | if (fullScreen()) { | 217 | if (fullScreen()) { |
188 | if (m_gPrevNext) { | 218 | if (m_gPrevNext) { |
189 | m->insertSeparator(); | 219 | m->insertSeparator(); |
190 | m_gPrevNext->addTo(m); | 220 | m_gPrevNext->addTo(m); |
191 | } | 221 | } |
192 | if (m_gDisplayType) { | 222 | if (m_gDisplayType) { |
193 | m->insertSeparator(); | 223 | m->insertSeparator(); |
194 | m_gDisplayType->addTo(m); | 224 | m_gDisplayType->addTo(m); |
@@ -204,28 +234,29 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e) | |||
204 | } | 234 | } |
205 | if (m_gDisplayType) { | 235 | if (m_gDisplayType) { |
206 | m_gDisplayType->removeFrom(m); | 236 | m_gDisplayType->removeFrom(m); |
207 | } | 237 | } |
208 | delete m; | 238 | delete m; |
209 | } | 239 | } |
210 | 240 | ||
211 | void ImageView::setFullScreen(bool how,bool force) | 241 | void ImageView::setFullScreen(bool how,bool force) |
212 | { | 242 | { |
213 | m_isFullScreen = how; | 243 | m_isFullScreen = how; |
214 | if (how) { | 244 | if (how) { |
215 | m_ignore_next_in = true; | 245 | m_ignore_next_in = true; |
216 | setFixedSize(qApp->desktop()->size()); | 246 | // setFixedSize(qApp->desktop()->size()); |
247 | setGeometry(0,0,qApp->desktop()->size().width(),qApp->desktop()->size().height()); | ||
217 | if (force) showFullScreen(); | 248 | if (force) showFullScreen(); |
218 | } else { | 249 | } else { |
219 | setMinimumSize(10,10); | 250 | // setMinimumSize(10,10); |
220 | } | 251 | } |
221 | } | 252 | } |
222 | 253 | ||
223 | void ImageView::focusInEvent(QFocusEvent *) | 254 | void ImageView::focusInEvent(QFocusEvent *) |
224 | { | 255 | { |
225 | // Always do it here, no matter the size. | 256 | // Always do it here, no matter the size. |
226 | odebug << "Focus in (view)" << oendl; | 257 | odebug << "Focus in (view)" << oendl; |
227 | //if (fullScreen()) parentWidget()->showNormal(); | 258 | //if (fullScreen()) parentWidget()->showNormal(); |
228 | if (m_ignore_next_in){m_ignore_next_in=false;return;} | 259 | if (m_ignore_next_in){m_ignore_next_in=false;return;} |
229 | if (fullScreen()) enableFullscreen(); | 260 | if (fullScreen()) enableFullscreen(); |
230 | } | 261 | } |
231 | 262 | ||
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h index f1067bb..e8c8df7 100644 --- a/noncore/graphics/opie-eye/gui/imageview.h +++ b/noncore/graphics/opie-eye/gui/imageview.h | |||
@@ -1,23 +1,25 @@ | |||
1 | #ifndef _IMAGE_VIEW_H | 1 | #ifndef _IMAGE_VIEW_H |
2 | #define _IMAGE_VIEW_H | 2 | #define _IMAGE_VIEW_H |
3 | 3 | ||
4 | #include <opie2/oimagescrollview.h> | 4 | #include <opie2/oimagescrollview.h> |
5 | 5 | ||
6 | #include <qwidget.h> | 6 | #include <qwidget.h> |
7 | 7 | ||
8 | class QTimer; | 8 | class QTimer; |
9 | class QActionGroup; | 9 | class QActionGroup; |
10 | class QAction; | 10 | class QAction; |
11 | 11 | ||
12 | class QCopChannel; | ||
13 | |||
12 | namespace Opie { | 14 | namespace Opie { |
13 | namespace Core { | 15 | namespace Core { |
14 | class OConfig; | 16 | class OConfig; |
15 | class OKeyConfigManager; | 17 | class OKeyConfigManager; |
16 | } | 18 | } |
17 | } | 19 | } |
18 | 20 | ||
19 | class ImageView:public Opie::MM::OImageScrollView | 21 | class ImageView:public Opie::MM::OImageScrollView |
20 | { | 22 | { |
21 | Q_OBJECT | 23 | Q_OBJECT |
22 | 24 | ||
23 | enum ActionIds { | 25 | enum ActionIds { |
@@ -48,31 +50,36 @@ signals: | |||
48 | void toggleFullScreen(); | 50 | void toggleFullScreen(); |
49 | void hideMe(); | 51 | void hideMe(); |
50 | void toggleZoomer(); | 52 | void toggleZoomer(); |
51 | void toggleAutoscale(); | 53 | void toggleAutoscale(); |
52 | void toggleAutorotate(); | 54 | void toggleAutorotate(); |
53 | 55 | ||
54 | protected: | 56 | protected: |
55 | Opie::Core::OConfig * m_cfg; | 57 | Opie::Core::OConfig * m_cfg; |
56 | Opie::Core::OKeyConfigManager*m_viewManager; | 58 | Opie::Core::OKeyConfigManager*m_viewManager; |
57 | void initKeys(); | 59 | void initKeys(); |
58 | bool m_isFullScreen:1; | 60 | bool m_isFullScreen:1; |
59 | bool m_ignore_next_in:1; | 61 | bool m_ignore_next_in:1; |
62 | bool m_Rotated:1; | ||
63 | |||
60 | int focus_in_count; | 64 | int focus_in_count; |
61 | QTimer*m_slideTimer; | 65 | QTimer*m_slideTimer; |
62 | int m_slideValue; | 66 | int m_slideValue; |
63 | virtual void focusInEvent ( QFocusEvent * ); | 67 | virtual void focusInEvent ( QFocusEvent * ); |
64 | QActionGroup *m_gDisplayType,*m_gPrevNext,*m_hGroup; | 68 | QActionGroup *m_gDisplayType,*m_gPrevNext,*m_hGroup; |
65 | bool closeIfHide:1; | 69 | bool closeIfHide:1; |
70 | QCopChannel* m_sysChannel; | ||
71 | int m_rotation; | ||
66 | 72 | ||
67 | public slots: | 73 | public slots: |
68 | virtual void hide(); | 74 | virtual void hide(); |
69 | virtual void startSlide(int); | 75 | virtual void startSlide(int); |
70 | virtual void nextSlide(); | 76 | virtual void nextSlide(); |
77 | virtual void systemMessage( const QCString&, const QByteArray& ); | ||
71 | 78 | ||
72 | protected slots: | 79 | protected slots: |
73 | virtual void slotShowImageInfo(); | 80 | virtual void slotShowImageInfo(); |
74 | virtual void keyReleaseEvent(QKeyEvent * e); | 81 | virtual void keyReleaseEvent(QKeyEvent * e); |
75 | virtual void contentsMousePressEvent ( QMouseEvent * e); | 82 | virtual void contentsMousePressEvent ( QMouseEvent * e); |
76 | }; | 83 | }; |
77 | 84 | ||
78 | #endif | 85 | #endif |
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp index 7570ee3..90e2e99 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.cpp +++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp | |||
@@ -246,25 +246,25 @@ void PMainWindow::initT( const char* name, T** ptr, int id) { | |||
246 | 246 | ||
247 | } | 247 | } |
248 | 248 | ||
249 | void PMainWindow::initInfo() { | 249 | void PMainWindow::initInfo() { |
250 | initT<imageinfo>( "Image Info", &m_info, ImageInfo ); | 250 | initT<imageinfo>( "Image Info", &m_info, ImageInfo ); |
251 | connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); | 251 | connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); |
252 | } | 252 | } |
253 | 253 | ||
254 | void PMainWindow::initDisp() { | 254 | void PMainWindow::initDisp() { |
255 | initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); | 255 | initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); |
256 | if (m_disp) { | 256 | if (m_disp) { |
257 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { | 257 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { |
258 | m_disp->setMinimumSize(QApplication::desktop()->size()/2); | 258 | //m_disp->setMinimumSize(QApplication::desktop()->size()/2); |
259 | } | 259 | } |
260 | m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType); | 260 | m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType); |
261 | m_disp->setAutoScale(!m_aUnscaled->isOn()); | 261 | m_disp->setAutoScale(!m_aUnscaled->isOn()); |
262 | m_disp->setAutoRotate(m_aAutoRotate->isOn()); | 262 | m_disp->setAutoRotate(m_aAutoRotate->isOn()); |
263 | m_disp->setShowZoomer(m_aZoomer->isOn()); | 263 | m_disp->setShowZoomer(m_aZoomer->isOn()); |
264 | m_disp->setBackgroundColor(white); | 264 | m_disp->setBackgroundColor(white); |
265 | connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); | 265 | connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); |
266 | connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); | 266 | connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); |
267 | connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); | 267 | connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); |
268 | connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); | 268 | connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); |
269 | connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); | 269 | connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); |
270 | connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer())); | 270 | connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer())); |
@@ -285,51 +285,57 @@ void PMainWindow::slotFullScreenButton(bool current) | |||
285 | { | 285 | { |
286 | if (autoSave) { | 286 | if (autoSave) { |
287 | m_cfg->writeEntry("fullscreen",current); | 287 | m_cfg->writeEntry("fullscreen",current); |
288 | } | 288 | } |
289 | if (!m_disp) return; | 289 | if (!m_disp) return; |
290 | if (m_disp->isVisible()) { | 290 | if (m_disp->isVisible()) { |
291 | setupViewWindow(current, true); | 291 | setupViewWindow(current, true); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | 294 | ||
295 | void PMainWindow::setupViewWindow(bool current, bool forceDisplay) | 295 | void PMainWindow::setupViewWindow(bool current, bool forceDisplay) |
296 | { | 296 | { |
297 | if (!m_disp) return; | 297 | if (!m_disp) { |
298 | return; | ||
299 | } | ||
298 | if (current) { | 300 | if (current) { |
299 | m_disp->setBackgroundColor(black); | 301 | m_disp->setBackgroundColor(black); |
300 | m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); | 302 | m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); |
301 | m_disp->setVScrollBarMode(QScrollView::AlwaysOff); | 303 | m_disp->setVScrollBarMode(QScrollView::AlwaysOff); |
302 | m_disp->setHScrollBarMode(QScrollView::AlwaysOff); | 304 | m_disp->setHScrollBarMode(QScrollView::AlwaysOff); |
303 | m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); | 305 | m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); |
306 | m_disp->setFullScreen(current,forceDisplay); | ||
304 | } else { | 307 | } else { |
305 | setUpdatesEnabled(false); | 308 | setUpdatesEnabled(false); |
306 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { | 309 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { |
307 | m_disp->setMinimumSize(QApplication::desktop()->size()/2); | 310 | |
311 | //m_disp->setMinimumSize(QApplication::desktop()->size()/2); | ||
308 | } else { | 312 | } else { |
309 | m_disp->setMinimumSize(10,10); | 313 | //m_disp->setMinimumSize(10,10); |
310 | } | 314 | } |
311 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { | 315 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { |
312 | m_disp->reparent(0,QPoint(50,50)); | 316 | m_disp->reparent(0,QPoint(10,10)); |
313 | } else { | 317 | } else { |
314 | m_disp->reparent(0,QPoint(0,0)); | 318 | m_disp->reparent(0,QPoint(0,0)); |
315 | } | 319 | } |
316 | m_disp->setBackgroundColor(white); | 320 | m_disp->setBackgroundColor(white); |
317 | m_stack->addWidget(m_disp,ImageDisplay); | 321 | m_stack->addWidget(m_disp,ImageDisplay); |
318 | m_disp->setVScrollBarMode(QScrollView::Auto); | 322 | m_disp->setVScrollBarMode(QScrollView::Auto); |
319 | m_disp->setHScrollBarMode(QScrollView::Auto); | 323 | m_disp->setHScrollBarMode(QScrollView::Auto); |
320 | if (forceDisplay || m_disp->isVisible()) | ||
321 | m_stack->raiseWidget(m_disp); | ||
322 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { | 324 | if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { |
323 | m_disp->resize(m_disp->minimumSize()); | 325 | m_disp->setGeometry(30,30,QApplication::desktop()->width()-60,QApplication::desktop()->height()-60); |
326 | } | ||
327 | if (forceDisplay || m_disp->isVisible()) { | ||
328 | m_stack->raiseWidget(m_disp); | ||
329 | m_disp->setFocus(); | ||
324 | } | 330 | } |
325 | setUpdatesEnabled(true); | 331 | setUpdatesEnabled(true); |
326 | } | 332 | } |
327 | m_disp->setFullScreen(current,forceDisplay); | 333 | m_disp->setFullScreen(current,forceDisplay); |
328 | } | 334 | } |
329 | 335 | ||
330 | void PMainWindow::slotFullScreenToggled(bool current) | 336 | void PMainWindow::slotFullScreenToggled(bool current) |
331 | { | 337 | { |
332 | setupViewWindow(current,true); | 338 | setupViewWindow(current,true); |
333 | } | 339 | } |
334 | 340 | ||
335 | /** | 341 | /** |