14#include <AUI/Model/IListModel.h>
15#include <AUI/Model/IMutableListModel.h>
17template<
typename ItemTo,
typename ItemFrom,
typename Adapter>
25 using value_type = ItemTo;
29 mAdapter(std::forward<Adapter>(adapter)) {
32 emit this->dataChanged(this->range(r.getBegin(), r.getEnd()));
35 emit this->dataInserted(this->range(r.getBegin(), r.getEnd()));
38 emit this->dataRemoved(this->range(r.getBegin(), r.getEnd()));
42 ~AListModelAdapter()
override =
default;
44 size_t listSize()
override {
45 return mOther->listSize();
49 return mAdapter(mOther->listItemAt(index));
54 AUI_NULLSAFE(mOtherMutable)->removeItems({items.begin().getIndex(), items.end().getIndex(), mOther});
58 AUI_NULLSAFE(mOtherMutable)->removeItems({items.getIndices(), mOther});
62 AUI_NULLSAFE(mOtherMutable)->removeItem(item);
68 template <
typename ItemTo,
typename Container,
typename Adapter>
Definition AListModelAdapter.h:18
Definition AListModelIndex.h:20
Definition AListModelRange.h:23
Definition AListModelSelection.h:28
Definition IListModel.h:23
Definition IMutableListModel.h:20
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:179
static decltype(auto) connect(const Signal &signal, Object *object, Function &&function)
Connects signal to the slot of the specified object.
Definition AObject.h:86
static _< T > manage(T *raw)
Delegates memory management of the raw pointer T* raw to the shared pointer, which is returned.
Definition SharedPtrTypes.h:424