예제 #1
0
int QtTreeSelectionManager::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: currentChanged((*reinterpret_cast< const QtTreeModelBase::iterator_base(*)>(_a[1])),(*reinterpret_cast< const QtTreeModelBase::iterator_base(*)>(_a[2]))); break;
        case 1: anchorChanged((*reinterpret_cast< const QtTreeModelBase::iterator_base(*)>(_a[1])),(*reinterpret_cast< const QtTreeModelBase::iterator_base(*)>(_a[2]))); break;
        case 2: selectionsChanged((*reinterpret_cast< const QtTreeSelection(*)>(_a[1]))); break;
        case 3: setCurrentItem((*reinterpret_cast< const QtTreeModelIterator(*)>(_a[1]))); break;
        case 4: setAnchorItem((*reinterpret_cast< const QtTreeModelIterator(*)>(_a[1]))); break;
        case 5: setAnchorSelectionMode((*reinterpret_cast< SelectionMode(*)>(_a[1]))); break;
        case 6: setSelected((*reinterpret_cast< const QtTreeSelection(*)>(_a[1])),(*reinterpret_cast< SelectionMode(*)>(_a[2]))); break;
        case 7: setSelected((*reinterpret_cast< const QtTreeSelection(*)>(_a[1]))); break;
        case 8: setAnchorSelection((*reinterpret_cast< const QtTreeSelection(*)>(_a[1]))); break;
        case 9: clearSelections(); break;
        case 10: d_func()->_q_modelDestroyed(); break;
        case 11: d_func()->_q_itemsRemoved((*reinterpret_cast< const QtTreeModelBase::iterator_base(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        default: ;
        }
        _id -= 12;
    }
    return _id;
}
예제 #2
0
void ItemListItem::handleSelectionChanged() {
	auto attached = static_cast<ItemListAttached*>(sender());
	Q_ASSERT(attached != nullptr);
	bool clear = false;
	if (d->selectionMode == SingleSelection) {
		if (attached->isSelected()) {
			Q_ASSERT(d->selections.size() < 2);
			if (d->selections.isEmpty())
				d->selections.append(attached);
			else {
				d->selections[0]->selection() = false;
				d->selections[0] = attached;
			}
		} else
			clear = true;
	} else if (d->selectionMode == MultiSelection) {
		if (attached->isSelected())
			d->selections.append(attached);
		else
			d->selections.removeOne(attached);
	} else
		clear = true;
	if (clear)
		clearSelections();
	else {
		emit selectionsChanged();
		forceToUpdateGeometry();
	}
}
예제 #3
0
int QtListSelectionManager::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: currentChanged((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 1: anchorChanged((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 2: selectionsChanged((*reinterpret_cast< const QtListSelectionChange(*)>(_a[1]))); break;
        case 3: setCurrentItem((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 4: setAnchorItem((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 5: setSelected((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< SelectionMode(*)>(_a[3]))); break;
        case 6: setSelected((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 7: setSelected((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 8: clearSelections(); break;
        case 9: d_func()->_q_modelDestroyed(); break;
        case 10: d_func()->_q_itemsInserted((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 11: d_func()->_q_itemsRemoved((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 12: d_func()->_q_itemsMoved((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break;
        default: ;
        }
        _id -= 13;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< int*>(_v) = currentItem(); break;
        case 1: *reinterpret_cast< bool*>(_v) = isAnchoredSelectionActive(); break;
        case 2: *reinterpret_cast< SelectionMode*>(_v) = anchoredSelectionMode(); break;
        }
        _id -= 3;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: setCurrentItem(*reinterpret_cast< int*>(_v)); break;
        case 1: setAnchoredSelectionActive(*reinterpret_cast< bool*>(_v)); break;
        case 2: setAnchoredSelectionMode(*reinterpret_cast< SelectionMode*>(_v)); break;
        }
        _id -= 3;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 3;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
예제 #4
0
void ItemListItem::clearSelections() {
	if (!d->selections.isEmpty()) {
		for (auto one : d->selections)
			one->selection() = false;
		d->selections.clear();
		emit selectionsChanged();
		forceToUpdateGeometry();
	}
}