summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-16 21:53:37 (UTC)
committer alwin <alwin>2004-04-16 21:53:37 (UTC)
commita33ef3772b9603ef60de8c9cfd029436e6cf0399 (patch) (unidiff)
treebc90f3b3b552be411c18acf3e571316fe2623e0b
parent217d387def6d97f912352899fd83908b28d75dfc (diff)
downloadopie-a33ef3772b9603ef60de8c9cfd029436e6cf0399.zip
opie-a33ef3772b9603ef60de8c9cfd029436e6cf0399.tar.gz
opie-a33ef3772b9603ef60de8c9cfd029436e6cf0399.tar.bz2
after hard-testing on real device I hade made some beauty to
the fullscreen mode, now it seems working real fine. Zecke: I think, on real frontend side most work is finish, now we should resolve the problems with iconview and co. And find a faster rotate-algorithm ;)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp1
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h1
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp17
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h2
4 files changed, 19 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index 8e7f982..ee4b0a1 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -1,84 +1,85 @@
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 8
9using namespace Opie::Core; 9using namespace Opie::Core;
10 10
11ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl ) 11ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl )
12 : Opie::MM::OImageScrollView(parent,name,fl) 12 : Opie::MM::OImageScrollView(parent,name,fl)
13{ 13{
14 m_viewManager = 0; 14 m_viewManager = 0;
15 m_cfg = cfg; 15 m_cfg = cfg;
16 m_isFullScreen = false; 16 m_isFullScreen = false;
17 initKeys(); 17 initKeys();
18} 18}
19 19
20ImageView::~ImageView() 20ImageView::~ImageView()
21{ 21{
22 if (m_viewManager) { 22 if (m_viewManager) {
23 delete m_viewManager; 23 delete m_viewManager;
24 } 24 }
25} 25}
26 26
27Opie::Core::OKeyConfigManager* ImageView::manager() 27Opie::Core::OKeyConfigManager* ImageView::manager()
28{ 28{
29 if (!m_viewManager) { 29 if (!m_viewManager) {
30 initKeys(); 30 initKeys();
31 } 31 }
32 return m_viewManager; 32 return m_viewManager;
33} 33}
34 34
35void ImageView::initKeys() 35void ImageView::initKeys()
36{ 36{
37 odebug << "init imageview keys" << oendl; 37 odebug << "init imageview keys" << oendl;
38 if (!m_cfg) { 38 if (!m_cfg) {
39 m_cfg = new Opie::Core::OConfig("phunkview"); 39 m_cfg = new Opie::Core::OConfig("phunkview");
40 m_cfg->setGroup("image_view_keys" ); 40 m_cfg->setGroup("image_view_keys" );
41 } 41 }
42 Opie::Core::OKeyPair::List lst; 42 Opie::Core::OKeyPair::List lst;
43 lst.append( Opie::Core::OKeyPair::upArrowKey() ); 43 lst.append( Opie::Core::OKeyPair::upArrowKey() );
44 lst.append( Opie::Core::OKeyPair::downArrowKey() ); 44 lst.append( Opie::Core::OKeyPair::downArrowKey() );
45 lst.append( Opie::Core::OKeyPair::leftArrowKey() ); 45 lst.append( Opie::Core::OKeyPair::leftArrowKey() );
46 lst.append( Opie::Core::OKeyPair::rightArrowKey() ); 46 lst.append( Opie::Core::OKeyPair::rightArrowKey() );
47 lst.append( Opie::Core::OKeyPair(Qt::Key_N,0)); 47 lst.append( Opie::Core::OKeyPair(Qt::Key_N,0));
48 lst.append( Opie::Core::OKeyPair(Qt::Key_P,0)); 48 lst.append( Opie::Core::OKeyPair(Qt::Key_P,0));
49 lst.append( Opie::Core::OKeyPair(Qt::Key_F,0)); 49 lst.append( Opie::Core::OKeyPair(Qt::Key_F,0));
50 50
51 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys", 51 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
52 lst, false,this, "image_view_keys" ); 52 lst, false,this, "image_view_keys" );
53 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo", 53 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
54 Resource::loadPixmap("1to1"), ViewInfo, 54 Resource::loadPixmap("1to1"), ViewInfo,
55 Opie::Core::OKeyPair(Qt::Key_I,0), 55 Opie::Core::OKeyPair(Qt::Key_I,0),
56 this, SLOT(slotShowImageInfo()))); 56 this, SLOT(slotShowImageInfo())));
57 m_viewManager->handleWidget( this ); 57 m_viewManager->handleWidget( this );
58 m_viewManager->load(); 58 m_viewManager->load();
59} 59}
60 60
61void ImageView::keyReleaseEvent(QKeyEvent * e) 61void ImageView::keyReleaseEvent(QKeyEvent * e)
62{ 62{
63 if (!e || e->state()!=0) { 63 if (!e || e->state()!=0) {
64 return; 64 return;
65 } 65 }
66 if (e->key()==Qt::Key_N) slotDispNext(); 66 if (e->key()==Qt::Key_N) slotDispNext();
67 if (e->key()==Qt::Key_P) slotDispPrev(); 67 if (e->key()==Qt::Key_P) slotDispPrev();
68 if (e->key()==Qt::Key_F) emit toggleFullScreen(); 68 if (e->key()==Qt::Key_F) emit toggleFullScreen();
69 if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe();
69} 70}
70 71
71void ImageView::slotDispNext() 72void ImageView::slotDispNext()
72{ 73{
73 emit dispNext(); 74 emit dispNext();
74} 75}
75 76
76void ImageView::slotDispPrev() 77void ImageView::slotDispPrev()
77{ 78{
78 emit dispPrev(); 79 emit dispPrev();
79} 80}
80 81
81void ImageView::slotShowImageInfo() 82void ImageView::slotShowImageInfo()
82{ 83{
83 emit dispImageInfo(m_lastName); 84 emit dispImageInfo(m_lastName);
84} 85}
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index 32f7e11..75f798c 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -1,47 +1,48 @@
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
6namespace Opie { 6namespace Opie {
7 namespace Core { 7 namespace Core {
8 class OConfig; 8 class OConfig;
9 class OKeyConfigManager; 9 class OKeyConfigManager;
10 } 10 }
11} 11}
12 12
13class ImageView:public Opie::MM::OImageScrollView 13class ImageView:public Opie::MM::OImageScrollView
14{ 14{
15 Q_OBJECT 15 Q_OBJECT
16 16
17 enum ActionIds { 17 enum ActionIds {
18 ViewInfo, 18 ViewInfo,
19 FullScreen 19 FullScreen
20 }; 20 };
21 21
22public: 22public:
23 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 ); 23 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
24 virtual ~ImageView(); 24 virtual ~ImageView();
25 Opie::Core::OKeyConfigManager* manager(); 25 Opie::Core::OKeyConfigManager* manager();
26 void setFullScreen(bool how){m_isFullScreen = how;} 26 void setFullScreen(bool how){m_isFullScreen = how;}
27 bool fullScreen(){return m_isFullScreen;} 27 bool fullScreen(){return m_isFullScreen;}
28 28
29signals: 29signals:
30 void dispImageInfo(const QString&); 30 void dispImageInfo(const QString&);
31 void dispNext(); 31 void dispNext();
32 void dispPrev(); 32 void dispPrev();
33 void toggleFullScreen(); 33 void toggleFullScreen();
34 void hideMe();
34 35
35protected: 36protected:
36 Opie::Core::OConfig * m_cfg; 37 Opie::Core::OConfig * m_cfg;
37 Opie::Core::OKeyConfigManager*m_viewManager; 38 Opie::Core::OKeyConfigManager*m_viewManager;
38 void initKeys(); 39 void initKeys();
39 bool m_isFullScreen:1; 40 bool m_isFullScreen:1;
40 41
41protected slots: 42protected slots:
42 virtual void slotShowImageInfo(); 43 virtual void slotShowImageInfo();
43 virtual void slotDispNext(); 44 virtual void slotDispNext();
44 virtual void slotDispPrev(); 45 virtual void slotDispPrev();
45 virtual void keyReleaseEvent(QKeyEvent * e); 46 virtual void keyReleaseEvent(QKeyEvent * e);
46}; 47};
47#endif 48#endif
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 9b929a1..ef6e6df 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -1,390 +1,405 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 * No WArranty... 3 * No WArranty...
4 */ 4 */
5#include "mainwindow.h" 5#include "mainwindow.h"
6#include "imageview.h" 6#include "imageview.h"
7 7
8#include "iconview.h" 8#include "iconview.h"
9#include "filesystem.h" 9#include "filesystem.h"
10#include "imageinfoui.h" 10#include "imageinfoui.h"
11#include "viewmodebutton.h" 11#include "viewmodebutton.h"
12 12
13#include <iface/ifaceinfo.h> 13#include <iface/ifaceinfo.h>
14#include <iface/dirview.h> 14#include <iface/dirview.h>
15 15
16#include <opie2/odebug.h> 16#include <opie2/odebug.h>
17#include <opie2/owidgetstack.h> 17#include <opie2/owidgetstack.h>
18#include <opie2/oapplicationfactory.h> 18#include <opie2/oapplicationfactory.h>
19#include <opie2/otabwidget.h> 19#include <opie2/otabwidget.h>
20#include <opie2/okeyconfigwidget.h> 20#include <opie2/okeyconfigwidget.h>
21 21
22#include <qpe/resource.h> 22#include <qpe/resource.h>
23#include <qpe/config.h> 23#include <qpe/config.h>
24#include <qpe/ir.h> 24#include <qpe/ir.h>
25#include <qpe/applnk.h> 25#include <qpe/applnk.h>
26 26
27#include <qtoolbar.h> 27#include <qtoolbar.h>
28#include <qtoolbutton.h> 28#include <qtoolbutton.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qdialog.h> 30#include <qdialog.h>
31#include <qmap.h> 31#include <qmap.h>
32#include <qtimer.h> 32#include <qtimer.h>
33 33
34 34
35 35
36 36
37OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" ) 37OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" )
38 38
39PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) 39PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style)
40 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 ) 40 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 )
41{ 41{
42 setCaption( QObject::tr("Opie Eye Caramba" ) ); 42 setCaption( QObject::tr("Opie Eye Caramba" ) );
43 m_cfg = new Opie::Core::OConfig("phunkview"); 43 m_cfg = new Opie::Core::OConfig("phunkview");
44 m_cfg->setGroup("Zecke_view" ); 44 m_cfg->setGroup("Zecke_view" );
45// qDebug( "Process-wide OApplication object @ %0x", oApp ); 45// qDebug( "Process-wide OApplication object @ %0x", oApp );
46 /* 46 /*
47 * Initialize ToolBar and IconView 47 * Initialize ToolBar and IconView
48 * And Connect Them 48 * And Connect Them
49 */ 49 */
50 QToolBar *bar = new QToolBar( this ); 50 QToolBar *bar = new QToolBar( this );
51 bar->setHorizontalStretchable( true ); 51 bar->setHorizontalStretchable( true );
52 setToolBarsMovable( false ); 52 setToolBarsMovable( false );
53 53
54 m_stack = new Opie::Ui::OWidgetStack( this ); 54 m_stack = new Opie::Ui::OWidgetStack( this );
55 setCentralWidget( m_stack ); 55 setCentralWidget( m_stack );
56 56
57 m_view = new PIconView( m_stack, m_cfg ); 57 m_view = new PIconView( m_stack, m_cfg );
58 m_stack->addWidget( m_view, IconView ); 58 m_stack->addWidget( m_view, IconView );
59 m_stack->raiseWidget( IconView ); 59 m_stack->raiseWidget( IconView );
60 connect(m_view, SIGNAL(sig_display(const QString&)), 60 connect(m_view, SIGNAL(sig_display(const QString&)),
61 this, SLOT(slotDisplay(const QString&))); 61 this, SLOT(slotDisplay(const QString&)));
62 connect(m_view, SIGNAL(sig_showInfo(const QString&)), 62 connect(m_view, SIGNAL(sig_showInfo(const QString&)),
63 this, SLOT(slotShowInfo(const QString&)) ); 63 this, SLOT(slotShowInfo(const QString&)) );
64 64
65 m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce); 65 m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce);
66 66
67 upButton = new QToolButton( bar ); 67 upButton = new QToolButton( bar );
68 upButton->setIconSet( Resource::loadIconSet( "up" ) ); 68 upButton->setIconSet( Resource::loadIconSet( "up" ) );
69 connect( upButton, SIGNAL(clicked()), 69 connect( upButton, SIGNAL(clicked()),
70 m_view, SLOT(slotDirUp()) ); 70 m_view, SLOT(slotDirUp()) );
71 71
72 fsButton = new PFileSystem( bar ); 72 fsButton = new PFileSystem( bar );
73 connect( fsButton, SIGNAL( changeDir( const QString& ) ), 73 connect( fsButton, SIGNAL( changeDir( const QString& ) ),
74 m_view, SLOT(slotChangeDir( const QString& ) ) ); 74 m_view, SLOT(slotChangeDir( const QString& ) ) );
75 75
76 QToolButton*btn = new QToolButton( bar ); 76 QToolButton*btn = new QToolButton( bar );
77 btn->setIconSet( Resource::loadIconSet( "edit" ) ); 77 btn->setIconSet( Resource::loadIconSet( "edit" ) );
78 connect( btn, SIGNAL(clicked()), 78 connect( btn, SIGNAL(clicked()),
79 m_view, SLOT(slotRename()) ); 79 m_view, SLOT(slotRename()) );
80 80
81 if ( Ir::supported() ) { 81 if ( Ir::supported() ) {
82 btn = new QToolButton( bar ); 82 btn = new QToolButton( bar );
83 btn->setIconSet( Resource::loadIconSet( "beam" ) ); 83 btn->setIconSet( Resource::loadIconSet( "beam" ) );
84 connect( btn, SIGNAL(clicked()), 84 connect( btn, SIGNAL(clicked()),
85 m_view, SLOT(slotBeam()) ); 85 m_view, SLOT(slotBeam()) );
86 } 86 }
87 87
88 btn = new QToolButton( bar ); 88 btn = new QToolButton( bar );
89 btn->setIconSet( Resource::loadIconSet( "trash" ) ); 89 btn->setIconSet( Resource::loadIconSet( "trash" ) );
90 connect( btn, SIGNAL(clicked() ), 90 connect( btn, SIGNAL(clicked() ),
91 m_view, SLOT(slotTrash() ) ); 91 m_view, SLOT(slotTrash() ) );
92 92
93 93
94 viewModeButton = new ViewModeButton( bar ); 94 viewModeButton = new ViewModeButton( bar );
95 connect( viewModeButton, SIGNAL(changeMode(int)), 95 connect( viewModeButton, SIGNAL(changeMode(int)),
96 m_view, SLOT(slotChangeMode(int))); 96 m_view, SLOT(slotChangeMode(int)));
97 97
98 btn = new QToolButton( bar ); 98 btn = new QToolButton( bar );
99 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) ); 99 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) );
100 connect( btn, SIGNAL(clicked() ), 100 connect( btn, SIGNAL(clicked() ),
101 this, SLOT(slotConfig() ) ); 101 this, SLOT(slotConfig() ) );
102 102
103 103
104 104
105 prevButton = new QToolButton(bar); 105 prevButton = new QToolButton(bar);
106 prevButton->setIconSet( Resource::loadIconSet( "back" ) ); 106 prevButton->setIconSet( Resource::loadIconSet( "back" ) );
107 connect(prevButton,SIGNAL(clicked()),m_view,SLOT(slotShowPrev())); 107 connect(prevButton,SIGNAL(clicked()),m_view,SLOT(slotShowPrev()));
108 108
109 nextButton = new QToolButton(bar); 109 nextButton = new QToolButton(bar);
110 nextButton->setIconSet( Resource::loadIconSet( "forward" ) ); 110 nextButton->setIconSet( Resource::loadIconSet( "forward" ) );
111 connect(nextButton,SIGNAL(clicked()),m_view,SLOT(slotShowNext())); 111 connect(nextButton,SIGNAL(clicked()),m_view,SLOT(slotShowNext()));
112 112
113 rotateButton = new QToolButton(bar); 113 rotateButton = new QToolButton(bar);
114 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) ); 114 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) );
115 rotateButton->setToggleButton(true); 115 rotateButton->setToggleButton(true);
116 116
117 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 117 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
118 rotateButton->setOn(true); 118 rotateButton->setOn(true);
119 autoRotate = true; 119 autoRotate = true;
120 prevButton->hide(); 120 prevButton->hide();
121 nextButton->hide(); 121 nextButton->hide();
122 } else { 122 } else {
123 rotateButton->setOn(false); 123 rotateButton->setOn(false);
124 autoRotate = false; 124 autoRotate = false;
125 } 125 }
126 126
127 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool))); 127 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool)));
128 128
129 btn = new QToolButton(bar); 129 btn = new QToolButton(bar);
130 btn->setIconSet( Resource::loadIconSet( "1to1" ) ); 130 btn->setIconSet( Resource::loadIconSet( "1to1" ) );
131 btn->setToggleButton(true); 131 btn->setToggleButton(true);
132 btn->setOn(false); 132 btn->setOn(false);
133 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool))); 133 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool)));
134 autoScale = true; 134 autoScale = true;
135 135
136 btn = new QToolButton(bar); 136 btn = new QToolButton(bar);
137 btn->setIconSet( Resource::loadIconSet( "mag" ) ); 137 btn->setIconSet( Resource::loadIconSet( "mag" ) );
138 btn->setToggleButton(true); 138 btn->setToggleButton(true);
139 btn->setOn(true); 139 btn->setOn(true);
140 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotZoomerToggled(bool))); 140 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotZoomerToggled(bool)));
141 zoomerOn = true; 141 zoomerOn = true;
142} 142}
143 143
144PMainWindow::~PMainWindow() { 144PMainWindow::~PMainWindow() {
145 odebug << "Shutting down" << oendl; 145 odebug << "Shutting down" << oendl;
146} 146}
147 147
148void PMainWindow::slotZoomerToggled(bool how) 148void PMainWindow::slotZoomerToggled(bool how)
149{ 149{
150 zoomerOn = how; 150 zoomerOn = how;
151 if (m_disp) { 151 if (m_disp) {
152 m_disp->setShowZoomer(zoomerOn); 152 m_disp->setShowZoomer(zoomerOn);
153 } 153 }
154} 154}
155 155
156void PMainWindow::slotRotateToggled(bool how) 156void PMainWindow::slotRotateToggled(bool how)
157{ 157{
158 autoRotate = how; 158 autoRotate = how;
159 if (m_disp) { 159 if (m_disp) {
160 m_disp->setAutoRotate(how); 160 m_disp->setAutoRotate(how);
161 } 161 }
162} 162}
163 163
164void PMainWindow::slotScaleToggled(bool how) 164void PMainWindow::slotScaleToggled(bool how)
165{ 165{
166 autoScale = !how; 166 autoScale = !how;
167 if (!how) { 167 if (!how) {
168 autoRotate = how; 168 autoRotate = how;
169 } 169 }
170 if (m_disp) { 170 if (m_disp) {
171 m_disp->setAutoScaleRotate(autoScale,autoRotate); 171 m_disp->setAutoScaleRotate(autoScale,autoRotate);
172 } 172 }
173 if (!autoScale) { 173 if (!autoScale) {
174 rotateButton->setOn(false); 174 rotateButton->setOn(false);
175 } 175 }
176 rotateButton->setEnabled(!how); 176 rotateButton->setEnabled(!how);
177} 177}
178 178
179void PMainWindow::slotConfig() { 179void PMainWindow::slotConfig() {
180 /* 180 /*
181 * have a tab with the possible views 181 * have a tab with the possible views
182 * a tab for globals image cache size.. scaled loading 182 * a tab for globals image cache size.. scaled loading
183 * and one tab for the KeyConfigs 183 * and one tab for the KeyConfigs
184 */ 184 */
185 QDialog dlg(this, 0, true); 185 QDialog dlg(this, 0, true);
186 dlg.setCaption( tr("Phunk View - Config" ) ); 186 dlg.setCaption( tr("Phunk View - Config" ) );
187 187
188 QHBoxLayout *lay = new QHBoxLayout(&dlg); 188 QHBoxLayout *lay = new QHBoxLayout(&dlg);
189 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg ); 189 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg );
190 lay->addWidget( wid ); 190 lay->addWidget( wid );
191 ViewMap *vM = viewMap(); 191 ViewMap *vM = viewMap();
192 ViewMap::Iterator _it = vM->begin(); 192 ViewMap::Iterator _it = vM->begin();
193 QMap<PDirView*, QWidget*> lst; 193 QMap<PDirView*, QWidget*> lst;
194 194
195 for( ; _it != vM->end(); ++_it ) { 195 for( ; _it != vM->end(); ++_it ) {
196 PDirView *view = (_it.data())(*m_cfg); 196 PDirView *view = (_it.data())(*m_cfg);
197 PInterfaceInfo *inf = view->interfaceInfo(); 197 PInterfaceInfo *inf = view->interfaceInfo();
198 QWidget *_wid = inf->configWidget( *m_cfg ); 198 QWidget *_wid = inf->configWidget( *m_cfg );
199 _wid->reparent(wid, QPoint() ); 199 _wid->reparent(wid, QPoint() );
200 lst.insert( view, _wid ); 200 lst.insert( view, _wid );
201 wid->addTab( _wid, "fileopen", inf->name() ); 201 wid->addTab( _wid, "fileopen", inf->name() );
202 } 202 }
203 203
204/* 204/*
205 * Add the KeyConfigWidget 205 * Add the KeyConfigWidget
206 */ 206 */
207 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" ); 207 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" );
208 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue ); 208 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
209 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() ); 209 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() );
210 210
211 if ( !m_info ) { 211 if ( !m_info ) {
212 initInfo(); 212 initInfo();
213 } 213 }
214 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() ); 214 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() );
215 215
216 if ( !m_disp ) { 216 if ( !m_disp ) {
217 initDisp(); 217 initDisp();
218 } 218 }
219 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() ); 219 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() );
220 220
221 keyWid->load(); 221 keyWid->load();
222 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") ); 222 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") );
223 223
224 224
225 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); 225 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted );
226 226
227/* 227/*
228 * clean up 228 * clean up
229 *apply changes 229 *apply changes
230 */ 230 */
231 231
232 QMap<PDirView*, QWidget*>::Iterator it; 232 QMap<PDirView*, QWidget*>::Iterator it;
233 for ( it = lst.begin(); it != lst.end(); ++it ) { 233 for ( it = lst.begin(); it != lst.end(); ++it ) {
234 if ( act ) 234 if ( act )
235 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg); 235 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg);
236 delete it.key(); 236 delete it.key();
237 } 237 }
238 238
239 239
240 if ( act ) { 240 if ( act ) {
241 m_view->resetView(); 241 m_view->resetView();
242 keyWid->save(); 242 keyWid->save();
243 m_disp->manager()->save(); 243 m_disp->manager()->save();
244 m_info->manager()->save(); 244 m_info->manager()->save();
245 m_view->manager()->save(); 245 m_view->manager()->save();
246 } 246 }
247 delete keyWid; 247 delete keyWid;
248} 248}
249 249
250/* 250/*
251 * create a new image info component 251 * create a new image info component
252 * and detach the current one 252 * and detach the current one
253 * we will make the other delete on exit 253 * we will make the other delete on exit
254 */ 254 */
255template<class T> 255template<class T>
256void PMainWindow::initT( const char* name, T** ptr, int id) { 256void PMainWindow::initT( const char* name, T** ptr, int id) {
257 if ( *ptr ) { 257 if ( *ptr ) {
258 (*ptr)->disconnect(this, SLOT(slotReturn())); 258 (*ptr)->disconnect(this, SLOT(slotReturn()));
259 (*ptr)->setDestructiveClose(); 259 (*ptr)->setDestructiveClose();
260 m_stack->removeWidget( *ptr ); 260 m_stack->removeWidget( *ptr );
261 } 261 }
262 *ptr = new T(m_cfg, m_stack, name ); 262 *ptr = new T(m_cfg, m_stack, name );
263 m_stack->addWidget( *ptr, id ); 263 m_stack->addWidget( *ptr, id );
264 264
265 connect(*ptr, SIGNAL(sig_return()), 265 connect(*ptr, SIGNAL(sig_return()),
266 this,SLOT(slotReturn())); 266 this,SLOT(slotReturn()));
267 267
268} 268}
269void PMainWindow::initInfo() { 269void PMainWindow::initInfo() {
270 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 270 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
271 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); 271 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
272} 272}
273void PMainWindow::initDisp() { 273void PMainWindow::initDisp() {
274 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); 274 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
275 if (m_disp) { 275 if (m_disp) {
276 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 276 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
277 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 277 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
278 } 278 }
279 m_disp->setAutoScale(autoScale); 279 m_disp->setAutoScale(autoScale);
280 m_disp->setAutoRotate(autoRotate); 280 m_disp->setAutoRotate(autoRotate);
281 m_disp->setShowZoomer(zoomerOn); 281 m_disp->setShowZoomer(zoomerOn);
282 m_disp->setBackgroundColor(white); 282 m_disp->setBackgroundColor(white);
283 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); 283 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&)));
284 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); 284 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext()));
285 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); 285 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev()));
286 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); 286 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen()));
287 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView()));
287 } 288 }
288} 289}
289 290
290void PMainWindow::slotToggleFullScreen() 291void PMainWindow::slotToggleFullScreen()
291{ 292{
292 odebug << "Toggle full " << oendl; 293 odebug << "Toggle full " << oendl;
293 if (!m_disp) return; 294 if (!m_disp) return;
294 bool current = !m_disp->fullScreen(); 295 bool current = !m_disp->fullScreen();
295 m_disp->setFullScreen(current); 296 m_disp->setFullScreen(current);
296 odebug << "Current = " << current << oendl; 297 odebug << "Current = " << current << oendl;
297 if (current) { 298 if (current) {
298 odebug << "full" << oendl; 299 odebug << "full" << oendl;
299 m_disp->setBackgroundColor(black); 300 m_disp->setBackgroundColor(black);
300 m_disp->reparent(0,QPoint(0,0)); 301 m_disp->reparent(0,QPoint(0,0));
302 m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
303 m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
301 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); 304 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
302 m_disp->showFullScreen(); 305 m_disp->showFullScreen();
303 } else { 306 } else {
304 odebug << "window" << oendl; 307 odebug << "window" << oendl;
305 m_disp->setBackgroundColor(white); 308 m_disp->setBackgroundColor(white);
306 m_stack->addWidget(m_disp,ImageDisplay); 309 m_stack->addWidget(m_disp,ImageDisplay);
310 m_disp->setVScrollBarMode(QScrollView::Auto);
311 m_disp->setHScrollBarMode(QScrollView::Auto);
307 m_stack->raiseWidget(m_disp); 312 m_stack->raiseWidget(m_disp);
308 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 313 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
309 m_disp->resize(m_disp->minimumSize()); 314 m_disp->resize(m_disp->minimumSize());
310 } 315 }
311 } 316 }
312} 317}
313 318
314/** 319/**
315 * With big Screen the plan could be to 'detach' the image 320 * With big Screen the plan could be to 'detach' the image
316 * window if visible and to create a ne wone 321 * window if visible and to create a ne wone
317 * init* already supports it but I make no use of it for 322 * init* already supports it but I make no use of it for
318 * now. We set filename and raise 323 * now. We set filename and raise
319 * 324 *
320 * ### FIXME and talk to alwin 325 * ### FIXME and talk to alwin
321 */ 326 */
322void PMainWindow::slotShowInfo( const QString& inf ) { 327void PMainWindow::slotShowInfo( const QString& inf ) {
323 if ( !m_info ) { 328 if ( !m_info ) {
324 initInfo(); 329 initInfo();
325 } 330 }
326 m_info->setPath( inf ); 331 m_info->setPath( inf );
327 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 332 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
328 prevButton->hide(); 333 prevButton->hide();
329 nextButton->hide(); 334 nextButton->hide();
330 upButton->hide(); 335 upButton->hide();
331 fsButton->hide(); 336 fsButton->hide();
332 viewModeButton->hide(); 337 viewModeButton->hide();
333 } 338 }
339 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
340 m_disp->hide();
341 }
334 m_stack->raiseWidget( ImageInfo ); 342 m_stack->raiseWidget( ImageInfo );
335} 343}
336 344
337void PMainWindow::slotDisplay( const QString& inf ) { 345void PMainWindow::slotDisplay( const QString& inf ) {
338 if ( !m_disp ) { 346 if ( !m_disp ) {
339 initDisp(); 347 initDisp();
340 } 348 }
341 m_disp->setImage( inf ); 349 m_disp->setImage( inf );
342 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 350 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
343 prevButton->show(); 351 prevButton->show();
344 nextButton->show(); 352 nextButton->show();
345 upButton->hide(); 353 upButton->hide();
346 fsButton->hide(); 354 fsButton->hide();
347 viewModeButton->hide(); 355 viewModeButton->hide();
348 } 356 }
349 m_stack->raiseWidget( ImageDisplay ); 357 if (m_disp->fullScreen()) {
358 m_disp->show();
359 } else {
360 m_stack->raiseWidget( ImageDisplay );
361 }
350} 362}
351 363
352void PMainWindow::slotReturn() { 364void PMainWindow::slotReturn() {
353 raiseIconView(); 365 raiseIconView();
354} 366}
355 367
356 368
357void PMainWindow::closeEvent( QCloseEvent* ev ) { 369void PMainWindow::closeEvent( QCloseEvent* ev ) {
358 /* 370 /*
359 * return from view 371 * return from view
360 * or properly quit 372 * or properly quit
361 */ 373 */
362 if ( m_stack->visibleWidget() == m_info || 374 if ( m_stack->visibleWidget() == m_info ||
363 m_stack->visibleWidget() == m_disp ) { 375 m_stack->visibleWidget() == m_disp ) {
364 raiseIconView(); 376 raiseIconView();
365 ev->ignore(); 377 ev->ignore();
366 return; 378 return;
367 } 379 }
368 ev->accept(); 380 ev->accept();
369 QTimer::singleShot(0, qApp, SLOT(closeAllWindows())); 381 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
370} 382}
371 383
372void PMainWindow::raiseIconView() { 384void PMainWindow::raiseIconView() {
373 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 385 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
374 prevButton->hide(); 386 prevButton->hide();
375 nextButton->hide(); 387 nextButton->hide();
376 upButton->show(); 388 upButton->show();
377 fsButton->show(); 389 fsButton->show();
378 viewModeButton->show(); 390 viewModeButton->show();
379 } 391 }
392 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
393 m_disp->hide();
394 }
380 m_stack->raiseWidget( IconView ); 395 m_stack->raiseWidget( IconView );
381} 396}
382 397
383void PMainWindow::setDocument( const QString& showImg ) { 398void PMainWindow::setDocument( const QString& showImg ) {
384 QString file = showImg; 399 QString file = showImg;
385 DocLnk lnk(showImg); 400 DocLnk lnk(showImg);
386 if (lnk.isValid() ) 401 if (lnk.isValid() )
387 file = lnk.file(); 402 file = lnk.file();
388 403
389 slotDisplay( file ); 404 slotDisplay( file );
390} 405}
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 4cfc39c..d238763 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -1,74 +1,74 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 * No WArranty... 3 * No WArranty...
4 */ 4 */
5 5
6#ifndef PHUNK_MAIN_WINDOW_H 6#ifndef PHUNK_MAIN_WINDOW_H
7#define PHUNK_MAIN_WINDOW_H 7#define PHUNK_MAIN_WINDOW_H
8 8
9#include <opie2/oconfig.h> 9#include <opie2/oconfig.h>
10 10
11#include <qmainwindow.h> 11#include <qmainwindow.h>
12 12
13 13
14 14
15namespace Opie { 15namespace Opie {
16namespace Ui{ 16namespace Ui{
17 class OWidgetStack; 17 class OWidgetStack;
18} 18}
19namespace Core{ 19namespace Core{
20 class OKeyConfigManager; 20 class OKeyConfigManager;
21} 21}
22} 22}
23 23
24class ImageView; 24class ImageView;
25class PIconView; 25class PIconView;
26class imageinfo; 26class imageinfo;
27 27
28class PMainWindow : public QMainWindow { 28class PMainWindow : public QMainWindow {
29 Q_OBJECT 29 Q_OBJECT
30 enum Views { IconView, ImageInfo, ImageDisplay }; 30 enum Views { IconView, ImageInfo, ImageDisplay };
31public: 31public:
32 static QString appName() { return QString::fromLatin1("opie-eye" ); } 32 static QString appName() { return QString::fromLatin1("opie-eye" ); }
33 PMainWindow(QWidget*, const char*, WFlags ); 33 PMainWindow(QWidget*, const char*, WFlags );
34 ~PMainWindow(); 34 ~PMainWindow();
35 35
36signals: 36signals:
37 void configChanged(); 37 void configChanged();
38 38
39public slots: 39public slots:
40 void slotShowInfo( const QString& inf ); 40 void slotShowInfo( const QString& inf );
41 void slotDisplay( const QString& inf ); 41 void slotDisplay( const QString& inf );
42 void slotReturn(); 42 void slotReturn();
43 void slotRotateToggled(bool); 43 void slotRotateToggled(bool);
44 void slotScaleToggled(bool); 44 void slotScaleToggled(bool);
45 void slotZoomerToggled(bool); 45 void slotZoomerToggled(bool);
46 void setDocument( const QString& ); 46 void setDocument( const QString& );
47 virtual void slotToggleFullScreen(); 47 virtual void slotToggleFullScreen();
48 48
49protected: 49protected slots:
50 void raiseIconView(); 50 void raiseIconView();
51 void closeEvent( QCloseEvent* ); 51 void closeEvent( QCloseEvent* );
52 52
53private: 53private:
54 template<class T> void initT( const char* name, T**, int ); 54 template<class T> void initT( const char* name, T**, int );
55 void initInfo(); 55 void initInfo();
56 void initDisp(); 56 void initDisp();
57 57
58private: 58private:
59 Opie::Core::OConfig *m_cfg; 59 Opie::Core::OConfig *m_cfg;
60 Opie::Ui::OWidgetStack *m_stack; 60 Opie::Ui::OWidgetStack *m_stack;
61 PIconView* m_view; 61 PIconView* m_view;
62 imageinfo *m_info; 62 imageinfo *m_info;
63 ImageView *m_disp; 63 ImageView *m_disp;
64 bool autoRotate; 64 bool autoRotate;
65 bool autoScale; 65 bool autoScale;
66 bool zoomerOn; 66 bool zoomerOn;
67 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton; 67 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
68 QToolButton*nextButton,*prevButton; 68 QToolButton*nextButton,*prevButton;
69 69
70private slots: 70private slots:
71 void slotConfig(); 71 void slotConfig();
72}; 72};
73 73
74#endif 74#endif