Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qrangemodel_impl.h File Reference

(ad993827301206b9d179f35b88cbf8621b008853)

#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qmetaobject.h>
#include <QtCore/qvariant.h>
#include <QtCore/qmap.h>
#include <algorithm>
#include <functional>
#include <iterator>
#include <type_traits>
#include <QtCore/q20type_traits.h>
#include <tuple>
#include <QtCore/q23utility.h>
Include dependency graph for qrangemodel_impl.h:

Go to the source code of this file.

Classes

class  QtPrivate::QQuasiVirtualInterface< Interface >
struct  QtPrivate::QQuasiVirtualInterface< Interface >::Method< prototype >
struct  QtPrivate::QQuasiVirtualInterface< Interface >::Deleter
class  QtPrivate::QQuasiVirtualSubclass< Subclass, Interface >
struct  QtPrivate::QQuasiVirtualSubclass< Subclass, Interface >::Override< BaseMethod, overridden >
struct  QRangeModelDetails::is_any_of_impl< T, Templates >
struct  QRangeModelDetails::is_any_of_impl< Template< Params... >, Template, Templates... >
struct  QRangeModelDetails::is_any_of_impl< T, Template, Templates... >
struct  QRangeModelDetails::is_validatable< T, typename >
struct  QRangeModelDetails::is_validatable< T, std::void_t< decltype(*std::declval< T >())> >
struct  QRangeModelDetails::is_smart_ptr< T, typename >
struct  QRangeModelDetails::is_smart_ptr< T, std::enable_if_t< std::conjunction_v< std::is_pointer< decltype(std::declval< T & >().get())>, std::is_same< decltype(*std::declval< T & >().get()), decltype(*std::declval< T & >())>, is_validatable< T > > > >
struct  QRangeModelDetails::tuple_like< T, typename >
struct  QRangeModelDetails::tuple_like< std::array< T, N > >
struct  QRangeModelDetails::tuple_like< T, std::void_t< std::tuple_element_t< 0, wrapped_t< T > > > >
struct  QRangeModelDetails::array_like< T, typename >
struct  QRangeModelDetails::array_like< std::array< T, N > >
struct  QRangeModelDetails::array_like< T[N]>
struct  QRangeModelDetails::has_metaobject< T, typename >
struct  QRangeModelDetails::has_metaobject< T, std::void_t< decltype(wrapped_t< T >::staticMetaObject)> >
struct  QRangeModelDetails::test_insert< C, typename >
struct  QRangeModelDetails::test_insert< C, std::void_t< decltype(std::declval< C >().insert(std::declval< typename C::const_iterator >(), std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
struct  QRangeModelDetails::test_insert_range< C, typename >
struct  QRangeModelDetails::test_insert_range< C, std::void_t< decltype(std::declval< C & >().insert(std::declval< typename C::const_iterator & >(), std::declval< std::move_iterator< typename C::iterator > & >(), std::declval< std::move_iterator< typename C::iterator > & >()))> >
struct  QRangeModelDetails::test_erase< C, typename >
struct  QRangeModelDetails::test_erase< C, std::void_t< decltype(std::declval< C >().erase(std::declval< typename C::const_iterator >(), std::declval< typename C::const_iterator >()))> >
struct  QRangeModelDetails::test_resize< C, typename >
struct  QRangeModelDetails::test_resize< C, std::void_t< decltype(std::declval< C >().resize(std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
struct  QRangeModelDetails::test_rotate< It, typename >
struct  QRangeModelDetails::test_rotate< It, std::void_t< decltype(std::swap(*std::declval< It >(), *std::declval< It >()))> >
struct  QRangeModelDetails::test_splice< C, typename >
struct  QRangeModelDetails::test_splice< C, std::void_t< decltype(std::declval< C >().splice(std::declval< typename C::const_iterator >(), std::declval< C & >(), std::declval< typename C::const_iterator >(), std::declval< typename C::const_iterator >()))> >
struct  QRangeModelDetails::is_multi_role< C, typename >
struct  QRangeModelDetails::is_multi_role< C, std::void_t< typename C::key_type, typename C::mapped_type > >
struct  QRangeModelDetails::test_size< C, typename >
struct  QRangeModelDetails::test_size< C, std::void_t< decltype(std::size(std::declval< C & >()))> >
struct  QRangeModelDetails::test_cbegin< C, typename >
struct  QRangeModelDetails::test_cbegin< C, std::void_t< decltype(std::begin(std::declval< const C & >()))> >
struct  QRangeModelDetails::range_traits< C, typename >
struct  QRangeModelDetails::range_traits< C, std::void_t< decltype(begin(std::declval< C & >())), decltype(end(std::declval< C & >())), std::enable_if_t<!is_multi_role_v< C > > > >
struct  QRangeModelDetails::iterable_value< IsMutable >
struct  QRangeModelDetails::range_traits< QByteArray >
struct  QRangeModelDetails::range_traits< QString >
struct  QRangeModelDetails::range_traits< std::basic_string< CharT, Traits, Allocator > >
struct  QRangeModelDetails::range_traits< const T * >
struct  QRangeModelDetails::range_traits< QLatin1StringView >
struct  QRangeModelDetails::row_category< T, typename >
struct  QRangeModelDetails::row_category< T, std::void_t< decltype(QRangeModelRowOptions< T >::rowCategory)> >
struct  QRangeModelDetails::item_access< T, typename >
struct  QRangeModelDetails::item_access< T, std::void_t< decltype(QRangeModelItemAccess< T >::readRole(std::declval< const T & >(), Qt::DisplayRole)), decltype(QRangeModelItemAccess< T >::writeRole(std::declval< T & >(), std::declval< QVariant >(), Qt::DisplayRole)) > >
struct  QRangeModelDetails::row_traits< T, typename >
struct  QRangeModelDetails::row_traits< T, std::enable_if_t< tuple_like_v< T > > >
struct  QRangeModelDetails::row_traits< std::array< T, N > >
struct  QRangeModelDetails::row_traits< T[N]>
struct  QRangeModelDetails::row_traits< T, std::enable_if_t< has_metaobject_v< T > &&!tuple_like_v< T > > >
struct  QRangeModelDetails::ListProtocol< Range >
struct  QRangeModelDetails::TableProtocol< Range >
struct  QRangeModelDetails::DefaultTreeProtocol< Range >
struct  QRangeModelDetails::protocol_parentRow< P, R, typename >
struct  QRangeModelDetails::protocol_parentRow< P, R, std::void_t< decltype(std::declval< P & >().parentRow(std::declval< wrapped_t< R > & >()))> >
struct  QRangeModelDetails::protocol_childRows< P, R, typename >
struct  QRangeModelDetails::protocol_childRows< P, R, std::void_t< decltype(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))> >
struct  QRangeModelDetails::protocol_setParentRow< P, R, typename >
struct  QRangeModelDetails::protocol_setParentRow< P, R, std::void_t< decltype(std::declval< P & >().setParentRow(std::declval< wrapped_t< R > & >(), std::declval< wrapped_t< R > * >()))> >
struct  QRangeModelDetails::protocol_mutable_childRows< P, R, typename >
struct  QRangeModelDetails::protocol_mutable_childRows< P, R, std::void_t< decltype(refTo(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))={}) > >
struct  QRangeModelDetails::protocol_newRow< P, typename >
struct  QRangeModelDetails::protocol_newRow< P, std::void_t< decltype(std::declval< P & >().newRow())> >
struct  QRangeModelDetails::protocol_deleteRow< P, R, typename >
struct  QRangeModelDetails::protocol_deleteRow< P, R, std::void_t< decltype(std::declval< P & >().deleteRow(std::declval< R && >()))> >
struct  QRangeModelDetails::is_tree_range< Range, Protocol, R, typename >
struct  QRangeModelDetails::is_tree_range< Range, Protocol, R, std::enable_if_t< std::conjunction_v< protocol_parentRow< Protocol, R >, protocol_childRows< Protocol, R > > > >
struct  QRangeModelDetails::protocol_traits< Range, Protocol >
struct  QRangeModelDetails::PropertyData< cacheProperties >
struct  QRangeModelDetails::PropertyData< true >
struct  QRangeModelDetails::Storage< ModelStorage, typename >
struct  QRangeModelDetails::Storage< ModelStorage, std::void_t< decltype(begin(std::declval< const ModelStorage & >()))> >
struct  QRangeModelDetails::ModelData< ModelStorage, ItemType >
class  QRangeModelImplBase
class  QRangeModelImpl< Structure, Range, Protocol >
struct  QRangeModelImpl< Structure, Range, Protocol >::EmptyRowGenerator
class  QGenericTreeItemModelImpl< Range, Protocol >
class  QGenericTableItemModelImpl< Range >

Namespaces

namespace  QtPrivate
namespace  QRangeModelDetails

Typedefs

template<typename T, template< typename... > typename... Templates>
using QRangeModelDetails::is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>
template<typename T>
using QRangeModelDetails::is_any_unique_ptr
template<typename T>
using QRangeModelDetails::is_any_shared_ptr
template<typename T>
using QRangeModelDetails::is_owning_or_raw_pointer
template<typename T>
using QRangeModelDetails::wrapped_t = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>
template<typename T>
using QRangeModelDetails::is_wrapped = std::negation<std::is_same<wrapped_t<T>, std::remove_reference_t<T>>>
template<typename C>
using QRangeModelDetails::is_range = range_traits<C>
template<typename Range, typename R = typename range_traits<wrapped_t<Range>>::value_type>
using QRangeModelDetails::table_protocol_t
template<typename Range>
using QRangeModelDetails::if_table_range
template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using QRangeModelDetails::if_tree_range

Enumerations

enum class  QRangeModelDetails::Mutable { QRangeModelDetails::Yes , QRangeModelDetails::No }

Functions

template<typename Applier, size_t ... Is>
void QtPrivate::applyIndexSwitch (size_t index, Applier &&applier, std::index_sequence< Is... >)
template<size_t IndexCount, typename Applier>
void QtPrivate::applyIndexSwitch (size_t index, Applier &&applier)
template<typename T>
static auto QRangeModelDetails::pointerTo (T &&t)
template<typename T>
static constexpr bool QRangeModelDetails::isValid (const T &t) noexcept
template<typename T>
static decltype(auto) QRangeModelDetails::refTo (T &&t)
template<typename It>
auto QRangeModelDetails::key (It &&it) -> decltype(it.key())
template<typename It>
auto QRangeModelDetails::value (It &&it) -> decltype(it.value())
template<typename C>
static auto QRangeModelDetails::begin (C &&c) -> decltype(std::begin(refTo(std::forward< C >(c))))
template<typename C>
static auto QRangeModelDetails::end (C &&c) -> decltype(std::end(refTo(std::forward< C >(c))))
template<typename C>
static auto QRangeModelDetails::pos (C &&c, int i)
template<typename C>
static void QRangeModelDetails::rotate (C &c, int src, int count, int dst)

Variables

template<typename T>
static constexpr bool QRangeModelDetails::tuple_like_v = tuple_like<T>::value
template<typename T>
static constexpr bool QRangeModelDetails::array_like_v = array_like<T>::value
template<typename T>
static constexpr bool QRangeModelDetails::has_metaobject_v = has_metaobject<T>::value
template<typename C>
static constexpr bool QRangeModelDetails::is_multi_role_v = is_multi_role<C>::value
template<typename C>
static constexpr bool QRangeModelDetails::is_range_v = is_range<C>()
template<typename T>
static constexpr int QRangeModelDetails::static_size_v