//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.



class KFilePlacesModel : QAbstractItemModel
{
%TypeHeaderCode
#include <kfileplacesmodel.h>
%End


public:

    enum AdditionalRoles
    {
        UrlRole,
        HiddenRole,
        SetupNeededRole
    };

                            KFilePlacesModel (QObject* parent /TransferThis/ = 0);
    KUrl                    url (const QModelIndex& index) const;
    bool                    setupNeeded (const QModelIndex& index) const;
    KIcon                   icon (const QModelIndex& index) const;
    QString                 text (const QModelIndex& index) const;
    bool                    isHidden (const QModelIndex& index) const;
    bool                    isDevice (const QModelIndex& index) const;
    Solid::Device           deviceForIndex (const QModelIndex& index) const;
    KBookmark               bookmarkForIndex (const QModelIndex& index) const;
    QAction*                teardownActionForIndex (const QModelIndex& index) const;
    QAction*                ejectActionForIndex (const QModelIndex& index) const;
    void                    requestTeardown (const QModelIndex& index);
    void                    requestEject (const QModelIndex& index);
    void                    requestSetup (const QModelIndex& index);
    void                    addPlace (const QString& text, const KUrl& url, const QString& iconName = QString(), const QString& appName = QString());
    void                    editPlace (const QModelIndex& index, const QString& text, const KUrl& url, const QString& iconName = QString(), const QString& appName = QString());
    void                    removePlace (const QModelIndex& index) const;
    void                    setPlaceHidden (const QModelIndex& index, bool hidden);
    int                     hiddenCount () const;
    QVariant                data (const QModelIndex& index, int role) const;
    QModelIndex             index (int row, int column, const QModelIndex& parent /Transfer/ = QModelIndex()) const;
    QModelIndex             parent (const QModelIndex& child) const;
    int                     rowCount (const QModelIndex& parent /Transfer/ = QModelIndex()) const;
    int                     columnCount (const QModelIndex& parent /Transfer/ = QModelIndex()) const;
    QModelIndex             closestItem (const KUrl& url) const;
    Qt::DropActions         supportedDropActions () const;
    Qt::ItemFlags           flags (const QModelIndex& index) const;
    QStringList             mimeTypes () const;
    QMimeData*              mimeData (const QModelIndexList& indexes) const;
    bool                    dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent /Transfer/);

signals:
    void                    errorMessage (const QString& message);
    void                    setupDone (const QModelIndex& index, bool success);
};   // KFilePlacesModel


