[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenox/konq-embed/dropin
From:       Eva Brucherseifer <eva () kde ! org>
Date:       2006-03-30 20:09:13
Message-ID: 1143749353.217880.23767.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 524624 by eva:

Qtopia:
- Use FileSelector & Co for selecting files
- selecting a save location is not complete yet. Somehow it crashes for
  me when calling updateMemory()


 M  +80 -1     kfiledialog.cpp  
 M  +29 -0     kfiledialog.h  


--- trunk/kdenox/konq-embed/dropin/kfiledialog.cpp #524623:524624
@@ -24,6 +24,7 @@
 
 #include <qlayout.h>
 #include <qconfig.h>
+#include <qlabel.h>
 
 QString KFileDialog::getOpenFileName( const QString &dir,
                                       const QString &filter,
@@ -57,14 +58,16 @@
                                       QWidget *parent, const QString &caption )
 {
 #if defined(_QT_QPE_)
-    QPEFileSelectorWrapper *qpefd = new QPEFileSelectorWrapper( parent );
+    QPEFileSaverWrapper *qpefd = new QPEFileSaverWrapper( dir, parent );
     qpefd->setCaption( caption );
     qpefd->showMaximized();
 
     QString result;
 
     if ( qpefd->exec() == QDialog::Accepted )
+    {
         result = qpefd->selectedPath(); 
+    }
 
     delete qpefd;
 
@@ -118,5 +121,81 @@
     m_path = doc.file();
 }
 
+QPEFileSaverWrapper::QPEFileSaverWrapper( const QString &dir, QWidget *parent, const char *name )
+    : QDialog( parent, name, true )
+{
+#if defined(_QT_QPE_)
+    QVBoxLayout *layout = new QVBoxLayout( this );
+    layout->setMargin(4);
+    layout->setSpacing(4);
+
+    QHBoxLayout* layoutpath = new QHBoxLayout(layout);
+
+    QLabel* label = new QLabel(this);
+    label->setText(tr("Storage"));
+    layoutpath->addWidget(label);
+
+    m_storageCombo = new QComboBox(this);
+    m_storageCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred));
+    layoutpath->addWidget(m_storageCombo);
+
+    QHBoxLayout* layoutfile = new QHBoxLayout(layout);
+   
+    label = new QLabel(this);
+    label->setText(tr("Filename"));
+    layoutfile->addWidget(label);
+
+    m_fileEdit = new QLineEdit(this);
+    m_fileEdit->setText(dir);
+    layoutfile->addWidget(m_fileEdit);
+
+    layout->addStretch();
+
+    storage = new StorageInfo( this );
+//    updateMemory();
+//    connect( storage, SIGNAL( disksChanged() ), SLOT( updateMemory() ) );
+#endif
+}
+
+QPEFileSaverWrapper::~QPEFileSaverWrapper()
+{
+}
+
+
+void QPEFileSaverWrapper::updateMemory()
+{
+    memory.clear();
+
+    // insert all removable disks and the home partion 
+    const QList<FileSystem> &fs = storage->fileSystems();
+    QListIterator<FileSystem> it ( fs );
+    QString homeDir = QDir::homeDirPath();
+    QString homeFs;
+    QString homeFsPath;
+    for ( ; it.current(); ++it ){
+        if ( (*it)->isRemovable() ) {
+        memory.append( (*it)->name() );
+        } else if ( homeDir.contains( (*it)->path() ) &&
+            (*it)->path().length() > homeFsPath.length() ) {
+        homeFs = (*it)->name();
+        homeFsPath = (*it)->path();
+        }
+    }
+
+    // $HOME is *somewhere*, but not shown in Storage::fileSystems(),
+    // eg. because it's mounted in some unexpected way.
+    if ( homeFsPath.isEmpty() ) { 
+        homeFs = StorageInfo::tr("Internal Storage");
+        homeFsPath = homeDir;
+    }
+
+    memory.append( homeFs );
+//    delete m_storageCombo->contextMenu;
+//    contextMenu = 0;
+    m_storageCombo->clear();
+    m_storageCombo->insertStringList(memory);
+}
+
+
 #include "kfiledialog.moc"
 #endif
--- trunk/kdenox/konq-embed/dropin/kfiledialog.h #524623:524624
@@ -30,6 +30,10 @@
 #include <kurl.h>
 #endif
 
+#include <qcombobox.h>
+#include <qlineedit.h>
+
+
 class KFileDialog
 {
 public:
@@ -49,6 +53,7 @@
 
 #if defined(_QT_QPE_)
 #include <qpe/fileselector.h>
+#include <qtopia/storage.h>
 #else
 struct DocLnk
 {
@@ -72,6 +77,30 @@
     QString m_path;
 };
 
+class QPEFileSaverWrapper : public QDialog
+{
+    Q_OBJECT
+public:
+    QPEFileSaverWrapper( const QString& dir, QWidget *parent, const char *name = 0 );
+    virtual ~QPEFileSaverWrapper();
+
+    QString selectedPath() const { return m_storageCombo->currentText(); }
+    QString selectedFilename() const { return m_fileEdit->text(); }
+
+private slots:
+//    void fileSelected( const DocLnk &doc );
+    void updateMemory();
+
+private:
+    StorageInfo *storage;
+    QStringList memory;
+
+    QComboBox* m_storageCombo;
+    QLineEdit* m_fileEdit;
+};
+
+
 #endif
 
+
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic