summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/fileselector/ofileselector.cpp18
-rw-r--r--libopie2/opieui/fileselector/ofileselector_p.h2
2 files changed, 14 insertions, 6 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp
index 74aca96..dbba4b9 100644
--- a/libopie2/opieui/fileselector/ofileselector.cpp
+++ b/libopie2/opieui/fileselector/ofileselector.cpp
@@ -46,50 +46,50 @@
46/* QT */ 46/* QT */
47#include <qcombobox.h> 47#include <qcombobox.h>
48#include <qdir.h> 48#include <qdir.h>
49#include <qhbox.h> 49#include <qhbox.h>
50#include <qheader.h> 50#include <qheader.h>
51#include <qlabel.h> 51#include <qlabel.h>
52#include <qlayout.h> 52#include <qlayout.h>
53#include <qlineedit.h> 53#include <qlineedit.h>
54#include <qlistview.h> 54#include <qlistview.h>
55#include <qpopupmenu.h> 55#include <qpopupmenu.h>
56#include <qwidgetstack.h> 56#include <qwidgetstack.h>
57#include <qregexp.h> 57#include <qregexp.h>
58#include <qobjectlist.h> 58#include <qobjectlist.h>
59 59
60using namespace Opie::Ui::Internal; 60using namespace Opie::Ui::Internal;
61 61
62namespace Opie { 62namespace Opie {
63namespace Ui { 63namespace Ui {
64namespace Internal { 64namespace Internal {
65/* 65/*
66 * Create a path by adding a '/'/QDir::seperator in between 66 * Create a path by adding a '/'/QDir::seperator in between
67 * base and ending, but only if base is not empty 67 * base and ending, but only if base is not empty
68 */ 68 */
69static inline QString createNewPath(const QString& base, const QString &ending) { 69static inline QString createNewPath(const QString& base, const QString &ending) {
70 return base == QString::fromLatin1("/") ? 70 return base == QString::fromLatin1("/") ?
71 base + ending : base + "/" + ending; 71 base + ending : base + "/" + ending;
72} 72}
73 73
74 74
75OFileViewInterface::OFileViewInterface( OFileSelector* _selector ) 75OFileViewInterface::OFileViewInterface( OFileSelector* _selector )
76 : m_selector( _selector ) 76 : m_selector( _selector )
77{ 77{
78 selector()->registerView( this ); 78 selector()->registerView( this );
79} 79}
80 80
81OFileViewInterface::~OFileViewInterface() 81OFileViewInterface::~OFileViewInterface()
82{} 82{}
83 83
84QString OFileViewInterface::name()const 84QString OFileViewInterface::name()const
85{ 85{
86 return m_name; 86 return m_name;
87} 87}
88 88
89void OFileViewInterface::setName( const QString& name ) 89void OFileViewInterface::setName( const QString& name )
90{ 90{
91 m_name = name; 91 m_name = name;
92} 92}
93 93
94OFileSelector* OFileViewInterface::selector()const 94OFileSelector* OFileViewInterface::selector()const
95{ 95{
@@ -267,68 +267,68 @@ OFileSelectorItem::~OFileSelectorItem()
267 267
268bool OFileSelectorItem::isLocked()const 268bool OFileSelectorItem::isLocked()const
269{ 269{
270 return m_locked; 270 return m_locked;
271} 271}
272 272
273QString OFileSelectorItem::directory()const 273QString OFileSelectorItem::directory()const
274{ 274{
275 return m_dir; 275 return m_dir;
276} 276}
277 277
278bool OFileSelectorItem::isDir()const 278bool OFileSelectorItem::isDir()const
279{ 279{
280 return m_isDir; 280 return m_isDir;
281} 281}
282 282
283QString OFileSelectorItem::path()const 283QString OFileSelectorItem::path()const
284{ 284{
285 return text( 1 ); 285 return text( 1 );
286} 286}
287 287
288QString OFileSelectorItem::key( int id, bool )const 288QString OFileSelectorItem::key( int id, bool )const
289{ 289{
290 QString ke; 290 QString ke;
291 291
292 /* 292 /*
293 * id = 0 ||id == 1 : Sort By Name but Directories at Top 293 * id = 0 ||id == 1 : Sort By Name but Directories at Top
294 * id = 2 : Sort By Size: Prepend '0' to the key 294 * id = 2 : Sort By Size: Prepend '0' to the key
295 */ 295 */
296 if( id == 0 || id == 1 ) 296 if( id == 0 || id == 1 )
297 { // name 297 { // name
298 if( m_isDir ) 298 if( m_isDir )
299 { 299 {
300 ke.append("0" ); 300 ke.append("0" );
301 ke.append( text(1) ); 301 ke.append( text(1) );
302 } 302 }
303 else 303 else
304 { 304 {
305 ke.append("1" ); 305 ke.append("1" );
306 ke.append( text(1) ); 306 ke.append( text(1) );
307 } 307 }
308 return ke; 308 return ke;
309 }else if(id == 2) { 309 }else if(id == 2) {
310 return text(2).rightJustify(20, '0'); 310 return text(2).rightJustify(20, '0');
311 }else 311 }else
312 return text( id ); 312 return text( id );
313 313
314} 314}
315 315
316OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, OFileSelector* sel) 316OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, OFileSelector* sel)
317 :QWidget( parent ), m_sel( sel ) 317 :QWidget( parent ), m_sel( sel )
318{ 318{
319 m_all = false; 319 m_all = false;
320 QVBoxLayout* lay = new QVBoxLayout( this ); 320 QVBoxLayout* lay = new QVBoxLayout( this );
321 m_currentDir = startDir; 321 m_currentDir = startDir;
322 322
323 /* 323 /*
324 * now we add a special bar 324 * now we add a special bar
325 * One Button For Up 325 * One Button For Up
326 * Home 326 * Home
327 * Doc 327 * Doc
328 * And a dropdown menu with FileSystems 328 * And a dropdown menu with FileSystems
329 * FUTURE: one to change dir with lineedit 329 * FUTURE: one to change dir with lineedit
330 * Bookmarks 330 * Bookmarks
331 * Create Dir 331 * Create Dir
332 */ 332 */
333 QHBox* box = new QHBox(this ); 333 QHBox* box = new QHBox(this );
334 box->setBackgroundMode( PaletteButton ); 334 box->setBackgroundMode( PaletteButton );
@@ -342,90 +342,96 @@ OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& st
342 btn = new QToolButton( box ); 342 btn = new QToolButton( box );
343 btn->setIconSet( Resource::loadIconSet("home") ); 343 btn->setIconSet( Resource::loadIconSet("home") );
344 connect(btn, SIGNAL(clicked() ), 344 connect(btn, SIGNAL(clicked() ),
345 this, SLOT( cdHome() ) ); 345 this, SLOT( cdHome() ) );
346 346
347 btn = new QToolButton( box ); 347 btn = new QToolButton( box );
348 btn->setIconSet( Resource::loadIconSet("DocsIcon") ); 348 btn->setIconSet( Resource::loadIconSet("DocsIcon") );
349 connect(btn, SIGNAL(clicked() ), 349 connect(btn, SIGNAL(clicked() ),
350 this, SLOT(cdDoc() ) ); 350 this, SLOT(cdDoc() ) );
351 351
352 m_btnNew = new QToolButton( box ); 352 m_btnNew = new QToolButton( box );
353 m_btnNew->setIconSet( Resource::loadIconSet("new") ); 353 m_btnNew->setIconSet( Resource::loadIconSet("new") );
354 connect(m_btnNew, SIGNAL(clicked() ), 354 connect(m_btnNew, SIGNAL(clicked() ),
355 this, SLOT(slotNew() ) ); 355 this, SLOT(slotNew() ) );
356 356
357 357
358 m_btnClose = new QToolButton( box ); 358 m_btnClose = new QToolButton( box );
359 m_btnClose->setIconSet( Resource::loadIconSet("close") ); 359 m_btnClose->setIconSet( Resource::loadIconSet("close") );
360 connect(m_btnClose, SIGNAL(clicked() ), 360 connect(m_btnClose, SIGNAL(clicked() ),
361 selector(), SIGNAL(closeMe() ) ); 361 selector(), SIGNAL(closeMe() ) );
362 362
363 btn = new QToolButton( box ); 363 btn = new QToolButton( box );
364 btn->setIconSet( Resource::loadIconSet("cardmon/pcmcia") ); 364 btn->setIconSet( Resource::loadIconSet("cardmon/pcmcia") );
365 365
366 m_fsButton = btn;
366 /* let's fill device parts */ 367 /* let's fill device parts */
367 QPopupMenu* pop = new QPopupMenu(this); 368 QPopupMenu* pop = new QPopupMenu(this);
368 connect(pop, SIGNAL( activated(int) ), 369 connect(pop, SIGNAL( activated(int) ),
369 this, SLOT(slotFSActivated(int) ) ); 370 this, SLOT(slotFSActivated(int) ) );
370 371
371 StorageInfo storage; 372 StorageInfo storage;
372 const QList<FileSystem> &fs = storage.fileSystems(); 373 const QList<FileSystem> &fs = storage.fileSystems();
373 QListIterator<FileSystem> it(fs); 374 QListIterator<FileSystem> it(fs);
374 for ( ; it.current(); ++it ) 375 for ( ; it.current(); ++it )
375 { 376 {
376 const QString disk = (*it)->name(); 377 const QString disk = (*it)->name();
377 const QString path = (*it)->path(); 378 const QString path = (*it)->path();
378 m_dev.insert( disk, path ); 379 m_dev.insert( disk, path );
379 pop->insertItem( disk ); 380 pop->insertItem( disk );
380 } 381 }
381 m_fsPop = pop; 382 m_fsPop = pop;
382 383
383 384 connect(btn,SIGNAL(pressed()),this,SLOT(slotFSpressed()));
384 btn->setPopup( pop );
385 385
386 lay->addWidget( box ); 386 lay->addWidget( box );
387 387
388 m_view = new QListView( this ); 388 m_view = new QListView( this );
389 389
390 m_view->installEventFilter(this); 390 m_view->installEventFilter(this);
391 391
392 QPEApplication::setStylusOperation( m_view->viewport(), 392 QPEApplication::setStylusOperation( m_view->viewport(),
393 QPEApplication::RightOnHold); 393 QPEApplication::RightOnHold);
394 m_view->addColumn(" " ); 394 m_view->addColumn(" " );
395 m_view->addColumn(tr("Name"), 135 ); 395 m_view->addColumn(tr("Name"), 135 );
396 m_view->addColumn(tr("Size"), -1 ); 396 m_view->addColumn(tr("Size"), -1 );
397 m_view->addColumn(tr("Date"), 60 ); 397 m_view->addColumn(tr("Date"), 60 );
398 m_view->addColumn(tr("Mime Type"), -1 ); 398 m_view->addColumn(tr("Mime Type"), -1 );
399 399
400 400
401 m_view->setSorting( 1 ); 401 m_view->setSorting( 1 );
402 m_view->setAllColumnsShowFocus( TRUE ); 402 m_view->setAllColumnsShowFocus( TRUE );
403 403
404 lay->addWidget( m_view, 1000 ); 404 lay->addWidget( m_view, 1000 );
405 connectSlots(); 405 connectSlots();
406} 406}
407 407
408void OFileViewFileListView::slotFSpressed()
409{
410 m_fsPop->exec(QPoint( QCursor::pos().x(), QCursor::pos().y()));
411 m_fsButton->setDown(false);
412}
413
408OFileViewFileListView::~OFileViewFileListView() 414OFileViewFileListView::~OFileViewFileListView()
409{ 415{
410} 416}
411 417
412void OFileViewFileListView::slotNew() 418void OFileViewFileListView::slotNew()
413{ 419{
414 DocLnk lnk; 420 DocLnk lnk;
415 emit selector()->newSelected( lnk ); 421 emit selector()->newSelected( lnk );
416} 422}
417 423
418OFileSelectorItem* OFileViewFileListView::currentItem()const 424OFileSelectorItem* OFileViewFileListView::currentItem()const
419{ 425{
420 QListViewItem* item = m_view->currentItem(); 426 QListViewItem* item = m_view->currentItem();
421 if (!item ) 427 if (!item )
422 return 0l; 428 return 0l;
423 429
424 return static_cast<OFileSelectorItem*>(item); 430 return static_cast<OFileSelectorItem*>(item);
425} 431}
426 432
427void OFileViewFileListView::reread( bool all ) 433void OFileViewFileListView::reread( bool all )
428{ 434{
429 m_view->clear(); 435 m_view->clear();
430 436
431 if (selector()->showClose() ) 437 if (selector()->showClose() )
diff --git a/libopie2/opieui/fileselector/ofileselector_p.h b/libopie2/opieui/fileselector/ofileselector_p.h
index 15db916..94216a0 100644
--- a/libopie2/opieui/fileselector/ofileselector_p.h
+++ b/libopie2/opieui/fileselector/ofileselector_p.h
@@ -143,52 +143,54 @@ private:
143}; 143};
144 144
145class OFileViewFileListView : public QWidget 145class OFileViewFileListView : public QWidget
146{ 146{
147 Q_OBJECT 147 Q_OBJECT
148public: 148public:
149 OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector ); 149 OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector );
150 ~OFileViewFileListView(); 150 ~OFileViewFileListView();
151 151
152 OFileSelectorItem* currentItem()const; 152 OFileSelectorItem* currentItem()const;
153 void reread( bool all = false ); 153 void reread( bool all = false );
154 int fileCount()const; 154 int fileCount()const;
155 QString currentDir()const; 155 QString currentDir()const;
156protected: 156protected:
157 bool eventFilter (QObject *o, QEvent *e); 157 bool eventFilter (QObject *o, QEvent *e);
158private slots: 158private slots:
159 void slotNew(); // will emit newSelected 159 void slotNew(); // will emit newSelected
160 void cdUP(); 160 void cdUP();
161 void cdHome(); 161 void cdHome();
162 void cdDoc(); 162 void cdDoc();
163 void changeDir( const QString& ); 163 void changeDir( const QString& );
164 void slotCurrentChanged( QListViewItem* ); 164 void slotCurrentChanged( QListViewItem* );
165 void slotClicked(int, QListViewItem*, const QPoint&, int ); 165 void slotClicked(int, QListViewItem*, const QPoint&, int );
166 void slotFSActivated(int); 166 void slotFSActivated(int);
167 void slotFSpressed();
167 168
168protected: 169protected:
169 OFileSelector* selector(); 170 OFileSelector* selector();
170 171
171private: 172private:
172 QMap<QString, QString> m_dev; 173 QMap<QString, QString> m_dev;
173 bool m_all : 1; 174 bool m_all : 1;
174 OFileSelector* m_sel; 175 OFileSelector* m_sel;
175 QPopupMenu* m_fsPop; 176 QPopupMenu* m_fsPop;
176 bool compliesMime( const QString& ); 177 bool compliesMime( const QString& );
177 QStringList m_mimes; // used in compy mime 178 QStringList m_mimes; // used in compy mime
178 QString m_currentDir; 179 QString m_currentDir;
179 QToolButton *m_btnNew, *m_btnClose; 180 QToolButton *m_btnNew, *m_btnClose;
181 QToolButton *m_fsButton;
180 void connectSlots(); 182 void connectSlots();
181 void addFile( QFileInfo* info, bool symlink = FALSE ); 183 void addFile( QFileInfo* info, bool symlink = FALSE );
182 void addDir ( QFileInfo* info, bool symlink = FALSE ); 184 void addDir ( QFileInfo* info, bool symlink = FALSE );
183 void addSymlink( QFileInfo* info, bool = FALSE ); 185 void addSymlink( QFileInfo* info, bool = FALSE );
184 186
185 187
186private: 188private:
187 QListView* m_view; 189 QListView* m_view;
188}; 190};
189 191
190} 192}
191} 193}
192} 194}
193 195
194#endif 196#endif