// qcompleter.sip generated by MetaSIP on Sun Nov  9 16:48:00 2014
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2014 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.
// 
// If you are unsure which license is appropriate for your use, please
// 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.


%If (Qt_4_2_0 -)

class QCompleter : QObject
{
%TypeHeaderCode
#include <qcompleter.h>
%End

public:
    enum CompletionMode
    {
        PopupCompletion,
        UnfilteredPopupCompletion,
        InlineCompletion,
    };

    enum ModelSorting
    {
        UnsortedModel,
        CaseSensitivelySortedModel,
        CaseInsensitivelySortedModel,
    };

    QCompleter(QObject *parent /TransferBack/ = 0);
    QCompleter(QAbstractItemModel *model, QObject *parent /TransferThis/ = 0);
    QCompleter(const QStringList &list, QObject *parent /TransferThis/ = 0);
    virtual ~QCompleter();
    void setWidget(QWidget *widget /Transfer/);
    QWidget *widget() const;
    void setModel(QAbstractItemModel *c /KeepReference/);
    QAbstractItemModel *model() const;
    void setCompletionMode(QCompleter::CompletionMode mode);
    QCompleter::CompletionMode completionMode() const;
    QAbstractItemView *popup() const;
    void setPopup(QAbstractItemView *popup /Transfer/);
    void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity);
    Qt::CaseSensitivity caseSensitivity() const;
    void setModelSorting(QCompleter::ModelSorting sorting);
    QCompleter::ModelSorting modelSorting() const;
    void setCompletionColumn(int column);
    int completionColumn() const;
    void setCompletionRole(int role);
    int completionRole() const;
    int completionCount() const;
    bool setCurrentRow(int row);
    int currentRow() const;
    QModelIndex currentIndex() const;
    QString currentCompletion() const;
    QAbstractItemModel *completionModel() const;
    QString completionPrefix() const;
    virtual QString pathFromIndex(const QModelIndex &index) const;
    virtual QStringList splitPath(const QString &path) const;
%If (Qt_4_3_0 -)
    bool wrapAround() const;
%End

public slots:
    void complete(const QRect &rect = QRect());
    void setCompletionPrefix(const QString &prefix);
%If (Qt_4_3_0 -)
    void setWrapAround(bool wrap);
%End

protected:
    virtual bool eventFilter(QObject *o, QEvent *e);
    virtual bool event(QEvent *);

signals:
    void activated(const QString &text);
    void activated(const QModelIndex &index);
    void highlighted(const QString &text);
    void highlighted(const QModelIndex &index);

public:
%If (Qt_4_6_0 -)
    int maxVisibleItems() const;
%End
%If (Qt_4_6_0 -)
    void setMaxVisibleItems(int maxItems);
%End
};

%End
