-rw-r--r-- | libopie/ofileselector/ofileselector.cpp | 15 | ||||
-rw-r--r-- | libopie/ofileselector/olister.cpp | 10 | ||||
-rw-r--r-- | libopie/ofileselector/olister.h | 18 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.cpp | 29 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.h | 5 |
5 files changed, 62 insertions, 15 deletions
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp index 255e79e..9ce07dd 100644 --- a/libopie/ofileselector/ofileselector.cpp +++ b/libopie/ofileselector/ofileselector.cpp @@ -264,4 +264,2 @@ void OFileSelector::setPopupFactory(OPopupMenuFactory */*popup*/ ) -//void OFileSelector::updateL - QString OFileSelector::selectedName() const @@ -273,7 +271,3 @@ QString OFileSelector::selectedName() const }else { - if ( m_shLne ) { - name = m_currentDir + "/" +m_edit->text(); - }else{ - name = m_currentDir + "/" + currentView()->selectedName(); - } + name = currentLister()->selectedName(); } @@ -424,3 +418,2 @@ void OFileSelector::slotLocationActivated(const QString &file) cd(name ); - reparse(); } @@ -456,4 +449,2 @@ void OFileSelector::locationComboChanged() cd( m_location->lineEdit()->text() ); - - reparse(); } @@ -856,2 +847,4 @@ void OFileSelector::cdUP() { + // FIXME won't work on non filesystem based systems + // better call the Olister QDir dir( m_currentDir ); @@ -864,4 +857,2 @@ void OFileSelector::cdUP() m_location->setCurrentItem( indexByString( m_location, m_currentDir)); - //this wont work in all instances - // FIXME } diff --git a/libopie/ofileselector/olister.cpp b/libopie/ofileselector/olister.cpp index ea09940..aaaf6a2 100644 --- a/libopie/ofileselector/olister.cpp +++ b/libopie/ofileselector/olister.cpp @@ -1,2 +1,3 @@ #include <qcombobox.h> +#include <qlineedit.h> @@ -114,2 +115,5 @@ OFileSelector* OLister::view() { } +OFileSelector* OLister::view()const { + return m_view; +} OPixmapProvider* OLister::provider() { @@ -171 +175,7 @@ QString OListerCmbAccess::currentText()const { } +QString OLister::lineEdit()const { + if ( view()->m_shLne ) + return view()->m_edit->text(); + + return QString::null; +} diff --git a/libopie/ofileselector/olister.h b/libopie/ofileselector/olister.h index cd84316..4adb9f8 100644 --- a/libopie/ofileselector/olister.h +++ b/libopie/ofileselector/olister.h @@ -25,3 +25,7 @@ public: virtual ~OLister(); - virtual void reparse(const QString& path) = 0; + + /** + * if path == QString::null reread current dir + */ + virtual void reparse(const QString& path = QString::null ) = 0; @@ -37,2 +41,4 @@ public: virtual void changedDir( const QString& dir, const QString& file, const QString& extra ) = 0; + virtual QString selectedName()const = 0; + virtual QStringList selectedNames()const = 0; protected: @@ -79,2 +85,3 @@ protected: OFileSelector* view(); + OFileSelector* view()const; OPixmapProvider* provider(); @@ -82,2 +89,11 @@ protected: void internChangedDir( const QString& dir ); + + /** + * try to take + * the text from the mainwindows + * lineedit + * if it's not available QString::null + * will be returned + */ + QString lineEdit()const; private: diff --git a/libopie/ofileselector/olocallister.cpp b/libopie/ofileselector/olocallister.cpp index 5d7884d..4d36d64 100644 --- a/libopie/ofileselector/olocallister.cpp +++ b/libopie/ofileselector/olocallister.cpp @@ -7,2 +7,3 @@ #include "ofileselector.h" +#include "ofileview.h" #include "olocallister.h" @@ -12,2 +13,3 @@ OLocalLister::OLocalLister( OFileSelector* file ) { + m_dir = QDir::homeDirPath(); } @@ -53,5 +55,8 @@ QMap<QString, QStringList> OLocalLister::mimeTypes( const QString& curDir ) { */ -void OLocalLister::reparse( const QString& path ) { +void OLocalLister::reparse( const QString& pa ) { + if (!pa.isEmpty() ) + m_dir = pa; + QString currentMimeType; - QDir dir( path ); + QDir dir( m_dir ); @@ -125 +130,21 @@ void OLocalLister::changedDir( const QString& dir, const QString& file, const QS } +/* + * assemble the the Url now + */ +QString OLocalLister::selectedName()const { + QString str = m_dir; + QString name = lineEdit(); + + if ( name.isEmpty() ) + name = view()->currentView()->selectedName(); + + str += "/" + name; + + return str; +} +QStringList OLocalLister::selectedNames()const { + QStringList list; + list << selectedName(); + + return list; +} diff --git a/libopie/ofileselector/olocallister.h b/libopie/ofileselector/olocallister.h index 01e6f3c..0cdf51f 100644 --- a/libopie/ofileselector/olocallister.h +++ b/libopie/ofileselector/olocallister.h @@ -13,2 +13,7 @@ public: void changedDir( const QString& dir, const QString& file,const QString& ); + QString selectedName()const; + QStringList selectedNames()const; + +private: + QString m_dir; }; |