[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