summaryrefslogtreecommitdiff
authorzecke <zecke>2002-09-15 21:22:18 (UTC)
committer zecke <zecke>2002-09-15 21:22:18 (UTC)
commit568c816cc66f1566b8be6ff8d246e7b1465ae61e (patch) (side-by-side diff)
tree3c1d1f9ac7421ae27b18f580670ac1e1b8bf8a92
parentf2594358208bb2ea826bbea6afb0b3aa35947378 (diff)
downloadopie-568c816cc66f1566b8be6ff8d246e7b1465ae61e.zip
opie-568c816cc66f1566b8be6ff8d246e7b1465ae61e.tar.gz
opie-568c816cc66f1566b8be6ff8d246e7b1465ae61e.tar.bz2
ok basicly all old functions are available again
what's now missing is the code switching Listers and views toggling the toolbar filter
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/ofilelistview.cpp85
-rw-r--r--libopie/ofileselector/ofilelistview.h7
-rw-r--r--libopie/ofileselector/ofileselector.cpp283
-rw-r--r--libopie/ofileselector/ofileselector.h39
-rw-r--r--libopie/ofileselector/ofileview.cpp7
-rw-r--r--libopie/ofileselector/ofileview.h2
6 files changed, 153 insertions, 270 deletions
diff --git a/libopie/ofileselector/ofilelistview.cpp b/libopie/ofileselector/ofilelistview.cpp
index 7108a5b..bb15764 100644
--- a/libopie/ofileselector/ofilelistview.cpp
+++ b/libopie/ofileselector/ofilelistview.cpp
@@ -1,4 +1,7 @@
+#include <qheader.h>
+
#include <qpe/mimetype.h>
#include <qpe/resource.h>
+#include <qpe/qpeapplication.h>
@@ -12,3 +15,25 @@ OFileListView::OFileListView( QWidget* parent, OFileSelector* sel)
{
-
+ QPEApplication::setStylusOperation( viewport(),
+ QPEApplication::RightOnHold);
+ addColumn(" " );
+ addColumn(tr("Name"), 135 );
+ addColumn(tr("Size"), -1 );
+ addColumn(tr("Date"), 60 );
+ addColumn(tr("Mime Type"), -1 );
+ QHeader *head = header();
+ head->hide();
+ setSorting( 1 );
+ setAllColumnsShowFocus( TRUE );
+
+ connect(this, SIGNAL(selectionChanged() ),
+ this, SLOT(slotSelectionChanged() ) );
+
+ connect(this, SIGNAL(currentChanged(QListViewItem *) ),
+ this, SLOT(slotCurrentChanged(QListViewItem * ) ) );
+
+ connect(this, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ),
+ this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) );
+
+ connect(this, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )),
+ this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) );
}
@@ -125 +150,59 @@ int OFileListView::fileCount() {
}
+void OFileListView::sort() {
+ QListView::sort();
+}
+void OFileListView::slotSelectionChanged() {
+
+}
+void OFileListView::slotCurrentChanged( QListViewItem* item) {
+ if (!item )
+ return;
+
+ OFileSelectorItem* sel = (OFileSelectorItem*) item;
+
+ qWarning("current changed");
+ if(!sel->isDir() ){
+ updateLine( sel->text(1) );
+
+ if (selector()->mode() == OFileSelector::Fileselector ) {
+ QStringList str = QStringList::split("->", sel->text(1) );
+ QString path =sel->directory() + "/" + str[0].stripWhiteSpace();
+ DocLnk lnk( path );
+ fileSelected(lnk );
+ fileSelected( path );
+ }
+ }
+}
+void OFileListView::slotClicked( int button, QListViewItem* item,
+ const QPoint&, int ) {
+ if ( !item )
+ return;
+
+ if( button != Qt::LeftButton )
+ return;
+
+ OFileSelectorItem *sel = (OFileSelectorItem*)item;
+
+ if(!sel->isLocked() ){
+ QStringList str = QStringList::split("->", sel->text(1) );
+ if( sel->isDir() ){
+ changedDir( sel->directory() + "/" + str[0].stripWhiteSpace() );
+ }else{
+ updateLine( str[0].stripWhiteSpace() );
+ QString path = sel->directory();
+ path += "/";
+ path += str[0].stripWhiteSpace();
+
+ DocLnk lnk( path );
+ fileSelected( path );
+ fileSelected( lnk );
+ }
+ }
+}
+void OFileListView::slotRightButton( int button, QListViewItem* item,
+ const QPoint&, int ) {
+ if (!item || (button != Qt::RightButton ))
+ return;
+
+ /* raise contextmenu */
+}
diff --git a/libopie/ofileselector/ofilelistview.h b/libopie/ofileselector/ofilelistview.h
index c7e9223..a83d70d 100644
--- a/libopie/ofileselector/ofilelistview.h
+++ b/libopie/ofileselector/ofilelistview.h
@@ -34,2 +34,3 @@ public:
QWidget* widget();
+ void sort();
@@ -41,3 +42,7 @@ public:
int fileCount();
-
+private slots:
+ void slotSelectionChanged();
+ void slotCurrentChanged(QListViewItem* );
+ void slotClicked( int, QListViewItem*, const QPoint&, int );
+ void slotRightButton(int, QListViewItem*, const QPoint&, int );
};
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp
index 16ee3ee..98b61f7 100644
--- a/libopie/ofileselector/ofileselector.cpp
+++ b/libopie/ofileselector/ofileselector.cpp
@@ -33,3 +33,3 @@
#include "ofileselector.h"
-
+#include "olister.h"
@@ -38,13 +38,14 @@ QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0;
namespace {
- int indexByString( const QComboBox *box, const QString &str ){
- int index= 0;
- for(int i= 0; i < box->count(); i++ ){
- if( str == box->text(i ) ){
- index= i;
- break;
- }
+ /* let's find the index for a specified string */
+ int indexByString( const QComboBox *box, const QString &str ){
+ int index= 0;
+ for(int i= 0; i < box->count(); i++ ){
+ /* found */
+ if( str == box->text(i ) ){
+ index= i;
+ break;
+ }
+ }
+ return index;
}
- return index;
- }
-
}
@@ -60,3 +61,5 @@ OFileSelector::OFileSelector( QWidget *wid, int mode, int selector,
m_name = fileName;
+
initVars();
+
m_mode = mode;
@@ -65,3 +68,2 @@ OFileSelector::OFileSelector( QWidget *wid, int mode, int selector,
init();
- //QTimer::singleShot(6*1000, this, SLOT( slotTest() ) );
}
@@ -73,2 +75,3 @@ OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent,
{
+ /* update the mimefilter */
if (!mimeFilter.isEmpty() ) {
@@ -156,2 +159,3 @@ void OFileSelector::setToolbarVisible( bool show )
initializeListView(); // FIXME see above waste of memory
+
if(!m_shTool ){
@@ -634,22 +638,2 @@ void OFileSelector::initVars()
}
-void OFileSelector::addFile(const QString &, QFileInfo *info, bool )
-{
- if(!m_files)
- return;
- // if( !compliesMime(info->absFilePath(), mime ) )
- // return;
- MimeType type( info->absFilePath() );
- if (!compliesMime( type.id() ) )
- return;
-
-}
-void OFileSelector::addDir(const QString &, QFileInfo *, bool )
-{
- if(!m_dir)
- return;
-}
-void OFileSelector::delItems()
-{
-
-}
void OFileSelector::initializeName()
@@ -731,2 +715,3 @@ void OFileSelector::initializeChooser()
m_viewCheck->insertItem( tr("All Files") );
+ /* update to custom views */
updateMimeCheck();
@@ -816,28 +801,4 @@ void OFileSelector::initializeListView()
// make a QWidgetStack first so Views can share the Toolbar
- m_View = new QListView( m_pseudo, "Extended view");
- QPEApplication::setStylusOperation( m_View->viewport(),
- QPEApplication::RightOnHold);
- m_View->addColumn(" " );
- m_View->addColumn(tr("Name"), 135 );
- m_View->addColumn(tr("Size"), -1 );
- m_View->addColumn(tr("Date"), 60 );
- m_View->addColumn(tr("Mime Type"), -1 );
- QHeader *header = m_View->header();
- header->hide();
- m_View->setSorting( 1 );
- m_View->setAllColumnsShowFocus( TRUE );
-
- connect(m_View, SIGNAL(selectionChanged() ),
- this, SLOT(slotSelectionChanged() ) );
-
- connect(m_View, SIGNAL(currentChanged(QListViewItem *) ),
- this, SLOT(slotCurrentChanged(QListViewItem * ) ) );
-
- connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ),
- this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) );
-
- connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )),
- this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) );
-
- m_pseudoLayout->addWidget( m_View, 288 );
+
+ // m_pseudoLayout->addWidget( m_View, 288 );
m_stack->addWidget( m_pseudo, Extended );
@@ -851,3 +812,2 @@ void OFileSelector::initializePerm()
m_lay->addWidget( m_checkPerm );
-
}
@@ -859,2 +819,3 @@ void OFileSelector::initPics()
QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
+
QPainter painter( &pm );
@@ -918,6 +879,2 @@ bool OFileSelector::compliesMime( const QString& mime ) {
}
- // dump it now
- //for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
- // qWarning( "%s", (*it).latin1() );
- //}
@@ -947,107 +904,4 @@ void OFileSelector::slotFileBridgeSelected( const DocLnk &lnk )
}
-void OFileSelector::slotSelectionChanged()
-{
-
-}
-void OFileSelector::slotCurrentChanged(QListViewItem* /*item*/ )
-{
- /*
- if( item == 0 )
- return;
- if( m_selector == Extended || m_selector == ExtendedAll ) {
- OFileSelectorItem *sel = (OFileSelectorItem*) item; // start to use the C++ casts ;)
- qWarning("current changed");
- if(!sel->isDir() ){
- if( m_shLne )
- m_edit->setText( sel->text(1) );
-
- if (m_mode == Fileselector ) {
- QStringList str = QStringList::split("->", sel->text(1) );
- QString path =sel->directory() + "/" + str[0].stripWhiteSpace();
- emit fileSelected(path );
- DocLnk lnk( path );
- emit fileSelected(lnk );
- }
- }
- } */
-}
-void OFileSelector::slotClicked( int /*button*/, QListViewItem */*item*/, const QPoint &, int)
-
-{
- /*
- if ( item == 0 )
- return;
-
- if( button != Qt::LeftButton )
- return;
-
- switch( m_selector ){
- default:
- break;
- case Extended: // fall through
- case ExtendedAll:{
- OFileSelectorItem *sel = (OFileSelectorItem*)item;
- if(!sel->isLocked() ){
- QStringList str = QStringList::split("->", sel->text(1) );
- if( sel->isDir() ){
- cd( sel->directory() + "/" + str[0].stripWhiteSpace() );
- // if MODE Dir m_shLne set the Text
- }else{
- if( m_shLne )
- m_edit->setText( str[0].stripWhiteSpace() );
- qWarning("selected here in slot clicked");
- emit fileSelected( sel->directory() + "/" + str[0].stripWhiteSpace() );
- DocLnk lnk( sel->directory() + "/" + str[0].stripWhiteSpace() );
- qWarning("file selected");
- emit fileSelected( lnk );
- }
- }
- break;
- }
- } */
-}
-void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int )
-{
- if( item == 0 )
- return;
- if( button != Qt::RightButton )
- return;
- slotContextMenu( item );
-}
-void OFileSelector::slotContextMenu( QListViewItem */*item*/)
-{
-
-}
-void OFileSelector::slotChangedDir()
-{
- /*
- OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem();
- if(sel->isDir() ){
- QStringList str = QStringList::split("->", sel->text(1) );
- cd( sel->directory() + "/" + str[0].stripWhiteSpace() );
- }
- */
-}
-void OFileSelector::slotOpen()
-{
- /*
- OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem();
- if(!sel->isDir() ){
- QStringList str = QStringList::split("->", sel->text(1) );
- slotFileSelected( sel->directory() +"/" +str[0].stripWhiteSpace() );
- qWarning("slot open");
- // DocLnk lnk( sel->directory() + "/" + str[0].stripWhiteSpace() );
- //emit fileSelected( lnk );
- }
- */
-}
-void OFileSelector::slotRescan()
-{
-}
-void OFileSelector::slotRename()
-{
- reparse();
-}
void OFileSelector::slotDelete()
@@ -1103,6 +957,5 @@ void OFileSelector::reparse()
return;
- if( m_selector == Extended || m_selector == ExtendedAll )
- m_View->clear();
- else // custom view
- ; // currentView()->clear();
+
+ currentView()->clear();
+
if( m_shChooser)
@@ -1111,2 +964,3 @@ void OFileSelector::reparse()
QString currentMimeType;
+
// let's update the mimetype
@@ -1120,21 +974,4 @@ void OFileSelector::reparse()
// let's find possible mimetypes
- QDir dir( m_currentDir );
- dir.setFilter( QDir::Files | QDir::Readable );
- dir.setSorting( QDir::Size );
- const QFileInfoList *list = dir.entryInfoList();
- QFileInfoListIterator it( *list );
- QFileInfo *fi;
- while( (fi=it.current() ) ) {
- if( fi->extension() == QString::fromLatin1("desktop") ){
- ++it;
- continue;
- }
- MimeType type( fi->absFilePath() );
- if( !m_mimetypes.contains( type.id() ) ){
- //qWarning("Type %s", type.id().latin1() );
- m_mimetypes.insert( type.id(), type.id() );
- }
-
- ++it;
- }
+ m_mimetypes = currentLister()->mimeTypes( m_currentDir );
+
// add them to the chooser
@@ -1147,6 +984,5 @@ void OFileSelector::reparse()
- if( m_shChooser ){
+ if( m_shChooser )
currentMimeType = m_mimeCheck->currentText();
-// updateMimeCheck();
- }
+
}
@@ -1154,58 +990,7 @@ void OFileSelector::reparse()
- QDir dir( m_currentDir );
+ currentLister()->reparse( m_currentDir );
+ /* we're done with adding let's sort */
+ currentView()->sort();
+
- int sort;
- if ( m_case )
- sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed);
- else
- sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed);
- dir.setSorting( sort );
-
- int filter;
- if( m_selector == ExtendedAll /*|| m_selector ==CUSTOM_ALL */ ){
- filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All;
- }else
- filter = QDir::Files | QDir::Dirs | QDir::All;
- dir.setFilter( filter );
-
- // now go through all files
- const QFileInfoList *list = dir.entryInfoList();
- QFileInfoListIterator it( *list );
- QFileInfo *fi;
- while( (fi=it.current() ) ){
- //qWarning("True and only" );
- if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){
- //qWarning(".. or ." );
- ++it;
- continue;
- }
- if( fi->isSymLink() ){
- QString file = fi->dirPath( true ) + "/" + fi->readLink();
- for( int i = 0; i<=4; i++) { // 5 tries to prevent dos
- QFileInfo info( file );
- if( !info.exists() ){
- addSymlink( currentMimeType, fi, TRUE );
- break;
- }else if( info.isDir() ){
- addDir( currentMimeType, fi, TRUE );
- break;
- }else if( info.isFile() ){
- addFile( currentMimeType, fi, TRUE );
- break;
- }else if( info.isSymLink() ){
- file = info.dirPath(true ) + "/" + info.readLink() ;
- break;
- }else if( i == 4){
- addSymlink( currentMimeType, fi );
- }
- } // off for loop
- }else if( fi->isDir() ){
- addDir( currentMimeType, fi );
- }else if( fi->isFile() ){
- addFile( currentMimeType, fi );
- }
- //qWarning( "%s", fi->fileName().latin1() );
- ++it;
- } // of while loop
- m_View->sort();
if( m_shTool ){
@@ -1254,2 +1039,3 @@ void OFileSelector::internChangedDir( const QString& s) {
emit dirSelected( s );
+ cd(s );
}
@@ -1262 +1048,4 @@ QPixmap OFileSelector::pixmap( const QString& s ) {
}
+OLister* OFileSelector::currentLister()const {
+ return 0l;
+}
diff --git a/libopie/ofileselector/ofileselector.h b/libopie/ofileselector/ofileselector.h
index 12af732..a7b363f 100644
--- a/libopie/ofileselector/ofileselector.h
+++ b/libopie/ofileselector/ofileselector.h
@@ -70,2 +70,3 @@ class QHBox;
class OFileView;
+class OLister;
//
@@ -339,2 +340,3 @@ class OFileSelector : public QWidget {
OFileView* currentView()const;
+ OLister* currentLister()const;
int filter();
@@ -371,5 +373,14 @@ class OFileSelector : public QWidget {
int m_mode, m_selector;
- QComboBox *m_location, *m_mimeCheck, *m_viewCheck;
- QPushButton *m_homeButton, *m_docButton, *m_hideButton, *m_ok, *m_cancel;
- QPushButton *m_reread, *m_up, *m_new, *m_close;
+ QComboBox *m_location,
+ *m_mimeCheck,
+ *m_viewCheck;
+
+ QPushButton *m_homeButton,
+ *m_docButton,
+ *m_hideButton,
+ *m_ok, *m_cancel;
+ QPushButton *m_reread,
+ *m_up,
+ *m_new,
+ *m_close;
QListView *m_View;
@@ -379,5 +390,4 @@ class OFileSelector : public QWidget {
- QString m_currentDir;
- QString m_name;
-// QStringList m_mimetypes;
+ QString m_currentDir;
+ QString m_name;
QMap<QString, QStringList> m_mimetypes;
@@ -390,4 +400,4 @@ class OFileSelector : public QWidget {
QHBox *m_boxToolbar;
- QHBox *m_boxOk; // (no layout anymore) wait
- QHBox *m_boxName; // (no Layout anymore) wait
+ QHBox *m_boxOk;
+ QHBox *m_boxName;
QHBox *m_boxView;
@@ -414,5 +424,3 @@ class OFileSelector : public QWidget {
void initVars();
- virtual void addFile(const QString &mime, QFileInfo *info, bool symlink = FALSE );
- virtual void addDir( const QString &mime, QFileInfo *info , bool symlink = FALSE );
- virtual void addSymlink(const QString &, QFileInfo *, bool = FALSE ){};
+
void delItems();
@@ -443,13 +451,4 @@ private slots:
void slotFileBridgeSelected( const DocLnk & );
- virtual void slotSelectionChanged();
- virtual void slotCurrentChanged(QListViewItem* );
- virtual void slotClicked( int, QListViewItem *item, const QPoint &, int);
- virtual void slotRightButton(int, QListViewItem *, const QPoint &, int );
- virtual void slotContextMenu( QListViewItem *item);
// listview above
// popup below
- virtual void slotChangedDir();
- virtual void slotOpen();
- virtual void slotRescan();
- virtual void slotRename();
virtual void slotDelete();
diff --git a/libopie/ofileselector/ofileview.cpp b/libopie/ofileselector/ofileview.cpp
index 9bb40c9..38f722c 100644
--- a/libopie/ofileselector/ofileview.cpp
+++ b/libopie/ofileselector/ofileview.cpp
@@ -1 +1,3 @@
+#include <qlineedit.h>
+
#include <qpe/applnk.h>
@@ -3,3 +5,2 @@
#include "ofileselector.h"
-
#include "ofileview.h"
@@ -31 +32,5 @@ OFileSelector* OFileView::selector() const {
}
+void OFileView::updateLine( const QString& str ) {
+ if (m_sel->m_shLne )
+ m_sel->m_edit->setText( str );
+}
diff --git a/libopie/ofileselector/ofileview.h b/libopie/ofileselector/ofileview.h
index 1b397f5..a4b1748 100644
--- a/libopie/ofileselector/ofileview.h
+++ b/libopie/ofileselector/ofileview.h
@@ -83,2 +83,3 @@ public:
virtual int fileCount() = 0;
+ virtual void sort() =0;
@@ -92,2 +93,3 @@ protected:
void changedDir(const QDir & );
+ void updateLine( const QString& );
OFileSelector* selector()const;