20#include <QAbstractProxyModel> 
   38    QModelIndex tabIndex(
WebTab *tab) 
const;
 
   39    WebTab *tab(
const QModelIndex &index) 
const;
 
   41    Qt::ItemFlags flags(
const QModelIndex &index) 
const override;
 
   42    QVariant data(
const QModelIndex &index, 
int role) 
const override;
 
   43    int rowCount(
const QModelIndex &parent) 
const override;
 
   44    int columnCount(
const QModelIndex &parent) 
const override;
 
   45    bool hasChildren(
const QModelIndex &parent) 
const override;
 
   46    QModelIndex parent(
const QModelIndex &child) 
const override;
 
   47    QModelIndex index(
int row, 
int column, 
const QModelIndex &parent = QModelIndex()) 
const override;
 
   49    QModelIndex mapFromSource(
const QModelIndex &sourceIndex) 
const override;
 
   50    QModelIndex mapToSource(
const QModelIndex &proxyIndex) 
const override;
 
   52    bool canDropMimeData(
const QMimeData *data, Qt::DropAction action, 
int row, 
int column, 
const QModelIndex &parent) 
const override;
 
   53    bool dropMimeData(
const QMimeData *data, Qt::DropAction action, 
int row, 
int column, 
const QModelIndex &parent) 
override;
 
   61    void sourceDataChanged(
const QModelIndex &topLeft, 
const QModelIndex &bottomRight, 
const QVector<int> &roles);
 
   62    void sourceRowsInserted(
const QModelIndex &parent, 
int start, 
int end);
 
   63    void sourceRowsAboutToBeRemoved(
const QModelIndex &parent, 
int start, 
int end);
 
   66    void insertIndex(
const QModelIndex &sourceIndex);
 
   67    void removeIndex(
const QModelIndex &sourceIndex);
 
   68    void connectTab(
WebTab *tab);
 
   69    void syncTopLevelTabs();
 
   73    QHash<WebTab*, TabTreeModelItem*> m_items;