summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-21 23:15:47 (UTC)
committer alwin <alwin>2004-04-21 23:15:47 (UTC)
commit9230c9dd6bef33603cef1727be95dafc8065f66c (patch) (unidiff)
tree076da2786297367a15e8929784933d8e9bd02576
parent15abdc3ac4e7406d15a8a59f43b3ae669099074a (diff)
downloadopie-9230c9dd6bef33603cef1727be95dafc8065f66c.zip
opie-9230c9dd6bef33603cef1727be95dafc8065f66c.tar.gz
opie-9230c9dd6bef33603cef1727be95dafc8065f66c.tar.bz2
saves the last view used.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp
index 77597d2..6c5f5ea 100644
--- a/noncore/graphics/opie-eye/gui/iconview.cpp
+++ b/noncore/graphics/opie-eye/gui/iconview.cpp
@@ -99,151 +99,163 @@ namespace {
99 } 99 }
100 100
101 inline void IconViewItem::setPixmap( const QPixmap & icon, bool recalc, bool redraw) 101 inline void IconViewItem::setPixmap( const QPixmap & icon, bool recalc, bool redraw)
102 { 102 {
103 m_Pixset = true; 103 m_Pixset = true;
104 calcRect(text()); 104 calcRect(text());
105 } 105 }
106 inline void IconViewItem::setPixmap( const QPixmap & icon) 106 inline void IconViewItem::setPixmap( const QPixmap & icon)
107 { 107 {
108 m_Pixset = true; 108 m_Pixset = true;
109 calcRect(text()); 109 calcRect(text());
110 } 110 }
111 111
112 inline QPixmap* IconViewItem::pixmap()const { 112 inline QPixmap* IconViewItem::pixmap()const {
113// qWarning( "Name is " + m_path.right( 15 ) + " rect is %d %d %d %d | %d %d", 113// qWarning( "Name is " + m_path.right( 15 ) + " rect is %d %d %d %d | %d %d",
114// rect().x(),rect().y(),rect().width(),rect().height(), 114// rect().x(),rect().y(),rect().width(),rect().height(),
115// iconView()->contentsX(), iconView()->contentsY()); 115// iconView()->contentsX(), iconView()->contentsY());
116 116
117 if (textOnly()&&!m_isDir) { 117 if (textOnly()&&!m_isDir) {
118 if (!_emptyPix) _emptyPix = new QPixmap(0,0,1); 118 if (!_emptyPix) _emptyPix = new QPixmap(0,0,1);
119 return _emptyPix; 119 return _emptyPix;
120 } 120 }
121 if ( m_isDir ) 121 if ( m_isDir )
122 return _dirPix; 122 return _dirPix;
123 else{ 123 else{
124 if (!m_noInfo && !g_stringInf.contains( m_path ) ) { 124 if (!m_noInfo && !g_stringInf.contains( m_path ) ) {
125 currentView()->dirLister()->imageInfo( m_path ); 125 currentView()->dirLister()->imageInfo( m_path );
126 g_stringInf.insert( m_path, const_cast<IconViewItem*>(this)); 126 g_stringInf.insert( m_path, const_cast<IconViewItem*>(this));
127 } 127 }
128 128
129 m_pix = PPixmapCache::self()->cachedImage( m_path, 64, 64 ); 129 m_pix = PPixmapCache::self()->cachedImage( m_path, 64, 64 );
130 if (!m_pix && !g_stringPix.contains( m_path )) { 130 if (!m_pix && !g_stringPix.contains( m_path )) {
131 currentView()->dirLister()->thumbNail( m_path, 64, 64 ); 131 currentView()->dirLister()->thumbNail( m_path, 64, 64 );
132 g_stringPix.insert( m_path, const_cast<IconViewItem*>(this)); 132 g_stringPix.insert( m_path, const_cast<IconViewItem*>(this));
133 } 133 }
134 return m_pix ? m_pix : _unkPix; 134 return m_pix ? m_pix : _unkPix;
135 } 135 }
136 } 136 }
137 inline void IconViewItem::setText( const QString& str ) { 137 inline void IconViewItem::setText( const QString& str ) {
138 QString text = QIconViewItem::text()+"\n"+str; 138 QString text = QIconViewItem::text()+"\n"+str;
139 m_noInfo = true; 139 m_noInfo = true;
140 QIconViewItem::setText( text ); 140 QIconViewItem::setText( text );
141 } 141 }
142} 142}
143 143
144 144
145/* 145/*
146 * Set up the GUI.. initialize the slave set up gui 146 * Set up the GUI.. initialize the slave set up gui
147 * and also load a dir 147 * and also load a dir
148 */ 148 */
149PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg ) 149PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg )
150 : QVBox( wid ), m_cfg( cfg ), m_updatet( false ) 150 : QVBox( wid ), m_cfg( cfg ), m_updatet( false )
151{ 151{
152 { 152 {
153 QCopEnvelope( "QPE/Application/opie-eye_slave", "refUp()" ); 153 QCopEnvelope( "QPE/Application/opie-eye_slave", "refUp()" );
154 } 154 }
155 m_path = QDir::homeDirPath(); 155 m_path = QDir::homeDirPath();
156 m_mode = 0; 156 m_mode = 0;
157 157
158 QHBox *hbox = new QHBox( this ); 158 QHBox *hbox = new QHBox( this );
159 QLabel* lbl = new QLabel( hbox ); 159 QLabel* lbl = new QLabel( hbox );
160 lbl->setText( tr("View as" ) ); 160 lbl->setText( tr("View as" ) );
161 161
162 m_views = new QComboBox( hbox, "View As" ); 162 m_views = new QComboBox( hbox, "View As" );
163 connect( m_views, SIGNAL(activated(int)),
164 this, SLOT(slotViewChanged(int)) );
165 163
166 m_view= new QIconView( this ); 164 m_view= new QIconView( this );
167 connect(m_view, SIGNAL(clicked(QIconViewItem*) ), 165 connect(m_view, SIGNAL(clicked(QIconViewItem*) ),
168 this, SLOT(slotClicked(QIconViewItem*)) ); 166 this, SLOT(slotClicked(QIconViewItem*)) );
169 connect(m_view, SIGNAL(returnPressed(QIconViewItem*)), 167 connect(m_view, SIGNAL(returnPressed(QIconViewItem*)),
170 this, SLOT(slotClicked(QIconViewItem*)) ); 168 this, SLOT(slotClicked(QIconViewItem*)) );
171 169
172 m_view->setArrangement( QIconView::LeftToRight ); 170 m_view->setArrangement( QIconView::LeftToRight );
173 171
174 m_mode = cfg->readNumEntry("ListViewMode", 1); 172 m_mode = m_cfg->readNumEntry("ListViewMode", 1);
173 QString lastView = m_cfg->readEntry("LastView","");
175 174
176 if (m_mode < 1 || m_mode>3) m_mode = 1; 175 if (m_mode < 1 || m_mode>3) m_mode = 1;
177 176
178 m_view->setItemTextPos( QIconView::Right ); 177 m_view->setItemTextPos( QIconView::Right );
179 178
180 calculateGrid(); 179 calculateGrid();
181 180
182 initKeys(); 181 initKeys();
183 182
184 loadViews(); 183 loadViews();
185 slotViewChanged( m_views->currentItem() ); 184 int cc=0;
185 for (; cc<m_views->count();++cc) {
186 if (m_views->text(cc)==lastView) {
187 break;
188 }
189 }
190 if (cc<m_views->count()) {
191 m_views->setCurrentItem(cc);
192 slotViewChanged(cc);
193 } else {
194 slotViewChanged(m_views->currentItem());
195 }
196 connect( m_views, SIGNAL(activated(int)),
197 this, SLOT(slotViewChanged(int)) );
186} 198}
187 199
188/* 200/*
189 * Unref the slave and save the keyboard manager 201 * Unref the slave and save the keyboard manager
190 */ 202 */
191PIconView::~PIconView() { 203PIconView::~PIconView() {
192 { 204 {
193 QCopEnvelope( "QPE/Application/opie-eye_slave", "refDown()" ); 205 QCopEnvelope( "QPE/Application/opie-eye_slave", "refDown()" );
194 } 206 }
195 m_viewManager->save(); 207 m_viewManager->save();
196 delete m_viewManager; 208 delete m_viewManager;
197} 209}
198 210
199Opie::Core::OKeyConfigManager* PIconView::manager() { 211Opie::Core::OKeyConfigManager* PIconView::manager() {
200 return m_viewManager; 212 return m_viewManager;
201} 213}
202 214
203 215
204/* 216/*
205 * init the KeyBoard Shortcuts 217 * init the KeyBoard Shortcuts
206 * called from the c'tor 218 * called from the c'tor
207 */ 219 */
208void PIconView::initKeys() { 220void PIconView::initKeys() {
209 Opie::Core::OKeyPair::List lst; 221 Opie::Core::OKeyPair::List lst;
210 lst.append( Opie::Core::OKeyPair::upArrowKey() ); 222 lst.append( Opie::Core::OKeyPair::upArrowKey() );
211 lst.append( Opie::Core::OKeyPair::downArrowKey() ); 223 lst.append( Opie::Core::OKeyPair::downArrowKey() );
212 lst.append( Opie::Core::OKeyPair::leftArrowKey() ); 224 lst.append( Opie::Core::OKeyPair::leftArrowKey() );
213 lst.append( Opie::Core::OKeyPair::rightArrowKey() ); 225 lst.append( Opie::Core::OKeyPair::rightArrowKey() );
214 lst.append( Opie::Core::OKeyPair::returnKey() ); 226 lst.append( Opie::Core::OKeyPair::returnKey() );
215 227
216 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "View-KeyBoard-Config", 228 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "View-KeyBoard-Config",
217 lst, false,this, "keyconfig name" ); 229 lst, false,this, "keyconfig name" );
218 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Beam Current Item") , "beam", 230 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Beam Current Item") , "beam",
219 Resource::loadPixmap("beam"), BeamItem, 231 Resource::loadPixmap("beam"), BeamItem,
220 Opie::Core::OKeyPair(Qt::Key_B, Qt::ShiftButton), 232 Opie::Core::OKeyPair(Qt::Key_B, Qt::ShiftButton),
221 this, SLOT(slotBeam())) ); 233 this, SLOT(slotBeam())) );
222 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Delete Current Item"), "delete", 234 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Delete Current Item"), "delete",
223 Resource::loadPixmap("trash"), DeleteItem, 235 Resource::loadPixmap("trash"), DeleteItem,
224 Opie::Core::OKeyPair(Qt::Key_D, Qt::ShiftButton), 236 Opie::Core::OKeyPair(Qt::Key_D, Qt::ShiftButton),
225 this, SLOT(slotTrash())) ); 237 this, SLOT(slotTrash())) );
226 m_viewManager->addKeyConfig( OKeyConfigItem(tr("View Current Item"), "view", 238 m_viewManager->addKeyConfig( OKeyConfigItem(tr("View Current Item"), "view",
227 Resource::loadPixmap("1to1"), ViewItem, 239 Resource::loadPixmap("1to1"), ViewItem,
228 Opie::Core::OKeyPair(Qt::Key_V, Qt::ShiftButton), 240 Opie::Core::OKeyPair(Qt::Key_V, Qt::ShiftButton),
229 this, SLOT(slotShowImage()))); 241 this, SLOT(slotShowImage())));
230 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Show Image Info") , "info", 242 m_viewManager->addKeyConfig( OKeyConfigItem(tr("Show Image Info") , "info",
231 Resource::loadPixmap("DocumentTypeWord"), InfoItem, 243 Resource::loadPixmap("DocumentTypeWord"), InfoItem,
232 Opie::Core::OKeyPair(Qt::Key_I, Qt::ShiftButton ), 244 Opie::Core::OKeyPair(Qt::Key_I, Qt::ShiftButton ),
233 this, SLOT(slotImageInfo()) ) ); 245 this, SLOT(slotImageInfo()) ) );
234 m_viewManager->load(); 246 m_viewManager->load();
235 m_viewManager->handleWidget( m_view ); 247 m_viewManager->handleWidget( m_view );
236} 248}
237 249
238 250
239/* 251/*
240 * change one dir up 252 * change one dir up
241 */ 253 */
242void PIconView::slotDirUp() 254void PIconView::slotDirUp()
243{ 255{
244 if (m_path.isEmpty()) return; 256 if (m_path.isEmpty()) return;
245 QDir dir( m_path ); 257 QDir dir( m_path );
246 dir.cdUp(); 258 dir.cdUp();
247 slotChangeDir( dir.absPath() ); 259 slotChangeDir( dir.absPath() );
248} 260}
249 261
@@ -311,128 +323,130 @@ QString PIconView::nextFileName(bool &isDir)const
311 return it->path(); 323 return it->path();
312} 324}
313 325
314QString PIconView::prevFileName(bool &isDir)const{ 326QString PIconView::prevFileName(bool &isDir)const{
315 isDir = false; 327 isDir = false;
316 QIconViewItem* _it = m_view->currentItem(); 328 QIconViewItem* _it = m_view->currentItem();
317 if ( !_it ) 329 if ( !_it )
318 return QString::null; 330 return QString::null;
319 _it = _it->prevItem(); 331 _it = _it->prevItem();
320 if ( !_it ) 332 if ( !_it )
321 return QString::null; 333 return QString::null;
322 IconViewItem* it = static_cast<IconViewItem*>( _it ); 334 IconViewItem* it = static_cast<IconViewItem*>( _it );
323 isDir = it->isDir(); 335 isDir = it->isDir();
324 return it->path(); 336 return it->path();
325} 337}
326 338
327void PIconView::slotTrash() { 339void PIconView::slotTrash() {
328 bool isDir; 340 bool isDir;
329 QString pa = currentFileName( isDir ); 341 QString pa = currentFileName( isDir );
330 if ( isDir && pa.isEmpty() ) 342 if ( isDir && pa.isEmpty() )
331 return; 343 return;
332 344
333 if (!QPEMessageBox::confirmDelete( this, 345 if (!QPEMessageBox::confirmDelete( this,
334 tr("Delete Image" ), 346 tr("Delete Image" ),
335 tr("the Image %1" ).arg(pa))) 347 tr("the Image %1" ).arg(pa)))
336 return 348 return
337 349
338 350
339 currentView()->dirLister()->deleteImage( pa ); 351 currentView()->dirLister()->deleteImage( pa );
340 delete m_view->currentItem(); 352 delete m_view->currentItem();
341} 353}
342 354
343/* 355/*
344 * see what views are available 356 * see what views are available
345 */ 357 */
346void PIconView::loadViews() { 358void PIconView::loadViews() {
347 ViewMap::Iterator it; 359 ViewMap::Iterator it;
348 ViewMap* map = viewMap(); 360 ViewMap* map = viewMap();
349 for ( it = map->begin(); it != map->end(); ++it ) 361 for ( it = map->begin(); it != map->end(); ++it )
350 m_views->insertItem( it.key() ); 362 m_views->insertItem( it.key() );
351} 363}
352 364
353void PIconView::resetView() { 365void PIconView::resetView() {
354 slotViewChanged(m_views->currentItem()); 366 slotViewChanged(m_views->currentItem());
355} 367}
356 368
357/* 369/*
358 *swicth view reloadDir and connect signals 370 *swicth view reloadDir and connect signals
359 */ 371 */
360void PIconView::slotViewChanged( int i) { 372void PIconView::slotViewChanged( int i) {
361 if (!m_views->count() ) { 373 if (!m_views->count() ) {
362 setCurrentView( 0l); 374 setCurrentView( 0l);
363 return; 375 return;
364 } 376 }
365 377
366 PDirView* cur = currentView(); 378 PDirView* cur = currentView();
367 if (cur) delete cur; 379 if (cur) delete cur;
368 QString str = m_views->text(i); 380 QString str = m_views->text(i);
369 ViewMap* map = viewMap(); 381 ViewMap* map = viewMap();
370 if (!map) {setCurrentView(0l); return;} 382 if (!map) {setCurrentView(0l); return;}
371 if (map->find(str) == map->end()) { 383 if (map->find(str) == map->end()) {
372 owarn << "Key not found" << oendl; 384 owarn << "Key not found" << oendl;
373 setCurrentView(0l); return; 385 setCurrentView(0l); return;
374 } 386 }
387 m_cfg->writeEntry("LastView",str);
388 m_cfg->write();
375 cur = (*(*map)[str])(*m_cfg); 389 cur = (*(*map)[str])(*m_cfg);
376 setCurrentView( cur ); 390 setCurrentView( cur );
377 391
378 /* connect to the signals of the lister */ 392 /* connect to the signals of the lister */
379 PDirLister* lis = cur->dirLister(); 393 PDirLister* lis = cur->dirLister();
380 connect(lis, SIGNAL(sig_thumbInfo(const QString&, const QString& )), 394 connect(lis, SIGNAL(sig_thumbInfo(const QString&, const QString& )),
381 this, SLOT( slotThumbInfo(const QString&, const QString&))); 395 this, SLOT( slotThumbInfo(const QString&, const QString&)));
382 connect(lis, SIGNAL( sig_thumbNail(const QString&, const QPixmap&)), 396 connect(lis, SIGNAL( sig_thumbNail(const QString&, const QPixmap&)),
383 this, SLOT(slotThumbNail(const QString&, const QPixmap&))); 397 this, SLOT(slotThumbNail(const QString&, const QPixmap&)));
384 connect(lis, SIGNAL(sig_start()), 398 connect(lis, SIGNAL(sig_start()),
385 this, SLOT(slotStart())); 399 this, SLOT(slotStart()));
386 connect(lis, SIGNAL(sig_end()) , 400 connect(lis, SIGNAL(sig_end()) ,
387 this, SLOT(slotEnd()) ); 401 this, SLOT(slotEnd()) );
388 402
389 403
390 /* reload now */ 404 /* reload now */
391 QTimer::singleShot( 0, this, SLOT(slotReloadDir())); 405 QTimer::singleShot( 0, this, SLOT(slotReloadDir()));
392} 406}
393 407
394 408
395void PIconView::slotReloadDir() { 409void PIconView::slotReloadDir() {
396 slotChangeDir( m_path ); 410 slotChangeDir( m_path );
397} 411}
398 412
399 413
400/* 414/*
401 * add files and folders 415 * add files and folders
402 */ 416 */
403void PIconView::addFolders( const QStringList& lst) { 417void PIconView::addFolders( const QStringList& lst) {
404 QStringList::ConstIterator it; 418 QStringList::ConstIterator it;
405 IconViewItem * _iv; 419 IconViewItem * _iv;
406 420
407 for(it=lst.begin(); it != lst.end(); ++it ) { 421 for(it=lst.begin(); it != lst.end(); ++it ) {
408 _iv = new IconViewItem( m_view, m_path+"/"+(*it), (*it), true ); 422 _iv = new IconViewItem( m_view, m_path+"/"+(*it), (*it), true );
409 if (m_mode==3) _iv->setTextOnly(true); 423 if (m_mode==3) _iv->setTextOnly(true);
410 } 424 }
411} 425}
412 426
413void PIconView::addFiles( const QStringList& lst) { 427void PIconView::addFiles( const QStringList& lst) {
414 QStringList::ConstIterator it; 428 QStringList::ConstIterator it;
415 IconViewItem * _iv; 429 IconViewItem * _iv;
416 QPixmap*m_pix = 0; 430 QPixmap*m_pix = 0;
417 QString pre = ""; 431 QString pre = "";
418 if (!m_path.isEmpty()) { 432 if (!m_path.isEmpty()) {
419 pre = m_path+"/"; 433 pre = m_path+"/";
420 } 434 }
421 for (it=lst.begin(); it!= lst.end(); ++it ) { 435 for (it=lst.begin(); it!= lst.end(); ++it ) {
422 m_pix = PPixmapCache::self()->cachedImage( pre+(*it), 64, 64 ); 436 m_pix = PPixmapCache::self()->cachedImage( pre+(*it), 64, 64 );
423 _iv = new IconViewItem( m_view, pre+(*it), (*it) ); 437 _iv = new IconViewItem( m_view, pre+(*it), (*it) );
424 if (m_mode==3) { 438 if (m_mode==3) {
425 _iv->setTextOnly(true); 439 _iv->setTextOnly(true);
426 _iv->setPixmap(QPixmap()); 440 _iv->setPixmap(QPixmap());
427 } else { 441 } else {
428 if (m_pix) _iv->setPixmap(*m_pix); 442 if (m_pix) _iv->setPixmap(*m_pix);
429 } 443 }
430 } 444 }
431 445
432} 446}
433 447
434/* 448/*
435 * user clicked on the item. Change dir or view 449 * user clicked on the item. Change dir or view
436 */ 450 */
437void PIconView::slotClicked(QIconViewItem* _it) { 451void PIconView::slotClicked(QIconViewItem* _it) {
438 if(!_it ) 452 if(!_it )