author | zecke <zecke> | 2002-04-11 20:30:22 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-04-11 20:30:22 (UTC) |
commit | 2599e347d9444cfa6282fec9f2bfb9df4743d6d2 (patch) (side-by-side diff) | |
tree | f7459dc0763e2023a4cbc9171241fa3e37b3731a | |
parent | 4db8a0f808c4fd931d10af203d94f693e92519f5 (diff) | |
download | opie-2599e347d9444cfa6282fec9f2bfb9df4743d6d2.zip opie-2599e347d9444cfa6282fec9f2bfb9df4743d6d2.tar.gz opie-2599e347d9444cfa6282fec9f2bfb9df4743d6d2.tar.bz2 |
OFileSelector const QStringList -> const QSTringList&
OFileDialog initial version
the layout is broken but don't ask me. I played with the parent
played with manual relayouting.
Currently the setYesCancelVisisble crashes but that's ok for now
OFileDialog provides static methods for
OpenFileName, SaveFileName and DIrFileName
Multiple selection will follow
Maybe a dwarf fixes the problems for me overnight
-rw-r--r-- | libopie/ofiledialog.cc | 110 | ||||
-rw-r--r-- | libopie/ofiledialog.h | 77 | ||||
-rw-r--r-- | libopie/ofileselector.cc | 2 | ||||
-rw-r--r-- | libopie/ofileselector.h | 7 |
4 files changed, 192 insertions, 4 deletions
diff --git a/libopie/ofiledialog.cc b/libopie/ofiledialog.cc new file mode 100644 index 0000000..92b0d0a --- a/dev/null +++ b/libopie/ofiledialog.cc @@ -0,0 +1,110 @@ +/* + =. This file is part of the OPIE Project + .=l. Copyright (c) 2002 <> + .>+-= + _;:, .> :=|. This library is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU Library General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This library is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU +..}^=.= = ; Library General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = Library General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include <qpe/applnk.h> +#include <qstring.h> +#include <qapplication.h> +#include <qlayout.h> + +#include "ofiledialog.h" + +OFileDialog::OFileDialog(const QString &caption, + QWidget *wid, int mode, int selector, + const QString &dirName, + const QString &fileName, + const QStringList &mimetypes ) + : QDialog( wid, "OFileDialog", true ) +{ + QVBoxLayout *lay = new QVBoxLayout(this); + + file = new OFileSelector(0 , mode, selector, + dirName, fileName, + mimetypes ); + lay->addWidget( file ); + //showFullScreen(); + setCaption( caption.isEmpty() ? tr("FileDialog") : caption ); + connect(file, SIGNAL(fileSelected(const QString&) ), + this, SLOT(slotFileSelected(const QString&) ) ); + + connect(file, SIGNAL(dirSelected(const QString &) ), + this, SLOT(slotDirSelected(const QString &) ) ); + showMaximized(); + file->setYesCancelVisible( false ); // relayout +} +QString OFileDialog::mimetype()const +{ + return QString::null; +} +QString OFileDialog::fileName()const +{ + return file->selectedName(); +} +DocLnk OFileDialog::selectedDocument()const +{ + return file->selectedDocument(); +} +QString OFileDialog::getOpenFileName(int selector, + const QString &startDir, + const QString &file, + const QStringList &mimes, + QWidget *wid, + const QString &caption ) +{ + QString ret; + OFileDialog dlg( caption.isEmpty() ? tr("Open") : caption, + wid, OFileSelector::OPEN, selector, startDir, file, mimes); + if( dlg.exec() ) + ret = dlg.fileName(); + + return ret; +} +QString OFileDialog::getSaveFileName(int selector, + const QString &startDir, + const QString &file, + const QStringList &mimes, + QWidget *wid, + const QString &caption ) +{ + QString ret; + OFileDialog dlg( caption.isEmpty() ? tr("Save") : caption, + wid, OFileSelector::SAVE, selector, startDir, file, mimes); + if( dlg.exec() ) + ret = dlg.fileName(); + + return ret; +} + +void OFileDialog::slotFileSelected(const QString & ) +{ + accept(); +} +void OFileDialog::slotDirSelected(const QString & ) +{ + // if mode + //accept(); +} diff --git a/libopie/ofiledialog.h b/libopie/ofiledialog.h new file mode 100644 index 0000000..40d147e --- a/dev/null +++ b/libopie/ofiledialog.h @@ -0,0 +1,77 @@ +/* + =. This file is part of the OPIE Project + .=l. Copyright (c) 2002 zecke <zecke@handhelds.org> + .>+-= + _;:, .> :=|. This library is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU Library General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This library is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU +..}^=.= = ; Library General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = Library General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + + +#ifndef OpieFileDialog_h +#define OpieFileDialog_h + +#include <qdialog.h> + +#include <opie/ofileselector.h> + +class OFileDialog : public QDialog { + Q_OBJECT + public: + OFileDialog(const QString &caption, + QWidget *, int mode, int selector, + const QString &dirName, + const QString &fileName = QString::null, + const QStringList &mimetypes = QStringList() ); + QString mimetype() const; + QString fileName() const; + DocLnk selectedDocument()const; + + // static methods + static QString getOpenFileName(int selector, + const QString& startDir = QString::null, + const QString &fileName = QString::null, + const QStringList& mimefilter = QStringList(), + QWidget *wid = 0, + const QString &caption = QString::null ); + + static QString getSaveFileName(int selector, + const QString& startDir = QString::null, + const QString& fileName = QString::null, + const QStringList& mimefilter = QStringList(), + QWidget *wid = 0, + const QString &caption = QString::null ); + + //let's OFileSelector catch up first + //static QString getExistingDirectory(const QString& startDir = QString::null, + // QWidget *parent = 0, + // const QString& caption = QString::null ); + private: + class OFileDialogPrivate; + OFileDialogPrivate *d; + OFileSelector *file; + + private slots: + void slotFileSelected( const QString & ); + void slotDirSelected(const QString & ); +}; +#endif diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index fbe69ed..bc7c6c2 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc @@ -74,13 +74,13 @@ namespace { } }; OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, - const QString &fileName, const QStringList mimetypes ) : QWidget( wid ) + const QString &fileName, const QStringList &mimetypes ) : QWidget( wid ) { m_selector = selector; m_currentDir = dirName; m_name = fileName; m_mimetypes = mimetypes; if( mimetypes.isEmpty() ) diff --git a/libopie/ofileselector.h b/libopie/ofileselector.h index bf3cb48..5e98a1e 100644 --- a/libopie/ofileselector.h +++ b/libopie/ofileselector.h @@ -113,17 +113,17 @@ class OFileSelectorItem : public QListViewItem { QString m_dir; }; class OFileSelector : public QWidget { Q_OBJECT public: - enum Mode {OPEN=1, SAVE, FILESELECTOR }; + enum Mode {OPEN=1, SAVE=2, FILESELECTOR=4, DIR=8 }; enum Selector{NORMAL=1, EXTENDED = 2, EXTENDED_ALL =4 }; enum View { DIRS = 1, FILES = 2, TREE = 4, ICON = 8 }; - OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, const QString &fileName = QString::null, const QStringList mimetypes = QStringList() ); - + OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, const QString &fileName = QString::null, const QStringList &mimetypes = QStringList() ); + ~OFileSelector() {}; bool isToolbarVisible() const { return m_shTool; }; bool isPermissionBarVisible() const { return m_shPerm; }; bool isLineEditVisible()const { return m_shLne; }; bool isChooserVisible( )const { return m_shChooser; }; bool isYesCancelVisible()const { return m_shYesNo; }; void setYesCancelVisible( bool show ); @@ -177,12 +177,13 @@ class OFileSelector : public QWidget { /* the user needs to delete it */ QValueList<DocLnk> selectedDocuments()const; signals: void fileSelected( const DocLnk & ); void fileSelected( const QString & ); + void dirSelected(const QString &dir ); void closeMe(); void ok(); void cancel(); protected slots: void slotOk(); |