summaryrefslogtreecommitdiff
path: root/libopie/ofileselector
authorzecke <zecke>2002-10-28 19:55:18 (UTC)
committer zecke <zecke>2002-10-28 19:55:18 (UTC)
commit3ba494eb02e72e1f9a732c46ec8085e843f01eca (patch) (side-by-side diff)
treecdc0e7af342cd0e205ed4ae1c1da92ced3fd5774 /libopie/ofileselector
parente9d8023028b7c996d8ff2a68b87dfde19fcfa892 (diff)
downloadopie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.zip
opie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.tar.gz
opie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.tar.bz2
This will probably not compile.. i did not even try to compile it
on my machine I changed the data flow to be more extandable the Olister class is now playing a bigger role it's dependant on doing some assembly of the filepath and changedirs. It now has also to take care of the location bar
Diffstat (limited to 'libopie/ofileselector') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/ofilelistview.cpp20
-rw-r--r--libopie/ofileselector/ofilelistview.h15
-rw-r--r--libopie/ofileselector/ofileselector.cpp25
-rw-r--r--libopie/ofileselector/ofileselectoritem.cpp5
-rw-r--r--libopie/ofileselector/ofileselectoritem.h5
-rw-r--r--libopie/ofileselector/ofileview.cpp14
-rw-r--r--libopie/ofileselector/ofileview.h33
-rw-r--r--libopie/ofileselector/olister.cpp58
-rw-r--r--libopie/ofileselector/olister.h61
-rw-r--r--libopie/ofileselector/olocallister.cpp3
10 files changed, 199 insertions, 40 deletions
diff --git a/libopie/ofileselector/ofilelistview.cpp b/libopie/ofileselector/ofilelistview.cpp
index 691bf42..9cfdc48 100644
--- a/libopie/ofileselector/ofilelistview.cpp
+++ b/libopie/ofileselector/ofilelistview.cpp
@@ -46,6 +46,7 @@ void OFileListView::clear() {
void OFileListView::addFile( const QPixmap& pix,
const QString&,
QFileInfo* info,
+ const QString& /*extra*/,
bool isSymlink ) {
QString dir;
QString name;
@@ -70,11 +71,15 @@ void OFileListView::addFile( const QPixmap& pix,
}
void OFileListView::addFile( const QPixmap&,
const QString& /*mime*/, const QString& /*dir*/,
- const QString& /*file*/, bool /*isSyml*/ ) {
+ const QString& /*file*/,
+ const QString& /*extra*/,
+ bool /*isSyml*/ ) {
}
void OFileListView::addDir( const QPixmap& pix, const QString&,
- QFileInfo* info, bool symlink ) {
+ QFileInfo* info,
+ const QString& /*extra */,
+ bool symlink ) {
bool locked = false;
QString name;
@@ -90,18 +95,23 @@ void OFileListView::addDir( const QPixmap& pix, const QString&,
}
void OFileListView::addDir( const QPixmap&,
const QString& /*mime*/, const QString& /*dir*/,
- const QString& /*file*/, bool ) {
+ const QString& /*file*/,
+ const QString& /*extra*/,
+ bool ) {
}
void OFileListView::addSymlink( const QPixmap&,
const QString& /*mime*/,
QFileInfo* /*info*/,
+ const QString& /*extra*/,
bool /*isSym*/ ) {
}
void OFileListView::addSymlink(const QPixmap&,
const QString& /*m*/, const QString& /*path*/,
- const QString& /*file*/, bool /*isSym*/ ) {
+ const QString& /*file*/,
+ const QString& /*extra*/,
+ bool /*isSym*/ ) {
}
void OFileListView::cd( const QString& ) {
@@ -127,7 +137,7 @@ QString OFileListView::selectedPath()const {
}
QStringList OFileListView::selectedPaths()const {
QStringList list;
- list << selectedPath();
+b list << selectedPath();
return list;
}
int OFileListView::fileCount() {
diff --git a/libopie/ofileselector/ofilelistview.h b/libopie/ofileselector/ofilelistview.h
index c8cdfd1..0f625ec 100644
--- a/libopie/ofileselector/ofilelistview.h
+++ b/libopie/ofileselector/ofilelistview.h
@@ -16,28 +16,37 @@ public:
void addFile( const QPixmap&,
const QString& mine,
QFileInfo* info,
+ const QString& extra = QString::null,
bool isSymlink = FALSE );
void addFile( const QPixmap&,
const QString& mime,
const QString& dir,
const QString& file,
+ const QString& extra = QString::null,
bool = false );
void addDir( const QPixmap&,
const QString& mime,
+ const QString& extra = QString::null,
QFileInfo* info, bool = FALSE );
void addDir( const QPixmap&,
const QString& mime, const QString& dir,
- const QString& file, bool = FALSE );
+ const QString& file,
+ const QString& extra = QString::null,
+ bool = FALSE );
void addSymlink( const QPixmap&,
const QString& mime,
- QFileInfo* info, bool = FALSE );
+ QFileInfo* info,
+ const QString& extra = QString::null,
+ bool = FALSE );
void addSymlink( const QPixmap&,
const QString& mine, const QString& path,
- const QString& file, bool isSymlink = FALSE );
+ const QString& file,
+ const QString& extra,
+ bool isSymlink = FALSE );
void cd( const QString& path );
QWidget* widget();
void sort();
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp
index 4ab744c..0ccb3cb 100644
--- a/libopie/ofileselector/ofileselector.cpp
+++ b/libopie/ofileselector/ofileselector.cpp
@@ -393,21 +393,20 @@ QString OFileSelector::currentMimeType() const{
}
void OFileSelector::slotMimeCheck(const QString &mime)
{
- if( m_selector == Normal ){
- initializeOldSelector();
+ if( m_selector == Normal ){
+ initializeOldSelector();
- updateMimes();
- updateMimeCheck();
- m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
- }else{ // others
- qWarning("Mime %s", mime.latin1() );
- if(m_shChooser ){
- qWarning("Current Text %s", m_mimeCheck->currentText().latin1() );
- //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
+ updateMimes();
+ updateMimeCheck();
+ m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
+ }else{ // others
+ qWarning("Mime %s", mime.latin1() );
+ if(m_shChooser ){
+ qWarning("Current Text %s", m_mimeCheck->currentText().latin1() );
+ //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
+ }
+ reparse();
}
- reparse();
- }
-
}
/*
* Ok if a non dir gets inserted into this combobox
diff --git a/libopie/ofileselector/ofileselectoritem.cpp b/libopie/ofileselector/ofileselectoritem.cpp
index 1e745a1..d31046b 100644
--- a/libopie/ofileselector/ofileselectoritem.cpp
+++ b/libopie/ofileselector/ofileselectoritem.cpp
@@ -6,6 +6,7 @@ OFileSelectorItem::OFileSelectorItem( QListView*view,
const QString& date,
const QString& size,
const QString& dir,
+ const QString& extra,
bool isLocked,
bool isDir )
: QListViewItem( view )
@@ -17,6 +18,7 @@ OFileSelectorItem::OFileSelectorItem( QListView*view,
m_dir = isDir;
m_locked = isLocked;
m_dirStr = dir;
+ m_extra = extra;
}
OFileSelectorItem::~OFileSelectorItem() {
}
@@ -51,3 +53,6 @@ QString OFileSelectorItem::key( int id, bool ) {
return ke;
}
+QString OFileSelector::extra()const {
+ return m_extra;
+}
diff --git a/libopie/ofileselector/ofileselectoritem.h b/libopie/ofileselector/ofileselectoritem.h
index 21460c4..81966ae 100644
--- a/libopie/ofileselector/ofileselectoritem.h
+++ b/libopie/ofileselector/ofileselectoritem.h
@@ -12,6 +12,7 @@ public:
const QString& size,
const QString& dir,
bool isLocked,
+ const QString& extra,
bool isDir = false);
~OFileSelectorItem();
bool isLocked() const;
@@ -19,12 +20,16 @@ public:
bool isDir()const;
QString path()const;
QString key(int id, bool );
+ QString extra()const;
private:
bool m_locked : 1;
bool m_dir : 1;
QString m_dirStr;
+ QString m_extra;
+ class Private;
+ Private* d;
};
#endif
diff --git a/libopie/ofileselector/ofileview.cpp b/libopie/ofileselector/ofileview.cpp
index 38f722c..72d2f60 100644
--- a/libopie/ofileselector/ofileview.cpp
+++ b/libopie/ofileselector/ofileview.cpp
@@ -12,20 +12,14 @@ OFileView::OFileView( OFileSelector* sel)
}
OFileView::~OFileView() {
}
-void OFileView::fileSelected( const QString& s ) {
- m_sel->internFileSelected( s );
-}
-void OFileView::fileSelected( const DocLnk& s) {
- m_sel->internFileSelected( s );
+void OFileView::fileSelected( const QString& dir,const QString& file,const QString& extra ) {
+ m_sel->currentLister()->fileSelected( dir,file,extra );
}
void OFileView::contextMenu() {
m_sel->internContextMenu();
}
-void OFileView::changedDir( const QString& s) {
- m_sel->internChangedDir( s );
-}
-void OFileView::changedDir( const QDir& d ) {
- m_sel->internChangedDir( d );
+void OFileView::changedDir( const QString& s, const QString& file, const QString& extra) {
+ m_sel->currentLister()->changedDir( s, file,extra );
}
OFileSelector* OFileView::selector() const {
return m_sel;
diff --git a/libopie/ofileselector/ofileview.h b/libopie/ofileselector/ofileview.h
index d7ea4a2..808587f 100644
--- a/libopie/ofileselector/ofileview.h
+++ b/libopie/ofileselector/ofileview.h
@@ -56,29 +56,37 @@ public:
virtual void addFile(const QPixmap&,
const QString &mine,
QFileInfo *info,
+ const QString& extra = QString::null,
bool isSymlink = FALSE ) = 0;
virtual void addFile(const QPixmap&,
const QString& mine, const QString& dir,
- const QString& file, bool = FALSE ) = 0;
+ const QString& file,
+ const QString& extra = QString::null,
+ bool = FALSE ) = 0;
virtual void addDir (const QPixmap&,
const QString &mine,
QFileInfo *info,
+ const QString& extra = QString::null,
bool isSymlink = FALSE ) = 0;
virtual void addDir (const QPixmap&,
const QString& mine, const QString& dir,
- const QString& file, bool = FALSE) = 0;
+ const QString& file,
+ const QString& extra = QString::null,
+ bool = FALSE) = 0;
virtual void addSymlink(const QPixmap&,
const QString &mime,
QFileInfo *info,
+ const QString& extra = QString::null,
bool isSymlink = FALSE ) = 0;
virtual void addSymlink(const QPixmap&,
const QString& mine,
const QString& path,
const QString& file,
+ const QString& extra = QString::null,
bool isSymlink = FALSE ) = 0;
virtual void cd(const QString &path ) = 0;
@@ -94,11 +102,22 @@ public:
/*signals:*/
protected:
- void fileSelected(const QString &);
- void fileSelected(const DocLnk & );
- void contextMenu();
- void changedDir(const QString &);
- void changedDir(const QDir & );
+ /**
+ * @param dir The dir name
+ * @param file The file name
+ * @param extra The extra information
+ */
+ void fileSelected(const QString &dir, const QString& file, const QString& extra = QString::nulll);
+ void contextMenu();
+
+ /**
+ *
+ * @param dir The dir name
+ * @param file The file name
+ * @param extra The extra informations
+ */
+ void changedDir(const QString &dir, const QString& file, const QString& extra = QString::null);
+ void changedDir(const QDir & );
/* updates the file name line of the FileSelector */
void updateLine( const QString& );
diff --git a/libopie/ofileselector/olister.cpp b/libopie/ofileselector/olister.cpp
index b6b03cd..378c69d 100644
--- a/libopie/ofileselector/olister.cpp
+++ b/libopie/ofileselector/olister.cpp
@@ -1,3 +1,5 @@
+#include <qcombobox.h>
+
#include "olister.h"
#include "ofileview.h"
#include "opixmapprovider.h"
@@ -5,7 +7,7 @@
OLister::OLister( OFileSelector* view)
- : m_view( view )
+ : m_view( view ), m_acc( 0l )
{
m_prov = new OPixmapProvider( view );
}
@@ -24,6 +26,7 @@ bool OLister::showDirs()const {
}
void OLister::addFile( const QString& mine,
QFileInfo* info,
+ const QString& extra,
bool isSymlink ) {
int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink :
OPixmapProvider::File;
@@ -32,11 +35,13 @@ void OLister::addFile( const QString& mine,
view()->currentView()->addFile( pix,
mine,
info,
+ extra,
isSymlink );
}
void OLister::addFile( const QString& mine,
const QString& path,
const QString& file,
+ const QString& extra,
bool isSymlink ) {
int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink :
OPixmapProvider::File;
@@ -46,10 +51,12 @@ void OLister::addFile( const QString& mine,
mine,
path,
file,
+ extra,
isSymlink );
}
void OLister::addDir( const QString& mine,
QFileInfo* info,
+ const QString& extra,
bool isSymlink ) {
int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink :
OPixmapProvider::Dir;
@@ -57,11 +64,13 @@ void OLister::addDir( const QString& mine,
view()->currentView()->addDir( pix,
mine,
info,
+ extra,
isSymlink );
}
void OLister::addDir( const QString& mine,
const QString& path,
const QString& dir,
+ const QString& extra,
bool isSymlink ) {
int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink :
@@ -72,20 +81,24 @@ void OLister::addDir( const QString& mine,
mine,
path,
dir,
+ extra,
isSymlink );
}
void OLister::addSymlink( const QString& mine,
QFileInfo* info,
+ const QString& extra,
bool isSymlink ) {
QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine, info );
view()->currentView()->addSymlink( pix,
mine,
info,
+ extra,
isSymlink );
}
void OLister::addSymlink( const QString& mine,
const QString& path,
const QString& name,
+ const QString& extra,
bool isSymlink ) {
QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine,
path, name );
@@ -93,6 +106,7 @@ void OLister::addSymlink( const QString& mine,
mine,
path,
name,
+ extra,
isSymlink );
}
OFileSelector* OLister::view() {
@@ -104,3 +118,45 @@ OPixmapProvider* OLister::provider() {
bool OLister::compliesMime( const QString& mime ) {
return view()->compliesMime( mime );
}
+OListerCmbAccess* OLister::comboBox() {
+ if (!m_acc )
+ m_acc = new OListerCmbAccess( view()->m_location );
+
+ return m_acc;
+}
+
+
+OListerCmbAccess::OListerCmbAccess(QComboBox* box )
+ : m_cmb( cmb )
+{}
+OListerCmbAccess::~OListerCmbAccess() {
+}
+void OListerCmbAccess::clear() {
+ if ( m_cmb )
+ m_cmb->clear();
+}
+void OListerCmbAccess::setCurrentItem( const QString& add, bool FORCE_ADD) {
+ if ( !m_cmb ) return;
+
+
+ int c = m_cmb->count();
+ for ( int i = 0; i < m_cmb->count(); i++ ) {
+ if ( m_cmb->text(i) == add ) {
+ bo->setCurrentItem( i );
+ return;
+ }
+ }
+ m_cmb->insertItem(add );
+ m_cmb->setCurrentItem( c );
+}
+void OListerCmbAccess::insert( const QString& str ) {
+ if ( m_cmb )
+ m_cmb->insertItem( str );
+}
+QString OListerCmbAccess::currentText()const {
+ QString str;
+ if (m_cmb )
+ str = m_cmb->currentText();
+
+ return str;
+}
diff --git a/libopie/ofileselector/olister.h b/libopie/ofileselector/olister.h
index 0885525..79d5409 100644
--- a/libopie/ofileselector/olister.h
+++ b/libopie/ofileselector/olister.h
@@ -6,8 +6,11 @@
#include <qstring.h>
#include <qstringlist.h>
+class QComboBox;
class OPixmapProvider;
class OFileSelector;
+
+class OListerCmbAccess;
/**
* lister is something like KIO but very
* very basic and currently only for
@@ -15,6 +18,7 @@ class OFileSelector;
* This is a base class which needs to be implemented.
* @see OLocalLister for a filesystem based implementation
*/
+
class OLister {
public:
OLister( OFileSelector* );
@@ -27,16 +31,32 @@ public:
virtual QMap<QString, QStringList> mimeTypes( const QString& dir ) = 0;
void setPixmapProvider( OPixmapProvider* );
+
+ /* some way a slot */
+ void fileSelected( const QString& dir, const QString& file, const QString& extra ) = 0;
+ void changeDir( const QString& dir, const QString& file, const QString& extra ) = 0;
protected:
+ /**
+ * I hate too big classes
+ * this is a way to group
+ * access to a ComboBox
+ * which might exist or
+ * not in a secure way
+ */
+ OListerCmbAccess* comboBox();
+
bool showFiles()const;
bool showDirs()const;
bool compliesMime( const QString& mime );
void addFile( const QString& mine,
QFileInfo*,
+ const QString& extra = QString::null,
bool isSymlink = FALSE );
+
void addFile( const QString& mine,
const QString& path,
const QString& file,
+ const QString& extra = QString::null,
bool isSymlink = FALSE );
void addDir( const QString& mine,
QFileInfo*,
@@ -44,20 +64,61 @@ protected:
void addDir( const QString& mine,
const QString& path,
const QString& dir,
+ const QString& extra = QString::null,
bool isSymlink = FALSE );
void addSymlink( const QString& mine,
QFileInfo* info,
+ const QString& extra = QString::null,
bool isSymlink = FALSE);
void addSymlink( const QString& mine,
const QString& path,
const QString& name,
+ const QString& extra = QString::null,
bool isSymlink = FALSE );
OFileSelector* view();
OPixmapProvider* provider();
private:
OFileSelector* m_view;
OPixmapProvider* m_prov;
+ OListerCmbAccess* m_acc;
+
+ class Private;
+ Private *d;
+};
+
+class OListerCmbAccess {
+ friend class OLister;
+public:
+ OListerCmbAccess( QComboBox* = 0l);
+ ~OListerCmbAccess();
+
+ /**
+ * clears the combobox
+ */
+ void clear();
+
+ /**
+ * set's @param add to be the current Item
+ * if the item is not present it'll be removed
+ */
+ void setCurrentItem( const QString& add, bool FORECE_ADD = TRUE );
+
+ /**
+ * inserts the the String at
+ * a non predictable position... The position is determined
+ * by the QComboBox code
+ */
+ void insert( const QString& );
+
+ /**
+ *
+ */
+ QString currentText()const;
+private:
+ class Private;
+ Private* d;
+ QComboBox* m_cmb;
};
diff --git a/libopie/ofileselector/olocallister.cpp b/libopie/ofileselector/olocallister.cpp
index 6ffcf1e..2306b14 100644
--- a/libopie/ofileselector/olocallister.cpp
+++ b/libopie/ofileselector/olocallister.cpp
@@ -43,7 +43,8 @@ QMap<QString, QStringList> OLocalLister::mimeTypes( const QString& curDir ) {
return mimes;
}
-/* FIXME mimecheck
+/**
+ * FIXME mimecheck
* use mime check for that
* filter dirs
* filter filters