summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-06 15:36:15 (UTC)
committer alwin <alwin>2004-04-06 15:36:15 (UTC)
commita0f97fe74df5e6ec3ceea771380a3c61acb2f96c (patch) (unidiff)
tree1d0819d5ffdf9f212829c35db579695bfe0b4b11
parent9273c064f2ae699885ddef32155df4f5aab9d574 (diff)
downloadopie-a0f97fe74df5e6ec3ceea771380a3c61acb2f96c.zip
opie-a0f97fe74df5e6ec3ceea771380a3c61acb2f96c.tar.gz
opie-a0f97fe74df5e6ec3ceea771380a3c61acb2f96c.tar.bz2
added keyboard handler for info window
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageinfoui.cpp57
-rw-r--r--noncore/graphics/opie-eye/gui/imageinfoui.h23
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp16
3 files changed, 85 insertions, 11 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageinfoui.cpp b/noncore/graphics/opie-eye/gui/imageinfoui.cpp
index 74a9ea4..039dfa3 100644
--- a/noncore/graphics/opie-eye/gui/imageinfoui.cpp
+++ b/noncore/graphics/opie-eye/gui/imageinfoui.cpp
@@ -4,51 +4,98 @@
4#include <qlabel.h> 4#include <qlabel.h>
5#include <qpushbutton.h> 5#include <qpushbutton.h>
6#include <qtextview.h> 6#include <qtextview.h>
7#include <qlayout.h> 7#include <qlayout.h>
8#include <qvariant.h> 8#include <qvariant.h>
9#include <qtooltip.h> 9#include <qtooltip.h>
10#include <qwhatsthis.h> 10#include <qwhatsthis.h>
11#include <qimage.h> 11#include <qimage.h>
12#include <qpixmap.h> 12#include <qpixmap.h>
13#include <qstring.h> 13#include <qstring.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15 15
16#include <lib/slavemaster.h> 16#include "lib/slavemaster.h"
17#include <lib/imagecache.h> 17#include "lib/imagecache.h"
18
19#include <opie2/oconfig.h>
20#include <opie2/oconfig.h>
21#include <opie2/okeyconfigwidget.h>
22#include <opie2/odebug.h>
18 23
19#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
20#include <qpe/resource.h> 25#include <qpe/resource.h>
21 26
22static const int THUMBSIZE = 128; 27static const int THUMBSIZE = 128;
23 28
29using namespace Opie::Core;
24 30
25imageinfo::imageinfo(QWidget* parent, const char* name, WFlags fl ) 31imageinfo::imageinfo(QWidget* parent, const char* name, WFlags fl )
26 : QWidget( parent, name, fl ) 32 : QWidget( parent, name, fl )
27{ 33{
34 m_viewManager = 0;
28 init(name); 35 init(name);
36 initKeys();
29} 37}
30 38
31imageinfo::imageinfo(const QString&_path, QWidget* parent, const char* name, WFlags fl ) 39imageinfo::imageinfo(const QString&_path, QWidget* parent, const char* name, WFlags fl )
32 : QWidget( parent, name, fl ),currentFile(_path) 40 : QWidget( parent, name, fl ),currentFile(_path)
33{ 41{
42 m_viewManager = 0;
34 init(name); 43 init(name);
44 initKeys();
35 slotChangeName(_path); 45 slotChangeName(_path);
36} 46}
47
48Opie::Ui::OKeyConfigManager* imageinfo::manager()
49{
50 if (!m_viewManager) {
51 initKeys();
52 }
53 return m_viewManager;
54}
55
56void imageinfo::initKeys()
57{
58 odebug << "init imageinfo keys" << oendl;
59 m_cfg = new Opie::Core::OConfig("phunkview");
60 m_cfg->setGroup("Zecke_view" );
61 Opie::Ui::OKeyPair::List lst;
62 lst.append( Opie::Ui::OKeyPair::upArrowKey() );
63 lst.append( Opie::Ui::OKeyPair::downArrowKey() );
64 lst.append( Opie::Ui::OKeyPair::leftArrowKey() );
65 lst.append( Opie::Ui::OKeyPair::rightArrowKey() );
66// lst.append( Opie::Ui::OKeyPair::returnKey() );
67
68 m_viewManager = new Opie::Ui::OKeyConfigManager(m_cfg, "Imageinfo-KeyBoard-Config",
69 lst, false,this, "keyconfig name" );
70 m_viewManager->addKeyConfig( Opie::Ui::OKeyConfigItem(tr("View Full Image"), "view",
71 Resource::loadPixmap("1to1"), ViewItem,
72 Opie::Ui::OKeyPair(Qt::Key_V, Qt::ShiftButton),
73 this, SLOT(slotShowImage())));
74 m_viewManager->load();
75 m_viewManager->handleWidget( this );
76 m_viewManager->handleWidget( TextView1 );
77}
78
79void imageinfo::slotShowImage()
80{
81 emit dispImage(currentFile);
82}
83
37void imageinfo::init(const char* name) { 84void imageinfo::init(const char* name) {
38 { 85 {
39 QCopEnvelope( "QPE/Application/opie-eye_slave", "refUp()" ); 86 QCopEnvelope( "QPE/Application/opie-eye_slave", "refUp()" );
40 } 87 }
41 if ( !name ) 88 if ( !name )
42 setName( "imageinfo" ); 89 setName( "imageinfo" );
43 resize( 289, 335 ); 90 resize( 289, 335 );
44 setCaption( tr( "Image info" ) ); 91 setCaption( tr( "Image info" ) );
45 imageinfoLayout = new QVBoxLayout( this ); 92 imageinfoLayout = new QVBoxLayout( this );
46 imageinfoLayout->setSpacing(2); 93 imageinfoLayout->setSpacing(2);
47 imageinfoLayout->setMargin(4); 94 imageinfoLayout->setMargin(4);
48 95
49 PixmapLabel1 = new QLabel( this, "PixmapLabel1" ); 96 PixmapLabel1 = new QLabel( this, "PixmapLabel1" );
50 PixmapLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)5, PixmapLabel1->sizePolicy().hasHeightForWidth() ) ); 97 PixmapLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)5, PixmapLabel1->sizePolicy().hasHeightForWidth() ) );
51 QWhatsThis::add( PixmapLabel1, tr("Displays an thumbnail of the image") ); 98 QWhatsThis::add( PixmapLabel1, tr("Displays an thumbnail of the image") );
52 99
53 imageinfoLayout->addWidget( PixmapLabel1 ); 100 imageinfoLayout->addWidget( PixmapLabel1 );
54 101
@@ -87,24 +134,28 @@ void imageinfo::slotChangeName(const QString&_path)
87 PixmapLabel1->setPixmap(QPixmap( Resource::loadPixmap( "UnknownDocument" ))); 134 PixmapLabel1->setPixmap(QPixmap( Resource::loadPixmap( "UnknownDocument" )));
88 SlaveMaster::self()->thumbNail(currentFile,THUMBSIZE,THUMBSIZE); 135 SlaveMaster::self()->thumbNail(currentFile,THUMBSIZE,THUMBSIZE);
89 } else { 136 } else {
90 PixmapLabel1->setPixmap(*m_pix); 137 PixmapLabel1->setPixmap(*m_pix);
91 } 138 }
92} 139}
93 140
94imageinfo::~imageinfo() 141imageinfo::~imageinfo()
95{ 142{
96 { 143 {
97 QCopEnvelope( "QPE/Application/opie-eye_slave", "refDown()" ); 144 QCopEnvelope( "QPE/Application/opie-eye_slave", "refDown()" );
98 } 145 }
146 if (m_viewManager) {
147 m_viewManager->save();
148 delete m_viewManager;
149 }
99} 150}
100 151
101void imageinfo::slot_fullInfo(const QString&_path, const QString&_t) 152void imageinfo::slot_fullInfo(const QString&_path, const QString&_t)
102{ 153{
103 if (_path == currentFile) { 154 if (_path == currentFile) {
104 qDebug(_t); 155 qDebug(_t);
105 QString t = _t; 156 QString t = _t;
106 t.replace(QRegExp("\n"),"<br>"); 157 t.replace(QRegExp("\n"),"<br>");
107/* t.replace(QRegeExp("<qt>",""); 158/* t.replace(QRegeExp("<qt>","");
108 t.replace(QRegeExp("</qt>","");*/ 159 t.replace(QRegeExp("</qt>","");*/
109 TextView1->setText(t); 160 TextView1->setText(t);
110 } 161 }
diff --git a/noncore/graphics/opie-eye/gui/imageinfoui.h b/noncore/graphics/opie-eye/gui/imageinfoui.h
index 300c92a..0a5e183 100644
--- a/noncore/graphics/opie-eye/gui/imageinfoui.h
+++ b/noncore/graphics/opie-eye/gui/imageinfoui.h
@@ -3,51 +3,70 @@
3 3
4#include <qvariant.h> 4#include <qvariant.h>
5#include <qwidget.h> 5#include <qwidget.h>
6#include <qdialog.h> 6#include <qdialog.h>
7 7
8class QVBoxLayout; 8class QVBoxLayout;
9class QHBoxLayout; 9class QHBoxLayout;
10class QGridLayout; 10class QGridLayout;
11class QFrame; 11class QFrame;
12class QLabel; 12class QLabel;
13class QTextView; 13class QTextView;
14 14
15namespace Opie {
16 namespace Core {
17 class OConfig;
18 }
19 namespace Ui {
20 class OKeyConfigManager;
21 }
22}
23
15class imageinfo : public QWidget 24class imageinfo : public QWidget
16{ 25{
17 Q_OBJECT 26 Q_OBJECT
27 enum ActionIds {
28 ViewItem
29 };
18 30
19public: 31public:
20 imageinfo( QWidget* parent = 0, const char* name = 0, WFlags fl =0); 32 imageinfo( QWidget* parent = 0, const char* name = 0, WFlags fl =0);
21 imageinfo(const QString&_path, QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 33 imageinfo(const QString&_path, QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
22 ~imageinfo(); 34 ~imageinfo();
23 35
24 void setDestructiveClose(); 36 void setDestructiveClose();
37 Opie::Ui::OKeyConfigManager* manager();
38
39signals:
40 void dispImage(const QString&);
25 41
26public slots: 42public slots:
27 void setPath( const QString& path ); 43 void setPath( const QString& path );
44 void slotShowImage();
28 45
29private: 46private:
30 void init(const char* name); 47 void init(const char* name);
31 48
32protected: 49protected:
33 QLabel* PixmapLabel1; 50 QLabel* PixmapLabel1;
34 QLabel* fnameLabel; 51 QLabel* fnameLabel;
35 QFrame* Line1; 52 QFrame* Line1;
36 QTextView* TextView1; 53 QTextView* TextView1;
37
38protected:
39 QVBoxLayout* imageinfoLayout; 54 QVBoxLayout* imageinfoLayout;
40 QString currentFile; 55 QString currentFile;
41 56
57 Opie::Core::OConfig * m_cfg;
58 Opie::Ui::OKeyConfigManager*m_viewManager;
59 void initKeys();
60
42protected slots: 61protected slots:
43 virtual void slot_fullInfo(const QString&, const QString&); 62 virtual void slot_fullInfo(const QString&, const QString&);
44 virtual void slotThumbNail(const QString&, const QPixmap&); 63 virtual void slotThumbNail(const QString&, const QPixmap&);
45 64
46 virtual void slotChangeName(const QString&); 65 virtual void slotChangeName(const QString&);
47}; 66};
48 67
49/* for testing purpose */ 68/* for testing purpose */
50class infoDlg:public QDialog 69class infoDlg:public QDialog
51{ 70{
52 Q_OBJECT 71 Q_OBJECT
53public: 72public:
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 88acd59..5e94f93 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -9,49 +9,47 @@
9#include "imageinfoui.h" 9#include "imageinfoui.h"
10#include "imagescrollview.h" 10#include "imagescrollview.h"
11 11
12#include <iface/ifaceinfo.h> 12#include <iface/ifaceinfo.h>
13#include <iface/dirview.h> 13#include <iface/dirview.h>
14 14
15#include <opie2/odebug.h> 15#include <opie2/odebug.h>
16#include <opie2/owidgetstack.h> 16#include <opie2/owidgetstack.h>
17#include <opie2/oapplicationfactory.h> 17#include <opie2/oapplicationfactory.h>
18#include <opie2/otabwidget.h> 18#include <opie2/otabwidget.h>
19#include <opie2/okeyconfigwidget.h> 19#include <opie2/okeyconfigwidget.h>
20 20
21
22#include <qpe/resource.h> 21#include <qpe/resource.h>
23#include <qpe/config.h> 22#include <qpe/config.h>
24#include <qpe/ir.h> 23#include <qpe/ir.h>
25 24
26#include <qtoolbar.h> 25#include <qtoolbar.h>
27#include <qtoolbutton.h> 26#include <qtoolbutton.h>
28#include <qlayout.h> 27#include <qlayout.h>
29#include <qdialog.h> 28#include <qdialog.h>
30#include <qmap.h> 29#include <qmap.h>
31#include <qtimer.h> 30#include <qtimer.h>
32 31
33 32
34 33
35 34
36OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow> ) 35OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" )
37 36
38PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) 37PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style)
39 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 ) 38 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 )
40{ 39{
41 setCaption( QObject::tr("Opie Eye Caramba" ) ); 40 setCaption( QObject::tr("Opie Eye Caramba" ) );
42 m_cfg = new Opie::Core::OConfig("phunkview"); 41 m_cfg = new Opie::Core::OConfig("phunkview");
43 m_cfg->setGroup("Zecke_view" ); 42 m_cfg->setGroup("Zecke_view" );
44 43// qDebug( "Process-wide OApplication object @ %0x", oApp );
45
46 /* 44 /*
47 * Initialize ToolBar and IconView 45 * Initialize ToolBar and IconView
48 * And Connect Them 46 * And Connect Them
49 */ 47 */
50 QToolBar *bar = new QToolBar( this ); 48 QToolBar *bar = new QToolBar( this );
51 bar->setHorizontalStretchable( true ); 49 bar->setHorizontalStretchable( true );
52 setToolBarsMovable( false ); 50 setToolBarsMovable( false );
53 51
54 m_stack = new Opie::Ui::OWidgetStack( this ); 52 m_stack = new Opie::Ui::OWidgetStack( this );
55 setCentralWidget( m_stack ); 53 setCentralWidget( m_stack );
56 54
57 m_view = new PIconView( m_stack, m_cfg ); 55 m_view = new PIconView( m_stack, m_cfg );
@@ -83,25 +81,25 @@ PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style)
83 m_view, SLOT(slotBeam()) ); 81 m_view, SLOT(slotBeam()) );
84 } 82 }
85 83
86 btn = new QToolButton( bar ); 84 btn = new QToolButton( bar );
87 btn->setIconSet( Resource::loadIconSet( "trash" ) ); 85 btn->setIconSet( Resource::loadIconSet( "trash" ) );
88 connect( btn, SIGNAL(clicked() ), 86 connect( btn, SIGNAL(clicked() ),
89 m_view, SLOT(slotTrash() ) ); 87 m_view, SLOT(slotTrash() ) );
90 88
91 btn = new QToolButton( bar ); 89 btn = new QToolButton( bar );
92 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) ); 90 btn->setIconSet( Resource::loadIconSet( "SettingsIcon" ) );
93 connect( btn, SIGNAL(clicked() ), 91 connect( btn, SIGNAL(clicked() ),
94 this, SLOT(slotConfig() ) ); 92 this, SLOT(slotConfig() ) );
95 93
96 rotateButton = new QToolButton(bar); 94 rotateButton = new QToolButton(bar);
97 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) ); 95 rotateButton->setIconSet( Resource::loadIconSet( "rotate" ) );
98 rotateButton->setToggleButton(true); 96 rotateButton->setToggleButton(true);
99 rotateButton->setOn(true); 97 rotateButton->setOn(true);
100 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool))); 98 connect(rotateButton,SIGNAL(toggled(bool)),this,SLOT(slotRotateToggled(bool)));
101 autoRotate = true; 99 autoRotate = true;
102 100
103 btn = new QToolButton(bar); 101 btn = new QToolButton(bar);
104 btn->setIconSet( Resource::loadIconSet( "1to1" ) ); 102 btn->setIconSet( Resource::loadIconSet( "1to1" ) );
105 btn->setToggleButton(true); 103 btn->setToggleButton(true);
106 btn->setOn(false); 104 btn->setOn(false);
107 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool))); 105 connect(btn,SIGNAL(toggled(bool)),this,SLOT(slotScaleToggled(bool)));
@@ -155,24 +153,28 @@ void PMainWindow::slotConfig() {
155 QWidget *_wid = inf->configWidget( *m_cfg ); 153 QWidget *_wid = inf->configWidget( *m_cfg );
156 _wid->reparent(wid, QPoint() ); 154 _wid->reparent(wid, QPoint() );
157 lst.insert( view, _wid ); 155 lst.insert( view, _wid );
158 wid->addTab( _wid, "fileopen", inf->name() ); 156 wid->addTab( _wid, "fileopen", inf->name() );
159 } 157 }
160 158
161/* 159/*
162 * Add the KeyConfigWidget 160 * Add the KeyConfigWidget
163 */ 161 */
164 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" ); 162 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" );
165 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue ); 163 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
166 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() ); 164 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() );
165 if ( !m_info ) {
166 initInfo();
167 }
168 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() );
167 keyWid->load(); 169 keyWid->load();
168 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") ); 170 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") );
169 171
170 172
171 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); 173 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted );
172 174
173/* 175/*
174 * clean up 176 * clean up
175 *apply changes 177 *apply changes
176 */ 178 */
177 179
178 QMap<PDirView*, QWidget*>::Iterator it; 180 QMap<PDirView*, QWidget*>::Iterator it;
@@ -201,45 +203,47 @@ void PMainWindow::initT( const char* name, T** ptr, int id) {
201 (*ptr)->setDestructiveClose(); 203 (*ptr)->setDestructiveClose();
202 m_stack->removeWidget( *ptr ); 204 m_stack->removeWidget( *ptr );
203 } 205 }
204 *ptr = new T( m_stack, name ); 206 *ptr = new T( m_stack, name );
205 m_stack->addWidget( *ptr, id ); 207 m_stack->addWidget( *ptr, id );
206 208
207 connect(*ptr, SIGNAL(sig_return()), 209 connect(*ptr, SIGNAL(sig_return()),
208 this,SLOT(slotReturn())); 210 this,SLOT(slotReturn()));
209 211
210} 212}
211void PMainWindow::initInfo() { 213void PMainWindow::initInfo() {
212 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 214 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
215 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
213} 216}
214void PMainWindow::initDisp() { 217void PMainWindow::initDisp() {
215 initT<ImageScrollView>( "Image ScrollView", &m_disp, ImageDisplay ); 218 initT<ImageScrollView>( "Image ScrollView", &m_disp, ImageDisplay );
216 if (m_disp) { 219 if (m_disp) {
217 m_disp->setAutoScale(autoScale); 220 m_disp->setAutoScale(autoScale);
218 m_disp->setAutoRotate(autoRotate); 221 m_disp->setAutoRotate(autoRotate);
219 } 222 }
220 223
221} 224}
222 225
223/** 226/**
224 * With big Screen the plan could be to 'detach' the image 227 * With big Screen the plan could be to 'detach' the image
225 * window if visible and to create a ne wone 228 * window if visible and to create a ne wone
226 * init* already supports it but I make no use of it for 229 * init* already supports it but I make no use of it for
227 * now. We set filename and raise 230 * now. We set filename and raise
228 * 231 *
229 * ### FIXME and talk to alwin 232 * ### FIXME and talk to alwin
230 */ 233 */
231void PMainWindow::slotShowInfo( const QString& inf ) { 234void PMainWindow::slotShowInfo( const QString& inf ) {
232 if ( !m_info ) 235 if ( !m_info ) {
233 initInfo(); 236 initInfo();
237 }
234 m_info->setPath( inf ); 238 m_info->setPath( inf );
235 m_stack->raiseWidget( ImageInfo ); 239 m_stack->raiseWidget( ImageInfo );
236} 240}
237 241
238void PMainWindow::slotDisplay( const QString& inf ) { 242void PMainWindow::slotDisplay( const QString& inf ) {
239 if ( !m_disp ) { 243 if ( !m_disp ) {
240 initDisp(); 244 initDisp();
241 } 245 }
242 m_disp->setImage( inf ); 246 m_disp->setImage( inf );
243 m_stack->raiseWidget( ImageDisplay ); 247 m_stack->raiseWidget( ImageDisplay );
244} 248}
245 249