Home

qtdirectorybrowser.h

This is the verbatim text of the qtdirectorybrowser.h include file. It is provided only for illustration; the copyright remains with Trolltech.


#ifndef QDIRECTORYBROWSER_H
#define QDIRECTORYBROWSER_H

#include <qlistview.h>
#include <qfileinfo.h>
#include <qstringlist.h>
#include <qfont.h>
#include <qfiledialog.h> //for QFileIconProvider

class QtDirectoryBrowser;
class QtDirectoryBrowserPrivate;
class QtDirectoryBrowserItemPrivate;
class QtDirectoryBrowserItemDirectory;

#if defined(Q_WS_WIN)
#  if !defined(QT_QTDIRECTORYBROWSER_EXPORT) && !defined(QT_QTDIRECTORYBROWSER_IMPORT)
#    define QT_QTDIRECTORYBROWSER_EXPORT
#  elif defined(QT_QTDIRECTORYBROWSER_IMPORT)
#    if defined(QT_QTDIRECTORYBROWSER_EXPORT)
#      undef QT_QTDIRECTORYBROWSER_EXPORT
#    endif
#    define QT_QTDIRECTORYBROWSER_EXPORT __declspec(dllimport)
#  elif defined(QT_QTDIRECTORYBROWSER_EXPORT)
#    undef QT_QTDIRECTORYBROWSER_EXPORT
#    define QT_QTDIRECTORYBROWSER_EXPORT __declspec(dllexport)
#  endif
#else
#  define QT_QTDIRECTORYBROWSER_EXPORT
#endif

class QT_QTDIRECTORYBROWSER_EXPORT QtDirectoryBrowserItem :public QListViewItem
{
public:
    QtDirectoryBrowserItem(QtDirectoryBrowser *parent, const QString &path);
    QtDirectoryBrowserItem(QtDirectoryBrowserItem *parent, const QString &path);
    ~QtDirectoryBrowserItem();
    QFileInfo fileInfo();

protected:
/*virtual*/ QString text ( int column ) const;
    virtual QString sizeText() const =0;
    virtual QString typeText() const =0;
    virtual QString nameText() const;
    virtual void updateFromFileInfo() const;

    QtDirectoryBrowserItemPrivate *d;
    QtDirectoryBrowserPrivate     *dbd;
private:

    friend class QtDirectoryBrowser;
    friend class QtDirectoryBrowserPrivate;
    friend class QtDirectoryBrowserItemPrivate;
    friend class QtDirectoryBrowserItemDirectory;
};

class QtDirectoryBrowser : public QListView
{
Q_OBJECT
Q_ENUMS(Column FolderIcon SizeStyle FlagStyle)
Q_PROPERTY(QStringList startPaths READ startPaths WRITE setStartPaths RESET resetStartPaths)
Q_PROPERTY(SizeStyle sizeStyle READ sizeStyle WRITE setSizeStyle)
Q_PROPERTY(FlagStyle flagStyle READ flagStyle WRITE setFlagStyle)
Q_PROPERTY(bool dragDropEnabled  READ isDragDropEnabled WRITE setDragDropEnabled)
Q_PROPERTY(bool copyPasteEnabled  READ isCopyPasteEnabled WRITE setCopyPasteEnabled)
Q_PROPERTY(bool displaySymlinkTargets  READ isDisplaySymlinkTargetsEnabled WRITE setDisplaySymlinkTargetsEnabled)
Q_PROPERTY(bool displayDirectoriesOnly  READ isDisplayDirectoriesOnlyEnabled WRITE setDisplayDirectoriesOnly)

public:
    QtDirectoryBrowser(QWidget *parent = 0, const char *name = 0);
    QtDirectoryBrowser(const QStringList& startPaths, QWidget *parent = 0, const char *name = 0);
    ~QtDirectoryBrowser();

    enum Column {
            NameColumn,
            TypeColumn,
            SizeColumn,
            CreatedColumn,
            ModifiedColumn,
            ReadColumn,
            OwnerColumn,
            GroupColumn,
            FlagsColumn,

            LastColumn = FlagsColumn
    };

    enum FolderIcon {
            FolderOpenIcon,
            FolderClosedIcon,
            FolderSymlinkIcon,

            LastFolderIcon = FolderSymlinkIcon
    };
    enum FlagStyle { UnixStyle, WindowsStyle };
    enum SizeStyle { UnformattedSize, FormattedSize };

    void setColumnHidden(Column column, bool hidden);
    void setFolderIcon(FolderIcon icon, const QPixmap &pixmap);
    void setFileIconProvider(QFileIconProvider *fileIconProvider);

    void setFilter(int filterSpec);
    QDir::FilterSpec filter() const;

    SizeStyle sizeStyle() const;
    bool isDragDropEnabled() const;
    bool isCopyPasteEnabled() const;
    bool isDisplaySymlinkTargetsEnabled() const;
    bool isDisplayDirectoriesOnlyEnabled() const;
    FlagStyle flagStyle() const;
    QStringList startPaths() const;
    void resetStartPaths();

signals:
    void itemClicked(QtDirectoryBrowserItem *);
    void itemDoubleClicked(QtDirectoryBrowserItem *);
    void itemRightClicked(QtDirectoryBrowserItem *);

public slots:
    void triggerFilesystemUpdate();
    void setSizeStyle(SizeStyle style);
    void setDragDropEnabled (bool enable);
    void setCopyPasteEnabled(bool enable);
    void setDisplaySymlinkTargetsEnabled(bool enable);
    void setStartPaths(const QStringList startPaths);
    void setDisplayDirectoriesOnly(bool enable);
    void setFlagStyle(FlagStyle style);

protected:
    void dropEvent(QDropEvent *event);
    void dragEnterEvent(QDragEnterEvent *event);
    bool eventFilter(QObject * o, QEvent * e);

private slots:
    void showColumnSelectMenu( const QPoint &point );
    void showCopyPasteMenu( const QPoint &point );
    void showColumn(int column, bool enable);
    void overrideDrag(bool override);
    void copyItem();
    void pasteItem();

    void itemClicked( QListViewItem *item );
    void itemDoubleClicked( QListViewItem *item );
    void itemRightClicked( QListViewItem *item );

private:
    QtDirectoryBrowserPrivate *d;
    friend class QtDirectoryBrowserPrivate;
    friend class QtDirectoryBrowserItem;
    friend class QtDirectoryBrowserItemPrivate;
};

#endif

Copyright © 2003-2005 TrolltechTrademarks
Qt Solutions