//
//     Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 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/>.

namespace Phonon
{
class ObjectDescriptionModelData
{
%TypeHeaderCode
#include <phonon/objectdescriptionmodel.h>
%End

public:
    int                     rowCount (const QModelIndex& parent = QModelIndex()) const;
    QVariant                data (const QModelIndex& index, int role = Qt::DisplayRole) const;
    Qt::ItemFlags           flags (const QModelIndex& index) const;
    QList<int>              tupleIndexOrder () const;
    int                     tupleIndexAtPositionIndex (int positionIndex) const;
    QMimeData*              mimeData (Phonon::ObjectDescriptionType type, const QModelIndexList& indexes) const;
    void                    moveUp (const QModelIndex& index);
    void                    moveDown (const QModelIndex& index);
//ig    void                    setModelData (const QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>>& data);
//ig    QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>>  modelData () const;
//ig    QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>  modelData (const QModelIndex& index) const;
    Qt::DropActions         supportedDropActions () const;
    bool                    dropMimeData (Phonon::ObjectDescriptionType type, const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
    bool                    removeRows (int row, int count, const QModelIndex& parent = QModelIndex());
    QStringList             mimeTypes (Phonon::ObjectDescriptionType type) const;
                            ObjectDescriptionModelData (QAbstractListModel*);
protected:
    ~ObjectDescriptionModelData ();
};
typedef ObjectDescriptionModel<AudioOutputDeviceType> AudioOutputDeviceModel;
typedef ObjectDescriptionModel<AudioCaptureDeviceType> AudioCaptureDeviceModel;
typedef ObjectDescriptionModel<EffectType> EffectDescriptionModel;
typedef ObjectDescriptionModel<AudioChannelType> AudioChannelDescriptionModel;
typedef ObjectDescriptionModel<SubtitleType> SubtitleDescriptionModel;
};
