summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp34
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h8
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp18
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h3
4 files changed, 38 insertions, 25 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index ee4b0a1..88a8bc6 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -1,85 +1,87 @@
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_Escape,0));
48 lst.append( Opie::Core::OKeyPair(Qt::Key_P,0));
49 lst.append( Opie::Core::OKeyPair(Qt::Key_F,0));
50 48
51 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys", 49 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
52 lst, false,this, "image_view_keys" ); 50 lst, false,this, "image_view_keys" );
53 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo", 51 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
54 Resource::loadPixmap("1to1"), ViewInfo, 52 Resource::loadPixmap("1to1"), ViewInfo,
55 Opie::Core::OKeyPair(Qt::Key_I,0), 53 Opie::Core::OKeyPair(Qt::Key_I,0),
56 this, SLOT(slotShowImageInfo()))); 54 this, SLOT(slotShowImageInfo())));
55
56 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to next image"), "imageshownext",
57 Resource::loadPixmap("forward"), ShowNext,
58 Opie::Core::OKeyPair(Qt::Key_N,0),
59 this, SIGNAL(dispNext())));
60 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to previous image"), "imageshowprev",
61 Resource::loadPixmap("back"), ShowPrevious,
62 Opie::Core::OKeyPair(Qt::Key_P,0),
63 this, SIGNAL(dispPrev())));
64 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle fullscreen"), "imagefullscreen",
65 Resource::loadPixmap("fullscreen"), FullScreen,
66 Opie::Core::OKeyPair(Qt::Key_F,0),
67 this, SIGNAL(toggleFullScreen())));
68 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle thumbnail"), "imagezoomer",
69 Resource::loadPixmap("mag"), Zoomer,
70 Opie::Core::OKeyPair(Qt::Key_T,0),
71 this, SIGNAL(toggleZoomer())));
57 m_viewManager->handleWidget( this ); 72 m_viewManager->handleWidget( this );
58 m_viewManager->load(); 73 m_viewManager->load();
59} 74}
60 75
61void ImageView::keyReleaseEvent(QKeyEvent * e) 76void ImageView::keyReleaseEvent(QKeyEvent * e)
62{ 77{
63 if (!e || e->state()!=0) { 78 if (!e || e->state()!=0) {
64 return; 79 return;
65 } 80 }
66 if (e->key()==Qt::Key_N) slotDispNext();
67 if (e->key()==Qt::Key_P) slotDispPrev();
68 if (e->key()==Qt::Key_F) emit toggleFullScreen();
69 if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe(); 81 if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe();
70} 82}
71 83
72void ImageView::slotDispNext()
73{
74 emit dispNext();
75}
76
77void ImageView::slotDispPrev()
78{
79 emit dispPrev();
80}
81
82void ImageView::slotShowImageInfo() 84void ImageView::slotShowImageInfo()
83{ 85{
84 emit dispImageInfo(m_lastName); 86 emit dispImageInfo(m_lastName);
85} 87}
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index 75f798c..6bf930f 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -1,48 +1,50 @@
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 ShowNext,
21 ShowPrevious,
22 Zoomer,
20 }; 23 };
21 24
22public: 25public:
23 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 ); 26 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
24 virtual ~ImageView(); 27 virtual ~ImageView();
25 Opie::Core::OKeyConfigManager* manager(); 28 Opie::Core::OKeyConfigManager* manager();
26 void setFullScreen(bool how){m_isFullScreen = how;} 29 void setFullScreen(bool how){m_isFullScreen = how;}
27 bool fullScreen(){return m_isFullScreen;} 30 bool fullScreen(){return m_isFullScreen;}
28 31
29signals: 32signals:
30 void dispImageInfo(const QString&); 33 void dispImageInfo(const QString&);
31 void dispNext(); 34 void dispNext();
32 void dispPrev(); 35 void dispPrev();
33 void toggleFullScreen(); 36 void toggleFullScreen();
34 void hideMe(); 37 void hideMe();
38 void toggleZoomer();
35 39
36protected: 40protected:
37 Opie::Core::OConfig * m_cfg; 41 Opie::Core::OConfig * m_cfg;
38 Opie::Core::OKeyConfigManager*m_viewManager; 42 Opie::Core::OKeyConfigManager*m_viewManager;
39 void initKeys(); 43 void initKeys();
40 bool m_isFullScreen:1; 44 bool m_isFullScreen:1;
41 45
42protected slots: 46protected slots:
43 virtual void slotShowImageInfo(); 47 virtual void slotShowImageInfo();
44 virtual void slotDispNext();
45 virtual void slotDispPrev();
46 virtual void keyReleaseEvent(QKeyEvent * e); 48 virtual void keyReleaseEvent(QKeyEvent * e);
47}; 49};
48#endif 50#endif
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index a90231b..0484f73 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -1,407 +1,415 @@
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 int mode = m_cfg->readNumEntry("ListViewMode", 1); 94 int mode = m_cfg->readNumEntry("ListViewMode", 1);
95 if (mode < 1 || mode>3) mode = 1; 95 if (mode < 1 || mode>3) mode = 1;
96 viewModeButton = new ViewModeButton( bar,mode ); 96 viewModeButton = new ViewModeButton( bar,mode );
97 connect( viewModeButton, SIGNAL(changeMode(int)), 97 connect( viewModeButton, SIGNAL(changeMode(int)),
98 m_view, SLOT(slotChangeMode(int))); 98 m_view, SLOT(slotChangeMode(int)));
99 99
100 btn = new QToolButton( bar ); 100 btn = new QToolButton( bar );
101 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) ); 101 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) );
102 connect( btn, SIGNAL(clicked() ), 102 connect( btn, SIGNAL(clicked() ),
103 this, SLOT(slotConfig() ) ); 103 this, SLOT(slotConfig() ) );
104 104
105 105
106 106
107 prevButton = new QToolButton(bar); 107 prevButton = new QToolButton(bar);
108 prevButton->setIconSet( Resource::loadIconSet( "back" ) ); 108 prevButton->setIconSet( Resource::loadIconSet( "back" ) );
109 connect(prevButton,SIGNAL(clicked()),m_view,SLOT(slotShowPrev())); 109 connect(prevButton,SIGNAL(clicked()),m_view,SLOT(slotShowPrev()));
110 110
111 nextButton = new QToolButton(bar); 111 nextButton = new QToolButton(bar);
112 nextButton->setIconSet( Resource::loadIconSet( "forward" ) ); 112 nextButton->setIconSet( Resource::loadIconSet( "forward" ) );
113 connect(nextButton,SIGNAL(clicked()),m_view,SLOT(slotShowNext())); 113 connect(nextButton,SIGNAL(clicked()),m_view,SLOT(slotShowNext()));
114 114
115 rotateButton = new QToolButton(bar); 115 rotateButton = new QToolButton(bar);
116 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) ); 116 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) );
117 rotateButton->setToggleButton(true); 117 rotateButton->setToggleButton(true);
118 118
119 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 119 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
120 rotateButton->setOn(true); 120 rotateButton->setOn(true);
121 autoRotate = true; 121 autoRotate = true;
122 prevButton->hide(); 122 prevButton->hide();
123 nextButton->hide(); 123 nextButton->hide();
124 } else { 124 } else {
125 rotateButton->setOn(false); 125 rotateButton->setOn(false);
126 autoRotate = false; 126 autoRotate = false;
127 } 127 }
128 128
129 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool))); 129 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool)));
130 130
131 btn = new QToolButton(bar); 131 btn = new QToolButton(bar);
132 btn->setIconSet( Resource::loadIconSet( "1to1" ) ); 132 btn->setIconSet( Resource::loadIconSet( "1to1" ) );
133 btn->setToggleButton(true); 133 btn->setToggleButton(true);
134 btn->setOn(false); 134 btn->setOn(false);
135 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool))); 135 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool)));
136 autoScale = true; 136 autoScale = true;
137 137
138 btn = new QToolButton(bar); 138 zoomButton = new QToolButton(bar);
139 btn->setIconSet( Resource::loadIconSet( "mag" ) ); 139 zoomButton->setIconSet( Resource::loadIconSet( "mag" ) );
140 btn->setToggleButton(true); 140 zoomButton->setToggleButton(true);
141 btn->setOn(true); 141 zoomButton->setOn(true);
142 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotZoomerToggled(bool))); 142 connect(zoomButton,SIGNAL(toggled(bool)),this,SLOT(slotZoomerToggled(bool)));
143 zoomerOn = true; 143 zoomerOn = true;
144} 144}
145 145
146PMainWindow::~PMainWindow() { 146PMainWindow::~PMainWindow() {
147 odebug << "Shutting down" << oendl; 147 odebug << "Shutting down" << oendl;
148} 148}
149 149
150void PMainWindow::slotToggleZoomer()
151{
152 if (!m_disp) return;
153 bool cur = zoomButton->isOn();
154 zoomButton->setOn(!cur);
155}
156
150void PMainWindow::slotZoomerToggled(bool how) 157void PMainWindow::slotZoomerToggled(bool how)
151{ 158{
152 zoomerOn = how; 159 zoomerOn = how;
153 if (m_disp) { 160 if (m_disp) {
154 m_disp->setShowZoomer(zoomerOn); 161 m_disp->setShowZoomer(zoomerOn);
155 } 162 }
156} 163}
157 164
158void PMainWindow::slotRotateToggled(bool how) 165void PMainWindow::slotRotateToggled(bool how)
159{ 166{
160 autoRotate = how; 167 autoRotate = how;
161 if (m_disp) { 168 if (m_disp) {
162 m_disp->setAutoRotate(how); 169 m_disp->setAutoRotate(how);
163 } 170 }
164} 171}
165 172
166void PMainWindow::slotScaleToggled(bool how) 173void PMainWindow::slotScaleToggled(bool how)
167{ 174{
168 autoScale = !how; 175 autoScale = !how;
169 if (!how) { 176 if (!how) {
170 autoRotate = how; 177 autoRotate = how;
171 } 178 }
172 if (m_disp) { 179 if (m_disp) {
173 m_disp->setAutoScaleRotate(autoScale,autoRotate); 180 m_disp->setAutoScaleRotate(autoScale,autoRotate);
174 } 181 }
175 if (!autoScale) { 182 if (!autoScale) {
176 rotateButton->setOn(false); 183 rotateButton->setOn(false);
177 } 184 }
178 rotateButton->setEnabled(!how); 185 rotateButton->setEnabled(!how);
179} 186}
180 187
181void PMainWindow::slotConfig() { 188void PMainWindow::slotConfig() {
182 /* 189 /*
183 * have a tab with the possible views 190 * have a tab with the possible views
184 * a tab for globals image cache size.. scaled loading 191 * a tab for globals image cache size.. scaled loading
185 * and one tab for the KeyConfigs 192 * and one tab for the KeyConfigs
186 */ 193 */
187 QDialog dlg(this, 0, true); 194 QDialog dlg(this, 0, true);
188 dlg.setCaption( tr("Phunk View - Config" ) ); 195 dlg.setCaption( tr("Phunk View - Config" ) );
189 196
190 QHBoxLayout *lay = new QHBoxLayout(&dlg); 197 QHBoxLayout *lay = new QHBoxLayout(&dlg);
191 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg ); 198 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg );
192 lay->addWidget( wid ); 199 lay->addWidget( wid );
193 ViewMap *vM = viewMap(); 200 ViewMap *vM = viewMap();
194 ViewMap::Iterator _it = vM->begin(); 201 ViewMap::Iterator _it = vM->begin();
195 QMap<PDirView*, QWidget*> lst; 202 QMap<PDirView*, QWidget*> lst;
196 203
197 for( ; _it != vM->end(); ++_it ) { 204 for( ; _it != vM->end(); ++_it ) {
198 PDirView *view = (_it.data())(*m_cfg); 205 PDirView *view = (_it.data())(*m_cfg);
199 PInterfaceInfo *inf = view->interfaceInfo(); 206 PInterfaceInfo *inf = view->interfaceInfo();
200 QWidget *_wid = inf->configWidget( *m_cfg ); 207 QWidget *_wid = inf->configWidget( *m_cfg );
201 _wid->reparent(wid, QPoint() ); 208 _wid->reparent(wid, QPoint() );
202 lst.insert( view, _wid ); 209 lst.insert( view, _wid );
203 wid->addTab( _wid, "fileopen", inf->name() ); 210 wid->addTab( _wid, "fileopen", inf->name() );
204 } 211 }
205 212
206/* 213/*
207 * Add the KeyConfigWidget 214 * Add the KeyConfigWidget
208 */ 215 */
209 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" ); 216 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" );
210 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue ); 217 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
211 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() ); 218 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() );
212 219
213 if ( !m_info ) { 220 if ( !m_info ) {
214 initInfo(); 221 initInfo();
215 } 222 }
216 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() ); 223 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() );
217 224
218 if ( !m_disp ) { 225 if ( !m_disp ) {
219 initDisp(); 226 initDisp();
220 } 227 }
221 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() ); 228 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() );
222 229
223 keyWid->load(); 230 keyWid->load();
224 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") ); 231 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") );
225 232
226 233
227 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); 234 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted );
228 235
229/* 236/*
230 * clean up 237 * clean up
231 *apply changes 238 *apply changes
232 */ 239 */
233 240
234 QMap<PDirView*, QWidget*>::Iterator it; 241 QMap<PDirView*, QWidget*>::Iterator it;
235 for ( it = lst.begin(); it != lst.end(); ++it ) { 242 for ( it = lst.begin(); it != lst.end(); ++it ) {
236 if ( act ) 243 if ( act )
237 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg); 244 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg);
238 delete it.key(); 245 delete it.key();
239 } 246 }
240 247
241 248
242 if ( act ) { 249 if ( act ) {
243 m_view->resetView(); 250 m_view->resetView();
244 keyWid->save(); 251 keyWid->save();
245 m_disp->manager()->save(); 252 m_disp->manager()->save();
246 m_info->manager()->save(); 253 m_info->manager()->save();
247 m_view->manager()->save(); 254 m_view->manager()->save();
248 } 255 }
249 delete keyWid; 256 delete keyWid;
250} 257}
251 258
252/* 259/*
253 * create a new image info component 260 * create a new image info component
254 * and detach the current one 261 * and detach the current one
255 * we will make the other delete on exit 262 * we will make the other delete on exit
256 */ 263 */
257template<class T> 264template<class T>
258void PMainWindow::initT( const char* name, T** ptr, int id) { 265void PMainWindow::initT( const char* name, T** ptr, int id) {
259 if ( *ptr ) { 266 if ( *ptr ) {
260 (*ptr)->disconnect(this, SLOT(slotReturn())); 267 (*ptr)->disconnect(this, SLOT(slotReturn()));
261 (*ptr)->setDestructiveClose(); 268 (*ptr)->setDestructiveClose();
262 m_stack->removeWidget( *ptr ); 269 m_stack->removeWidget( *ptr );
263 } 270 }
264 *ptr = new T(m_cfg, m_stack, name ); 271 *ptr = new T(m_cfg, m_stack, name );
265 m_stack->addWidget( *ptr, id ); 272 m_stack->addWidget( *ptr, id );
266 273
267 connect(*ptr, SIGNAL(sig_return()), 274 connect(*ptr, SIGNAL(sig_return()),
268 this,SLOT(slotReturn())); 275 this,SLOT(slotReturn()));
269 276
270} 277}
271void PMainWindow::initInfo() { 278void PMainWindow::initInfo() {
272 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 279 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
273 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); 280 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
274} 281}
275void PMainWindow::initDisp() { 282void PMainWindow::initDisp() {
276 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); 283 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
277 if (m_disp) { 284 if (m_disp) {
278 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 285 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
279 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 286 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
280 } 287 }
281 m_disp->setAutoScale(autoScale); 288 m_disp->setAutoScale(autoScale);
282 m_disp->setAutoRotate(autoRotate); 289 m_disp->setAutoRotate(autoRotate);
283 m_disp->setShowZoomer(zoomerOn); 290 m_disp->setShowZoomer(zoomerOn);
284 m_disp->setBackgroundColor(white); 291 m_disp->setBackgroundColor(white);
285 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); 292 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&)));
286 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); 293 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext()));
287 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); 294 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev()));
288 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); 295 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen()));
289 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); 296 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView()));
297 connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer()));
290 } 298 }
291} 299}
292 300
293void PMainWindow::slotToggleFullScreen() 301void PMainWindow::slotToggleFullScreen()
294{ 302{
295 odebug << "Toggle full " << oendl; 303 odebug << "Toggle full " << oendl;
296 if (!m_disp) return; 304 if (!m_disp) return;
297 bool current = !m_disp->fullScreen(); 305 bool current = !m_disp->fullScreen();
298 m_disp->setFullScreen(current); 306 m_disp->setFullScreen(current);
299 odebug << "Current = " << current << oendl; 307 odebug << "Current = " << current << oendl;
300 if (current) { 308 if (current) {
301 odebug << "full" << oendl; 309 odebug << "full" << oendl;
302 m_disp->setBackgroundColor(black); 310 m_disp->setBackgroundColor(black);
303 m_disp->reparent(0,QPoint(0,0)); 311 m_disp->reparent(0,QPoint(0,0));
304 m_disp->setVScrollBarMode(QScrollView::AlwaysOff); 312 m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
305 m_disp->setHScrollBarMode(QScrollView::AlwaysOff); 313 m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
306 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); 314 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
307 m_disp->showFullScreen(); 315 m_disp->showFullScreen();
308 } else { 316 } else {
309 odebug << "window" << oendl; 317 odebug << "window" << oendl;
310 m_disp->setBackgroundColor(white); 318 m_disp->setBackgroundColor(white);
311 m_stack->addWidget(m_disp,ImageDisplay); 319 m_stack->addWidget(m_disp,ImageDisplay);
312 m_disp->setVScrollBarMode(QScrollView::Auto); 320 m_disp->setVScrollBarMode(QScrollView::Auto);
313 m_disp->setHScrollBarMode(QScrollView::Auto); 321 m_disp->setHScrollBarMode(QScrollView::Auto);
314 m_stack->raiseWidget(m_disp); 322 m_stack->raiseWidget(m_disp);
315 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 323 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
316 m_disp->resize(m_disp->minimumSize()); 324 m_disp->resize(m_disp->minimumSize());
317 } 325 }
318 } 326 }
319} 327}
320 328
321/** 329/**
322 * With big Screen the plan could be to 'detach' the image 330 * With big Screen the plan could be to 'detach' the image
323 * window if visible and to create a ne wone 331 * window if visible and to create a ne wone
324 * init* already supports it but I make no use of it for 332 * init* already supports it but I make no use of it for
325 * now. We set filename and raise 333 * now. We set filename and raise
326 * 334 *
327 * ### FIXME and talk to alwin 335 * ### FIXME and talk to alwin
328 */ 336 */
329void PMainWindow::slotShowInfo( const QString& inf ) { 337void PMainWindow::slotShowInfo( const QString& inf ) {
330 if ( !m_info ) { 338 if ( !m_info ) {
331 initInfo(); 339 initInfo();
332 } 340 }
333 m_info->setPath( inf ); 341 m_info->setPath( inf );
334 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 342 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
335 prevButton->hide(); 343 prevButton->hide();
336 nextButton->hide(); 344 nextButton->hide();
337 upButton->hide(); 345 upButton->hide();
338 fsButton->hide(); 346 fsButton->hide();
339 viewModeButton->hide(); 347 viewModeButton->hide();
340 } 348 }
341 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 349 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
342 m_disp->hide(); 350 m_disp->hide();
343 } 351 }
344 m_stack->raiseWidget( ImageInfo ); 352 m_stack->raiseWidget( ImageInfo );
345} 353}
346 354
347void PMainWindow::slotDisplay( const QString& inf ) { 355void PMainWindow::slotDisplay( const QString& inf ) {
348 if ( !m_disp ) { 356 if ( !m_disp ) {
349 initDisp(); 357 initDisp();
350 } 358 }
351 m_disp->setImage( inf ); 359 m_disp->setImage( inf );
352 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 360 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
353 prevButton->show(); 361 prevButton->show();
354 nextButton->show(); 362 nextButton->show();
355 upButton->hide(); 363 upButton->hide();
356 fsButton->hide(); 364 fsButton->hide();
357 viewModeButton->hide(); 365 viewModeButton->hide();
358 } 366 }
359 if (m_disp->fullScreen()) { 367 if (m_disp->fullScreen()) {
360 m_disp->show(); 368 m_disp->show();
361 } else { 369 } else {
362 m_stack->raiseWidget( ImageDisplay ); 370 m_stack->raiseWidget( ImageDisplay );
363 } 371 }
364} 372}
365 373
366void PMainWindow::slotReturn() { 374void PMainWindow::slotReturn() {
367 raiseIconView(); 375 raiseIconView();
368} 376}
369 377
370 378
371void PMainWindow::closeEvent( QCloseEvent* ev ) { 379void PMainWindow::closeEvent( QCloseEvent* ev ) {
372 /* 380 /*
373 * return from view 381 * return from view
374 * or properly quit 382 * or properly quit
375 */ 383 */
376 if ( m_stack->visibleWidget() == m_info || 384 if ( m_stack->visibleWidget() == m_info ||
377 m_stack->visibleWidget() == m_disp ) { 385 m_stack->visibleWidget() == m_disp ) {
378 raiseIconView(); 386 raiseIconView();
379 ev->ignore(); 387 ev->ignore();
380 return; 388 return;
381 } 389 }
382 ev->accept(); 390 ev->accept();
383 QTimer::singleShot(0, qApp, SLOT(closeAllWindows())); 391 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
384} 392}
385 393
386void PMainWindow::raiseIconView() { 394void PMainWindow::raiseIconView() {
387 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 395 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
388 prevButton->hide(); 396 prevButton->hide();
389 nextButton->hide(); 397 nextButton->hide();
390 upButton->show(); 398 upButton->show();
391 fsButton->show(); 399 fsButton->show();
392 viewModeButton->show(); 400 viewModeButton->show();
393 } 401 }
394 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 402 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
395 m_disp->hide(); 403 m_disp->hide();
396 } 404 }
397 m_stack->raiseWidget( IconView ); 405 m_stack->raiseWidget( IconView );
398} 406}
399 407
400void PMainWindow::setDocument( const QString& showImg ) { 408void PMainWindow::setDocument( const QString& showImg ) {
401 QString file = showImg; 409 QString file = showImg;
402 DocLnk lnk(showImg); 410 DocLnk lnk(showImg);
403 if (lnk.isValid() ) 411 if (lnk.isValid() )
404 file = lnk.file(); 412 file = lnk.file();
405 413
406 slotDisplay( file ); 414 slotDisplay( file );
407} 415}
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index d238763..e51a3ff 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -1,74 +1,75 @@
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 slotToggleZoomer();
46 void setDocument( const QString& ); 47 void setDocument( const QString& );
47 virtual void slotToggleFullScreen(); 48 virtual void slotToggleFullScreen();
48 49
49protected slots: 50protected slots:
50 void raiseIconView(); 51 void raiseIconView();
51 void closeEvent( QCloseEvent* ); 52 void closeEvent( QCloseEvent* );
52 53
53private: 54private:
54 template<class T> void initT( const char* name, T**, int ); 55 template<class T> void initT( const char* name, T**, int );
55 void initInfo(); 56 void initInfo();
56 void initDisp(); 57 void initDisp();
57 58
58private: 59private:
59 Opie::Core::OConfig *m_cfg; 60 Opie::Core::OConfig *m_cfg;
60 Opie::Ui::OWidgetStack *m_stack; 61 Opie::Ui::OWidgetStack *m_stack;
61 PIconView* m_view; 62 PIconView* m_view;
62 imageinfo *m_info; 63 imageinfo *m_info;
63 ImageView *m_disp; 64 ImageView *m_disp;
64 bool autoRotate; 65 bool autoRotate;
65 bool autoScale; 66 bool autoScale;
66 bool zoomerOn; 67 bool zoomerOn;
67 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton; 68 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
68 QToolButton*nextButton,*prevButton; 69 QToolButton*nextButton,*prevButton,*zoomButton;
69 70
70private slots: 71private slots:
71 void slotConfig(); 72 void slotConfig();
72}; 73};
73 74
74#endif 75#endif