// qstandarditemmodel.sip generated by MetaSIP on Fri Apr 16 11:32:08 2010
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2010 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// Please review the following information to ensure GNU General
// Public Licensing requirements will be met:
// http://trolltech.com/products/qt/licenses/licensing/opensource/. If
// you are unsure which license is appropriate for your use, please
// review the following information:
// http://trolltech.com/products/qt/licenses/licensing/licensingoverview
// or contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


%ModuleCode
#include <qstandarditemmodel.h>
%End

class QStandardItemModel : QAbstractItemModel
{

%TypeHeaderCode
#include <qstandarditemmodel.h>
%End

public:
    explicit QStandardItemModel(QObject *parent /TransferThis/ = 0);
    QStandardItemModel(int, int, QObject *parent /TransferThis/ = 0);
    virtual ~QStandardItemModel();
    virtual QModelIndex index(int, int, const QModelIndex &parent = QModelIndex()) const;
    virtual QModelIndex parent(const QModelIndex &) const;
    QObject *parent() const;
    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
    virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
    virtual QVariant data(const QModelIndex &, int role = Qt::DisplayRole) const;
    virtual bool setData(const QModelIndex &, const QVariant &, int role = Qt::EditRole);
    virtual QVariant headerData(int, Qt::Orientation, int role = Qt::DisplayRole) const;
    virtual bool setHeaderData(int, Qt::Orientation, const QVariant &, int role = Qt::EditRole);
    virtual bool insertRows(int, int, const QModelIndex &parent = QModelIndex());
    virtual bool insertColumns(int, int, const QModelIndex &parent = QModelIndex());
    virtual bool removeRows(int, int, const QModelIndex &parent = QModelIndex());
    virtual bool removeColumns(int, int, const QModelIndex &parent = QModelIndex());
    virtual Qt::ItemFlags flags(const QModelIndex &) const;
    void clear();
%If (Qt_4_2_0 -)
    virtual Qt::DropActions supportedDropActions() const;
%End
%If (Qt_4_2_0 -)
    virtual QMap<int,QVariant> itemData(const QModelIndex &) const;
%End
%If (Qt_4_2_0 -)
    virtual bool setItemData(const QModelIndex &, const QMap<int,QVariant> &);
%End
%If (Qt_4_2_0 -)
    virtual void sort(int, Qt::SortOrder order = Qt::AscendingOrder);
%End
%If (Qt_4_2_0 -)
    QStandardItem *itemFromIndex(const QModelIndex &) const;
%End
%If (Qt_4_2_0 -)
    QModelIndex indexFromItem(const QStandardItem *) const;
%End
%If (Qt_4_2_0 -)
    QStandardItem *item(int, int column = 0) const;
%End
%If (Qt_4_2_0 -)
    void setItem(int, int, QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    void setItem(int, QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    QStandardItem *invisibleRootItem() const;
%End
%If (Qt_4_2_0 -)
    QStandardItem *horizontalHeaderItem(int) const;
%End
%If (Qt_4_2_0 -)
    void setHorizontalHeaderItem(int, QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    QStandardItem *verticalHeaderItem(int) const;
%End
%If (Qt_4_2_0 -)
    void setVerticalHeaderItem(int, QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    void setHorizontalHeaderLabels(const QStringList &);
%End
%If (Qt_4_2_0 -)
    void setVerticalHeaderLabels(const QStringList &);
%End
%If (Qt_4_2_0 -)
    void setRowCount(int);
%End
%If (Qt_4_2_0 -)
    void setColumnCount(int);
%End
%If (Qt_4_2_0 -)
    void appendRow(const QList<QStandardItem*> & /Transfer/);
%End
%If (Qt_4_2_0 -)
    void appendColumn(const QList<QStandardItem*> & /Transfer/);
%End
%If (Qt_4_2_0 -)
    void insertRow(int, const QList<QStandardItem*> & /Transfer/);
%End
%If (Qt_4_2_0 -)
    void insertColumn(int, const QList<QStandardItem*> & /Transfer/);
%End
%If (Qt_4_2_0 -)
    QStandardItem *takeItem(int, int column = 0) /TransferBack/;
%End
%If (Qt_4_2_0 -)
    QList<QStandardItem*> takeRow(int) /TransferBack/;
%End
%If (Qt_4_2_0 -)
    QList<QStandardItem*> takeColumn(int) /TransferBack/;
%End
%If (Qt_4_2_0 -)
    QStandardItem *takeHorizontalHeaderItem(int) /TransferBack/;
%End
%If (Qt_4_2_0 -)
    QStandardItem *takeVerticalHeaderItem(int) /TransferBack/;
%End
%If (Qt_4_2_0 -)
    const QStandardItem *itemPrototype() const;
%End
%If (Qt_4_2_0 -)
    void setItemPrototype(const QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    QList<QStandardItem*> findItems(const QString &, Qt::MatchFlags flags = Qt::MatchExactly, int column = 0) const;
%End
%If (Qt_4_2_0 -)
    int sortRole() const;
%End
%If (Qt_4_2_0 -)
    void setSortRole(int);
%End
%If (Qt_4_2_0 -)
    void appendRow(QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    void insertRow(int, QStandardItem * /Transfer/);
%End
%If (Qt_4_2_0 -)
    bool insertRow(int, const QModelIndex &parent = QModelIndex());
%End
%If (Qt_4_2_0 -)
    bool insertColumn(int, const QModelIndex &parent = QModelIndex());
%End
%If (Qt_4_5_0 -)
    virtual QStringList mimeTypes() const;
%End
%If (Qt_4_5_0 -)
    virtual QMimeData *mimeData(const QModelIndexList &) const /TransferBack/;
%End
%If (Qt_4_5_0 -)
    virtual bool dropMimeData(const QMimeData *, Qt::DropAction, int, int, const QModelIndex &);
%End

signals:
%If (Qt_4_2_0 -)
    void itemChanged(QStandardItem *);
%End

private:
    QStandardItemModel(const QStandardItemModel &);
};

%If (Qt_4_2_0 -)

class QStandardItem /Supertype=sip.wrapper/
{

%TypeHeaderCode
#include <qstandarditemmodel.h>
%End

public:
    QStandardItem();
    QStandardItem(const QString &);
    QStandardItem(const QIcon &, const QString &);
    QStandardItem(int, int columns = 1);
    virtual ~QStandardItem();
    virtual QVariant data(int role = Qt::UserRole+1) const;
    virtual void setData(const QVariant &, int role = Qt::UserRole+1);
    QString text() const;
    QIcon icon() const;
    QString toolTip() const;
    QString statusTip() const;
    QString whatsThis() const;
    QSize sizeHint() const;
    QFont font() const;
    Qt::Alignment textAlignment() const;
    QBrush background() const;
    QBrush foreground() const;
    Qt::CheckState checkState() const;
    QString accessibleText() const;
    QString accessibleDescription() const;
    Qt::ItemFlags flags() const;
    void setFlags(Qt::ItemFlags);
    bool isEnabled() const;
    void setEnabled(bool);
    bool isEditable() const;
    void setEditable(bool);
    bool isSelectable() const;
    void setSelectable(bool);
    bool isCheckable() const;
    void setCheckable(bool);
    bool isTristate() const;
    void setTristate(bool);
    bool isDragEnabled() const;
    void setDragEnabled(bool);
    bool isDropEnabled() const;
    void setDropEnabled(bool);
    QStandardItem *parent() const;
    int row() const;
    int column() const;
    QModelIndex index() const;
    QStandardItemModel *model() const;
    int rowCount() const;
    void setRowCount(int);
    int columnCount() const;
    void setColumnCount(int);
    bool hasChildren() const;
    QStandardItem *child(int, int column = 0) const;
    void setChild(int, int, QStandardItem * /Transfer/);
    void setChild(int, QStandardItem * /Transfer/);
    void insertRow(int, const QList<QStandardItem*> & /Transfer/);
    void insertRow(int, QStandardItem * /Transfer/);
    void insertRows(int, int);
    void insertColumn(int, const QList<QStandardItem*> & /Transfer/);
    void insertColumns(int, int);
    void removeRow(int);
    void removeColumn(int);
    void removeRows(int, int);
    void removeColumns(int, int);
    QStandardItem *takeChild(int, int column = 0) /TransferBack/;
    QList<QStandardItem*> takeRow(int) /TransferBack/;
    QList<QStandardItem*> takeColumn(int) /TransferBack/;
    void sortChildren(int, Qt::SortOrder order = Qt::AscendingOrder);
    virtual QStandardItem *clone() const /Factory/;

    enum ItemType
    {
        Type,
        UserType,
    };

    virtual int type() const;
    virtual void read(QDataStream &);
    virtual void write(QDataStream &) const;
    virtual bool operator<(const QStandardItem & /NoCopy/) const;
    void setText(const QString &);
    void setIcon(const QIcon &);
    void setToolTip(const QString &);
    void setStatusTip(const QString &);
    void setWhatsThis(const QString &);
    void setSizeHint(const QSize &);
    void setFont(const QFont &);
    void setTextAlignment(Qt::Alignment);
    void setBackground(const QBrush &);
    void setForeground(const QBrush &);
    void setCheckState(Qt::CheckState);
    void setAccessibleText(const QString &);
    void setAccessibleDescription(const QString &);
    void appendRow(const QList<QStandardItem*> & /Transfer/);
    void appendRow(QStandardItem * /Transfer/);
    void appendColumn(const QList<QStandardItem*> & /Transfer/);
%If (Qt_4_3_0 -)
    void insertRows(int, const QList<QStandardItem*> & /Transfer/);
%End
%If (Qt_4_3_0 -)
    void appendRows(const QList<QStandardItem*> & /Transfer/);
%End

protected:
    QStandardItem(const QStandardItem &);
%If (Qt_4_4_0 -)
    void emitDataChanged();
%End
};

%End
%If (Qt_4_2_0 -)
QDataStream &operator>>(QDataStream &, QStandardItem & /Constrained/);
%End
%If (Qt_4_2_0 -)
QDataStream &operator<<(QDataStream &, const QStandardItem & /Constrained/);
%End
