QListWidget/QTableWidget: extract method view()
Change-Id: Ie6505e2aea2c3a7a10f91be19dfc66197bf97556 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
c74cba1117
commit
c82ad28125
@ -69,7 +69,7 @@ void QListModel::insert(int row, QListWidgetItem *item)
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
item->view = qobject_cast<QListWidget*>(QObject::parent());
|
||||
item->view = this->view();
|
||||
if (item->view && item->view->isSortingEnabled()) {
|
||||
// sorted insertion
|
||||
QList<QListWidgetItem*>::iterator it;
|
||||
@ -93,7 +93,7 @@ void QListModel::insert(int row, const QStringList &labels)
|
||||
const int count = labels.size();
|
||||
if (count <= 0)
|
||||
return;
|
||||
QListWidget *view = qobject_cast<QListWidget*>(QObject::parent());
|
||||
QListWidget *view = this->view();
|
||||
if (view && view->isSortingEnabled()) {
|
||||
// sorted insertion
|
||||
for (int i = 0; i < count; ++i) {
|
||||
@ -109,7 +109,7 @@ void QListModel::insert(int row, const QStringList &labels)
|
||||
for (int i = 0; i < count; ++i) {
|
||||
QListWidgetItem *item = new QListWidgetItem(labels.at(i));
|
||||
item->d->theid = row;
|
||||
item->view = qobject_cast<QListWidget*>(QObject::parent());
|
||||
item->view = this->view();
|
||||
items.insert(row++, item);
|
||||
}
|
||||
endInsertRows();
|
||||
@ -223,7 +223,7 @@ bool QListModel::insertRows(int row, int count, const QModelIndex &parent)
|
||||
return false;
|
||||
|
||||
beginInsertRows(QModelIndex(), row, row + count - 1);
|
||||
QListWidget *view = qobject_cast<QListWidget*>(QObject::parent());
|
||||
QListWidget *view = this->view();
|
||||
QListWidgetItem *itm = nullptr;
|
||||
|
||||
for (int r = row; r < row + count; ++r) {
|
||||
@ -387,7 +387,7 @@ void QListModel::itemChanged(QListWidgetItem *item, const QList<int> &roles)
|
||||
|
||||
QStringList QListModel::mimeTypes() const
|
||||
{
|
||||
const QListWidget *view = qobject_cast<const QListWidget*>(QObject::parent());
|
||||
const QListWidget *view = this->view();
|
||||
if (view)
|
||||
return view->mimeTypes();
|
||||
return {};
|
||||
@ -405,10 +405,9 @@ QMimeData *QListModel::mimeData(const QModelIndexList &indexes) const
|
||||
itemlist.reserve(indexesCount);
|
||||
for (int i = 0; i < indexesCount; ++i)
|
||||
itemlist << at(indexes.at(i).row());
|
||||
const QListWidget *view = qobject_cast<const QListWidget*>(QObject::parent());
|
||||
|
||||
cachedIndexes = indexes;
|
||||
QMimeData *mimeData = view->mimeData(itemlist);
|
||||
QMimeData *mimeData = view()->mimeData(itemlist);
|
||||
cachedIndexes.clear();
|
||||
return mimeData;
|
||||
}
|
||||
@ -418,19 +417,17 @@ bool QListModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
|
||||
int row, int column, const QModelIndex &index)
|
||||
{
|
||||
Q_UNUSED(column);
|
||||
QListWidget *view = qobject_cast<QListWidget*>(QObject::parent());
|
||||
if (index.isValid())
|
||||
row = index.row();
|
||||
else if (row == -1)
|
||||
row = items.size();
|
||||
|
||||
return view->dropMimeData(row, data, action);
|
||||
return view()->dropMimeData(row, data, action);
|
||||
}
|
||||
|
||||
Qt::DropActions QListModel::supportedDropActions() const
|
||||
{
|
||||
const QListWidget *view = qobject_cast<const QListWidget*>(QObject::parent());
|
||||
return view->supportedDropActions();
|
||||
return view()->supportedDropActions();
|
||||
}
|
||||
#endif // QT_CONFIG(draganddrop)
|
||||
|
||||
|
@ -50,6 +50,8 @@ public:
|
||||
QListModel(QListWidget *parent);
|
||||
~QListModel();
|
||||
|
||||
inline QListWidget *view() const { return qobject_cast<QListWidget *>(QObject::parent()); }
|
||||
|
||||
void clear();
|
||||
QListWidgetItem *at(int row) const;
|
||||
void insert(int row, QListWidgetItem *item);
|
||||
|
@ -168,7 +168,7 @@ void QTableModel::setItem(int row, int column, QTableWidgetItem *item)
|
||||
oldItem->view = nullptr;
|
||||
delete tableItems.at(i);
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
|
||||
// set new
|
||||
if (item)
|
||||
@ -264,7 +264,7 @@ void QTableModel::setHorizontalHeaderItem(int section, QTableWidgetItem *item)
|
||||
oldItem->view = nullptr;
|
||||
delete oldItem;
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
|
||||
if (item) {
|
||||
item->view = view;
|
||||
@ -286,7 +286,7 @@ void QTableModel::setVerticalHeaderItem(int section, QTableWidgetItem *item)
|
||||
oldItem->view = nullptr;
|
||||
delete oldItem;
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
|
||||
if (item) {
|
||||
item->view = view;
|
||||
@ -405,7 +405,7 @@ bool QTableModel::setData(const QModelIndex &index, const QVariant &value, int r
|
||||
if (!value.isValid())
|
||||
return false;
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
if (!view)
|
||||
return false;
|
||||
|
||||
@ -434,7 +434,7 @@ bool QTableModel::setItemData(const QModelIndex &index, const QMap<int, QVariant
|
||||
if (!index.isValid())
|
||||
return false;
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
QTableWidgetItem *itm = item(index);
|
||||
if (itm) {
|
||||
itm->view = nullptr; // prohibits item from calling itemChanged()
|
||||
@ -817,8 +817,10 @@ void QTableModel::setItemPrototype(const QTableWidgetItem *item)
|
||||
|
||||
QStringList QTableModel::mimeTypes() const
|
||||
{
|
||||
const QTableWidget *view = qobject_cast<const QTableWidget*>(QObject::parent());
|
||||
return (view ? view->mimeTypes() : QStringList());
|
||||
auto v = view();
|
||||
if (v)
|
||||
return v->mimeTypes();
|
||||
return {};
|
||||
}
|
||||
|
||||
QMimeData *QTableModel::internalMimeData() const
|
||||
@ -833,7 +835,7 @@ QMimeData *QTableModel::mimeData(const QModelIndexList &indexes) const
|
||||
items.reserve(indexesCount);
|
||||
for (int i = 0; i < indexesCount; ++i)
|
||||
items << item(indexes.at(i));
|
||||
const QTableWidget *view = qobject_cast<const QTableWidget*>(QObject::parent());
|
||||
const QTableWidget *view = this->view();
|
||||
|
||||
// cachedIndexes is a little hack to avoid copying from QModelIndexList to
|
||||
// QList<QTreeWidgetItem*> and back again in the view
|
||||
@ -857,13 +859,13 @@ bool QTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
|
||||
column = 0;
|
||||
}
|
||||
|
||||
QTableWidget *view = qobject_cast<QTableWidget*>(QObject::parent());
|
||||
QTableWidget *view = this->view();
|
||||
return (view ? view->dropMimeData(row, column, data, action) : false);
|
||||
}
|
||||
|
||||
Qt::DropActions QTableModel::supportedDropActions() const
|
||||
{
|
||||
const QTableWidget *view = qobject_cast<const QTableWidget*>(QObject::parent());
|
||||
const QTableWidget *view = this->view();
|
||||
return (view ? view->supportedDropActions() : Qt::DropActions(Qt::IgnoreAction));
|
||||
}
|
||||
|
||||
|
@ -58,6 +58,8 @@ public:
|
||||
QTableModel(int rows, int columns, QTableWidget *parent);
|
||||
~QTableModel();
|
||||
|
||||
inline QTableWidget *view() const { return qobject_cast<QTableWidget *>(QObject::parent()); }
|
||||
|
||||
bool insertRows(int row, int count = 1, const QModelIndex &parent = QModelIndex()) override;
|
||||
bool insertColumns(int column, int count = 1, const QModelIndex &parent = QModelIndex()) override;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user