summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/odefaultfactories.cpp15
-rw-r--r--libopie/ofileselector/odefaultfactories.h14
-rw-r--r--libopie/ofileselector/ofileselector.cpp34
-rw-r--r--libopie/ofileselector/ofileselector.h4
4 files changed, 50 insertions, 17 deletions
diff --git a/libopie/ofileselector/odefaultfactories.cpp b/libopie/ofileselector/odefaultfactories.cpp
new file mode 100644
index 0000000..c41fbca
--- a/dev/null
+++ b/libopie/ofileselector/odefaultfactories.cpp
@@ -0,0 +1,15 @@
1#include "ofilelistview.h"
2#include "olocallister.h"
3
4#include "odefaultfactories.h"
5
6extern "C" {
7
8 OFileView* newFileListView( OFileSelector* sel, QWidget* par ) {
9 return new OFileListView(par, sel );
10 }
11 OLister* newLocalLister( OFileSelector* sel) {
12 return new OLocalLister( sel );
13 }
14
15};
diff --git a/libopie/ofileselector/odefaultfactories.h b/libopie/ofileselector/odefaultfactories.h
new file mode 100644
index 0000000..eb698d3
--- a/dev/null
+++ b/libopie/ofileselector/odefaultfactories.h
@@ -0,0 +1,14 @@
1#ifndef OPIE_DEFAULT_FACTORIES_H
2#define OPIE_DEFAULT_FACTORIES_H
3
4#include "ofilefactory.h"
5
6extern "C" {
7
8 OFileView* newFileListView( OFileSelector*, QWidget* parent );
9 OLister* newLocalLister(OFileSelector* );
10
11};
12
13
14#endif
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp
index 458d432..91a510f 100644
--- a/libopie/ofileselector/ofileselector.cpp
+++ b/libopie/ofileselector/ofileselector.cpp
@@ -25,24 +25,25 @@
25#include <qpe/resource.h> 25#include <qpe/resource.h>
26#include <qpe/storage.h> 26#include <qpe/storage.h>
27 27
28#include <unistd.h> 28#include <unistd.h>
29#include <stdlib.h> 29#include <stdlib.h>
30#include <sys/stat.h> 30#include <sys/stat.h>
31 31
32#include "ofileview.h" 32#include "ofileview.h"
33#include "ofileselectormain.h" 33#include "ofileselectormain.h"
34#include "ofileselector.h" 34#include "ofileselector.h"
35#include "olocallister.h" 35#include "olocallister.h"
36#include "olister.h" 36#include "olister.h"
37#include "odefaultfactories.h"
37 38
38QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; 39QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0;
39 40
40namespace { 41namespace {
41 /* let's find the index for a specified string */ 42 /* let's find the index for a specified string */
42 int indexByString( const QComboBox *box, const QString &str ){ 43 int indexByString( const QComboBox *box, const QString &str ){
43 int index= 0; 44 int index= 0;
44 for(int i= 0; i < box->count(); i++ ){ 45 for(int i= 0; i < box->count(); i++ ){
45 /* found */ 46 /* found */
46 if( str == box->text(i ) ){ 47 if( str == box->text(i ) ){
47 index= i; 48 index= i;
48 break; 49 break;
@@ -288,27 +289,25 @@ QStringList OFileSelector::selectedNames()const
288 } 289 }
289 return list; 290 return list;
290} 291}
291/** If mode is set to the Dir selection this will return the selected path. 292/** If mode is set to the Dir selection this will return the selected path.
292 * 293 *
293 * 294 *
294 */ 295 */
295QString OFileSelector::selectedPath()const 296QString OFileSelector::selectedPath()const
296{ 297{
297 QString path; 298 QString path;
298 if( m_selector == Normal ){ 299 if( m_selector == Normal ){
299 path = QPEApplication::documentDir(); 300 path = QPEApplication::documentDir();
300 } /*else if( m_selector == Extended || m_selector == ExtendedAll ){ 301 } /* normal case to do */
301 ;
302 }*/
303 return path; 302 return path;
304} 303}
305QStringList OFileSelector::selectedPaths() const 304QStringList OFileSelector::selectedPaths() const
306{ 305{
307 QStringList list; 306 QStringList list;
308 list << selectedPath(); 307 list << selectedPath();
309 return list; 308 return list;
310} 309}
311QString OFileSelector::directory()const 310QString OFileSelector::directory()const
312{ 311{
313 if( m_selector == Normal ) 312 if( m_selector == Normal )
314 return QPEApplication::documentDir(); 313 return QPEApplication::documentDir();
@@ -363,33 +362,26 @@ void OFileSelector::slotOk()
363} 362}
364void OFileSelector::slotCancel() 363void OFileSelector::slotCancel()
365{ 364{
366 emit cancel(); 365 emit cancel();
367} 366}
368/* switch the views */ 367/* switch the views */
369void OFileSelector::slotViewCheck(const QString &sel) 368void OFileSelector::slotViewCheck(const QString &sel)
370{ 369{
371 if( sel == tr("Documents" ) ){ 370 if( sel == tr("Documents" ) ){
372 initializeOldSelector(); 371 initializeOldSelector();
373 m_selector = Normal; 372 m_selector = Normal;
374 373
375 }else if( sel == tr("Files") ){ 374 }else {
376 m_selector = Extended; 375;
377
378 // FIXME call the factory
379 //reparse();
380 }else if( sel == tr("All Files") ){
381 m_selector = ExtendedAll;
382/* see above
383 reparse(); */
384 } 376 }
385} 377}
386 378
387QString OFileSelector::currentMimeType() const{ 379QString OFileSelector::currentMimeType() const{
388 QString mime; 380 QString mime;
389 QString currentText; 381 QString currentText;
390 if (m_shChooser && m_mimeCheck ) 382 if (m_shChooser && m_mimeCheck )
391 currentText = m_mimeCheck->currentText(); 383 currentText = m_mimeCheck->currentText();
392 384
393 qWarning("CurrentText" + currentText ); 385 qWarning("CurrentText" + currentText );
394 if (tr("All") == currentText ) return QString::null; 386 if (tr("All") == currentText ) return QString::null;
395 else if (currentText.isEmpty() ) { 387 else if (currentText.isEmpty() ) {
@@ -465,24 +457,25 @@ void OFileSelector::locationComboChanged()
465{ 457{
466 QFileInfo info( m_location->lineEdit()->text() ); 458 QFileInfo info( m_location->lineEdit()->text() );
467 qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() ); 459 qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() );
468 if (info.isFile() ) 460 if (info.isFile() )
469 cd(info.dirPath(TRUE) ); //absolute path 461 cd(info.dirPath(TRUE) ); //absolute path
470 else 462 else
471 cd( m_location->lineEdit()->text() ); 463 cd( m_location->lineEdit()->text() );
472 464
473 reparse(); 465 reparse();
474} 466}
475void OFileSelector::init() 467void OFileSelector::init()
476{ 468{
469 initFactory();
477 m_lay = new QVBoxLayout( this ); 470 m_lay = new QVBoxLayout( this );
478 m_lay->setSpacing(0 ); 471 m_lay->setSpacing(0 );
479 472
480 /* take care of the main view... */ 473 /* take care of the main view... */
481 initToolbar(); 474 initToolbar();
482 475
483 /* initialize the file lister */ 476 /* initialize the file lister */
484 initLister(); 477 initLister();
485 if( m_selector == Normal ){ 478 if( m_selector == Normal ){
486 QString mime; 479 QString mime;
487 if (!m_autoMime) { 480 if (!m_autoMime) {
488 if (!m_mimetypes.isEmpty() ) { 481 if (!m_mimetypes.isEmpty() ) {
@@ -644,28 +637,24 @@ void OFileSelector::updateMimeCheck() {
644 } 637 }
645} 638}
646 639
647void OFileSelector::initializeChooser() 640void OFileSelector::initializeChooser()
648{ 641{
649 if( m_boxView == 0 ){ 642 if( m_boxView == 0 ){
650 m_boxView = new QHBox( this ); 643 m_boxView = new QHBox( this );
651 m_viewCheck = new QComboBox( m_boxView, "view check"); 644 m_viewCheck = new QComboBox( m_boxView, "view check");
652 m_mimeCheck = new QComboBox( m_boxView, "mime check"); 645 m_mimeCheck = new QComboBox( m_boxView, "mime check");
653 m_boxView->setSpacing( 8 ); 646 m_boxView->setSpacing( 8 );
654 m_lay->addWidget(m_boxView, 0 ); 647 m_lay->addWidget(m_boxView, 0 );
655 648
656 m_viewCheck->insertItem( tr("Documents") );
657 m_viewCheck->insertItem( tr("Files") );
658 m_viewCheck->insertItem( tr("All Files") );
659 /* update to custom views */
660 649
661 updateMimeCheck(); 650 updateMimeCheck();
662 651
663 connect( m_viewCheck, SIGNAL( activated(const QString & ) ), 652 connect( m_viewCheck, SIGNAL( activated(const QString & ) ),
664 this, SLOT( slotViewCheck(const QString & ) ) ); 653 this, SLOT( slotViewCheck(const QString & ) ) );
665 connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), 654 connect( m_mimeCheck, SIGNAL( activated(const QString & ) ),
666 this, SLOT( slotMimeCheck( const QString & ) ) ); 655 this, SLOT( slotMimeCheck( const QString & ) ) );
667 } 656 }
668} 657}
669/* generate the buttons for the toolbar */ 658/* generate the buttons for the toolbar */
670void OFileSelector::initToolbar() { 659void OFileSelector::initToolbar() {
671 m_mainView = new OFileSelectorMain( this ); 660 m_mainView = new OFileSelectorMain( this );
@@ -942,24 +931,35 @@ void OFileSelector::reparse()
942 currentLister()->reparse( m_currentDir ); 931 currentLister()->reparse( m_currentDir );
943 /* we're done with adding let's sort */ 932 /* we're done with adding let's sort */
944 currentView()->sort(); 933 currentView()->sort();
945 934
946 935
947 if( m_shTool ){ 936 if( m_shTool ){
948 m_location->insertItem( m_currentDir ); 937 m_location->insertItem( m_currentDir );
949 938
950 } 939 }
951 // reenable painting and updates 940 // reenable painting and updates
952} 941}
953 942
943/*
944 * the factory
945 */
946void OFileSelector::initFactory() {
947 m_fileFactory = new OFileFactory();
948 m_fileFactory->addLister(tr("Files"), newLocalLister );
949 m_fileFactory->addView(tr("List View"), newFileListView );
950 /* the factory is just a dummy */
951 m_fileFactory->addView(tr("Documents"), newFileListView );
952}
953
954 954
955OFileView* OFileSelector::currentView() { 955OFileView* OFileSelector::currentView() {
956 return m_fileView; 956 return m_fileView;
957} 957}
958OFileView* OFileSelector::currentView() const{ 958OFileView* OFileSelector::currentView() const{
959 return m_fileView; 959 return m_fileView;
960} 960}
961int OFileSelector::filter() { 961int OFileSelector::filter() {
962 int filter; 962 int filter;
963 if ( m_selector == ExtendedAll ) 963 if ( m_selector == ExtendedAll )
964 filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; 964 filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All;
965 else 965 else
@@ -1004,21 +1004,21 @@ void OFileSelector::initializeOldSelector() {
1004 qWarning("initializeOldSelector"); 1004 qWarning("initializeOldSelector");
1005 1005
1006 delete m_select; 1006 delete m_select;
1007 1007
1008 // we need to initialize but keep the selected mimetype 1008 // we need to initialize but keep the selected mimetype
1009 /* we default not to show close and new buttons */ 1009 /* we default not to show close and new buttons */
1010 QString mime = currentMimeType(); 1010 QString mime = currentMimeType();
1011 qWarning("MimeType " + mime ); 1011 qWarning("MimeType " + mime );
1012 m_select = new FileSelector( mime , 1012 m_select = new FileSelector( mime ,
1013 m_mainView, "fileselector", 1013 m_mainView, "fileselector",
1014 FALSE, FALSE); 1014 FALSE, FALSE);
1015 m_select->setCategorySelectVisible( FALSE ); 1015 m_select->setCategorySelectVisible( FALSE );
1016 m_select->setTypeComboVisible( FALSE ); 1016 m_select->setTypeComboVisible( FALSE );
1017 1017
1018 connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), 1018 connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ),
1019 this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); 1019 this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) );
1020 connect(m_select, SIGNAL(closeMe() ), 1020 connect(m_select, SIGNAL(closeMe() ),
1021 this, SIGNAL(closeMe() ) ); 1021 this, SIGNAL(closeMe() ) );
1022 //connect to close me and other signals as well 1022 //connect to close me and other signals as well
1023 m_mainView->setWidget( m_select ); 1023 m_mainView->setWidget( m_select );
1024} 1024}
diff --git a/libopie/ofileselector/ofileselector.h b/libopie/ofileselector/ofileselector.h
index bf9a26b..3e834fb 100644
--- a/libopie/ofileselector/ofileselector.h
+++ b/libopie/ofileselector/ofileselector.h
@@ -61,24 +61,25 @@ class QPushButton;
61class QGridLayout; 61class QGridLayout;
62class QLineEdit; 62class QLineEdit;
63class QLabel; 63class QLabel;
64class QWidgetStack; 64class QWidgetStack;
65class QHBoxLayout; 65class QHBoxLayout;
66class QVBoxLayout; 66class QVBoxLayout;
67class QPopupMenu; 67class QPopupMenu;
68class QFileInfo; 68class QFileInfo;
69class QHBox; 69class QHBox;
70class OFileView; 70class OFileView;
71class OLister; 71class OLister;
72class OFileSelectorMain; 72class OFileSelectorMain;
73class OFileFactory;
73// 74//
74 75
75/* the mimetypes one name and a list of mimetypes */ 76/* the mimetypes one name and a list of mimetypes */
76typedef QMap< QString, QStringList> MimeTypes; 77typedef QMap< QString, QStringList> MimeTypes;
77 78
78/** 79/**
79 * FIXME later 80 * FIXME later
80 */ 81 */
81struct OPopupMenuFactory { 82struct OPopupMenuFactory {
82 OPopupMenuFactory() {} 83 OPopupMenuFactory() {}
83 84
84}; 85};
@@ -331,24 +332,25 @@ class OFileSelector : public QWidget {
331 /** 332 /**
332 * fileCount 333 * fileCount
333 */ 334 */
334 int fileCount(); 335 int fileCount();
335 336
336 DocLnk selectedDocument()const; 337 DocLnk selectedDocument()const;
337 338
338 QValueList<DocLnk> selectedDocuments()const; 339 QValueList<DocLnk> selectedDocuments()const;
339 340
340 OFileView* currentView(); 341 OFileView* currentView();
341 OFileView* currentView()const; 342 OFileView* currentView()const;
342 OLister* currentLister()const; 343 OLister* currentLister()const;
344 OFileFactory* factory();
343 int filter(); 345 int filter();
344 int sorting(); 346 int sorting();
345 QPixmap pixmap( const QString& ); 347 QPixmap pixmap( const QString& );
346 /* our tool bar */ 348 /* our tool bar */
347 QWidget* toolBar(); 349 QWidget* toolBar();
348 350
349 signals: 351 signals:
350 void fileSelected( const DocLnk & ); 352 void fileSelected( const DocLnk & );
351 void fileSelected( const QString & ); 353 void fileSelected( const QString & );
352 void dirSelected(const QString &dir ); 354 void dirSelected(const QString &dir );
353 void dirSelected( const QDir& ); 355 void dirSelected( const QDir& );
354 void closeMe(); 356 void closeMe();
@@ -363,24 +365,25 @@ class OFileSelector : public QWidget {
363 void slotMimeCheck(const QString & ); 365 void slotMimeCheck(const QString & );
364 void slotLocationActivated(const QString & ); 366 void slotLocationActivated(const QString & );
365 void slotInsertLocationPath(const QString &, int); 367 void slotInsertLocationPath(const QString &, int);
366 void locationComboChanged(); 368 void locationComboChanged();
367 369
368 private: 370 private:
369 void init(); 371 void init();
370 void updateMimes(); 372 void updateMimes();
371 373
372 374
373 private: 375 private:
374 376
377 OFileFactory* m_fileFactory;
375 OFileSelectorMain* m_mainView; 378 OFileSelectorMain* m_mainView;
376 OLister* m_lister; 379 OLister* m_lister;
377 OFileView* m_fileView; 380 OFileView* m_fileView;
378 FileSelector* m_select; 381 FileSelector* m_select;
379 int m_mode, m_selector; 382 int m_mode, m_selector;
380 QComboBox *m_location, 383 QComboBox *m_location,
381 *m_mimeCheck, 384 *m_mimeCheck,
382 *m_viewCheck; 385 *m_viewCheck;
383 386
384 QPushButton *m_homeButton, 387 QPushButton *m_homeButton,
385 *m_docButton, 388 *m_docButton,
386 *m_hideButton, 389 *m_hideButton,
@@ -438,24 +441,25 @@ class OFileSelector : public QWidget {
438 const QString &mime); 441 const QString &mime);
439 bool compliesMime(const QString& mime ); 442 bool compliesMime(const QString& mime );
440 /** 443 /**
441 * Updates the QComboBox with the current mimetypes 444 * Updates the QComboBox with the current mimetypes
442 */ 445 */
443 void updateMimeCheck(); 446 void updateMimeCheck();
444 447
445 void initializeOldSelector(); 448 void initializeOldSelector();
446 void initLister(); 449 void initLister();
447 void initToolbar(); 450 void initToolbar();
448 void initLocations(); 451 void initLocations();
449 void initializeView() {}; // FIXME 452 void initializeView() {}; // FIXME
453 void initFactory();
450 /** 454 /**
451 * Returns the current mimetype 455 * Returns the current mimetype
452 */ 456 */
453 QString currentMimeType()const; 457 QString currentMimeType()const;
454 class OFileSelectorPrivate; 458 class OFileSelectorPrivate;
455 OFileSelectorPrivate *d; 459 OFileSelectorPrivate *d;
456 static QMap<QString,QPixmap> *m_pixmaps; 460 static QMap<QString,QPixmap> *m_pixmaps;
457 461
458private slots: 462private slots:
459 void slotFileSelected(const QString & ); // not really meant to be a slot 463 void slotFileSelected(const QString & ); // not really meant to be a slot
460 void slotFileBridgeSelected( const DocLnk & ); 464 void slotFileBridgeSelected( const DocLnk & );
461 // listview above 465 // listview above