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

//                 Generated by twine2

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

// This program 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 Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

namespace Akonadi
{
class EntityTreeView : QTreeView
{
%TypeHeaderCode
#include <akonadi/entitytreeview.h>
%End

public:
    explicit                EntityTreeView (QWidget* parent /TransferThis/ = 0);
    explicit                EntityTreeView (KXMLGUIClient* xmlGuiClient, QWidget* parent /TransferThis/ = 0);
    virtual ~EntityTreeView ();
    void                    setXmlGuiClient (KXMLGUIClient* xmlGuiClient);
    virtual void            setModel (QAbstractItemModel* model);
signals:
    void                    clicked (const Akonadi::Collection& collection);
    void                    clicked (const Akonadi::Item& item);
    void                    doubleClicked (const Akonadi::Collection& collection);
    void                    doubleClicked (const Akonadi::Item& item);
    void                    currentChanged (const Akonadi::Collection& collection);
    void                    currentChanged (const Akonadi::Item& item);
protected:
    virtual void            dragMoveEvent (QDragMoveEvent* event);
    virtual void            timerEvent (QTimerEvent* event);
    virtual void            dropEvent (QDropEvent* event);
    virtual void            contextMenuEvent (QContextMenuEvent* event);
    virtual void            startDrag (Qt::DropActions supportedActions);
public:
    void                    setDropActionMenuEnabled (bool enabled);
    bool                    isDropActionMenuEnabled () const;
    bool                    isManualSortingActive () const;
    void                    setManualSortingActive (bool active);
};
};
