-rw-r--r-- | libopie/ofileselector.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/libopie/ofileselector.h b/libopie/ofileselector.h index 06ac806..d06aa0a 100644 --- a/libopie/ofileselector.h +++ b/libopie/ofileselector.h @@ -1,311 +1,314 @@ /* This is based on code and ideas of L. J. Potter ljp@llornkcor.com Thanks a lot =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Holger Freyther <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 opiefileselector_h #define opiefileselector_h #include <qwidget.h> #include <qstring.h> #include <qpixmap.h> #include <qstringlist.h> #include <qmap.h> #include <qvaluelist.h> #include <qpe/applnk.h> #include <qlistview.h> -/** This is OPIEs FileDialog Widget. You can use it - * as a dropin replacement of the fileselector and - * or use any of the new features. - * This is also a complete FileSave and FileLoad widget - * If you look for a Dialog check OFileDialog - * - */ + class DocLnk; class QCheckBox; class QComboBox; class QPushButton; class FileSelector; class QGridLayout; class QLineEdit; class QLabel; class QWidgetStack; class QHBoxLayout; class QVBoxLayout; class QPopupMenu; class QFileInfo; class QHBox; // typedef QMap< QString, QStringList> MimeTypes; +/** + * This is OPIEs FileDialog Widget. You can use it + * as a dropin replacement of the fileselector and + * or use any of the new features. + * This is also a complete FileSave and FileLoad widget + * If you look for a Dialog check OFileDialog + * + * NOTE THAT the API will change to be more extendable! + */ class OFileSelector : public QWidget { Q_OBJECT public: /** * The mode of the file selector * Either open, save, fileselector or dir browsing mode * */ enum Mode {OPEN=1, SAVE=2, FILESELECTOR=4, DIR=8 }; /** * Selector. Either NORMAL for the one shipped with * libqpe or EXTENDED. for the EXTENDED * EXTENDED_ALL also shows 'hidden' files */ enum Selector{NORMAL=0, EXTENDED = 1, EXTENDED_ALL =2 }; /** * This is reserved for futrue views */ enum View { DIRS = 1, FILES = 2, TREE = 4, ICON = 8 }; /** * A c'tor which should be used for advanced mode * @param wid the parent * @param mode the Mode of the Selector * @param selector the current View of the Selector * @param dirName in which dir to start * @param fileName a proposed filename * @param mimetypes A list of mimetypes \ * QString is for a identifier name like "Text files" * the coresponding QStringList is used for the mimetypes * if empty it'll fill the list of mimetypes depending * on the content of the current directory */ OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, const QString &fileName = QString::null, const MimeTypes &mimetypes = MimeTypes() ); /** * This is a QPE compatible c'tor */ OFileSelector(const QString &mimeFilter, QWidget *parent, const char *name, bool newVisible = TRUE, bool closeVisible = FALSE ); ~OFileSelector(); // currently only for the FILESELECTOR Mode /** */ void setNewVisible( bool /*b*/ ); void setCloseVisible(bool /*b*/ ); // end file selector mode // deprecated void reread(); // make sure not to leak please const DocLnk *selected(); // end deprecated 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 ); void setToolbarVisible( bool show ); void setPermissionBarVisible( bool show ); void setLineEditVisible(bool show) ; void setChooserVisible( bool chooser ); QCheckBox* permissionCheckbox(); bool setPermission() const; void setPermissionChecked( bool check ); void setMode( int ); bool showDirs()const { return m_dir; } void setShowDirs(bool ); const QListView* listView() { return m_View; }; bool isCaseSensetive()const { return m_case; } void setCaseSensetive(bool caSe ); bool showFiles()const { return m_files; }; void setShowFiles(bool ); bool cd(const QString &path ); int mode()const { return m_mode; }; int selector()const { return m_selector; }; void setSelector( int ); bool showPopup()const { return m_showPopup; }; void setShowPopup( bool pop ) { m_showPopup = pop; }; void setPopupMenu( QPopupMenu * ); // void updateLay(); void reparse(); // re reads the dir QString selectedName( )const; QStringList selectedNames()const; QString selectedPath() const; QStringList selectedPaths() const; QString directory()const; int fileCount() const; /* the user needs to delete it */ DocLnk selectedDocument()const; /* 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(); void contextMenu(); private slots: void slotTest() { qWarning("slotTest" ); setLineEditVisible(false ); }; void slotOk(); void slotCancel(); void slotViewCheck(const QString & ); void slotMimeCheck(const QString & ); void slotLocationActivated(const QString & ); void slotInsertLocationPath(const QString &, int); void locationComboChanged(); private: void init(); void updateMimes(); protected: private: int m_mode, m_selector; QComboBox *m_location, *m_mimeCheck, *m_viewCheck; QPushButton *m_homeButton, *m_docButton, *m_hideButton, *m_ok, *m_cancel; QPushButton *m_reread, *m_up, *m_new, *m_close; QListView *m_View; QCheckBox *m_checkPerm; QWidget *m_pseudo; QVBoxLayout *m_pseudoLayout; QString m_currentDir; QString m_name; // QStringList m_mimetypes; QMap<QString, QStringList> m_mimetypes; FileSelector *m_select; QWidgetStack *m_stack; QVBoxLayout *m_lay; QGridLayout *m_Oselector; QHBox *m_boxToolbar; QHBox *m_boxOk; // (no layout anymore) wait QHBox *m_boxName; // (no Layout anymore) wait QHBox *m_boxView; QPopupMenu *m_custom; QLineEdit *m_edit; QLabel *m_fnLabel; bool m_shClose : 1; bool m_shNew : 1; bool m_shTool : 1; bool m_shPerm : 1; bool m_shLne : 1; bool m_shChooser : 1; bool m_shYesNo : 1; bool m_boCheckPerm : 1; bool m_autoMime : 1; bool m_case : 1; bool m_dir : 1; bool m_files : 1; bool m_showPopup : 1; void initVars(); virtual void addFile(const QString &mime, QFileInfo *info, bool symlink = FALSE ); virtual void addDir( const QString &mime, QFileInfo *info , bool symlink = FALSE ); virtual void addSymlink(const QString &, QFileInfo *, bool = FALSE ){}; void delItems(); void initializeName(); void initializeYes(); void initializeChooser(); void initializeListView(); void initializePerm(); void initPics(); bool compliesMime(const QString &path, const QString &mime); bool compliesMime(const QString& mime ); /** * Updates the QComboBox with the current mimetypes */ void updateMimeCheck(); /** * Returns the current mimetype */ QString currentMimeType()const; class OFileSelectorPrivate; OFileSelectorPrivate *d; static QMap<QString,QPixmap> *m_pixmaps; private slots: void slotFileSelected(const QString & ); // not really meant to be a slot void slotFileBridgeSelected( const DocLnk & ); virtual void slotSelectionChanged(); virtual void slotCurrentChanged(QListViewItem* ); virtual void slotClicked( int, QListViewItem *item, const QPoint &, int); virtual void slotRightButton(int, QListViewItem *, const QPoint &, int ); virtual void slotContextMenu( QListViewItem *item); // listview above // popup below virtual void slotChangedDir(); virtual void slotOpen(); virtual void slotRescan(); virtual void slotRename(); virtual void slotDelete(); virtual void cdUP(); virtual void slotHome(); virtual void slotDoc(); virtual void slotNavigate( ); }; #endif |