summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/ofileselector.cpp15
-rw-r--r--libopie/ofileselector/olister.cpp10
-rw-r--r--libopie/ofileselector/olister.h18
-rw-r--r--libopie/ofileselector/olocallister.cpp29
-rw-r--r--libopie/ofileselector/olocallister.h5
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;
};