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

(7a152ac7ce1c1e7711f8d637dd4c5f1df2dfe47f)

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

Go to the source code of this file.

Classes

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::wrapped_helper< T >
struct  QRangeModelDetails::wrapped_helper< void >
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, QRangeModelDetails::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(QRangeModelDetails::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_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(size(std::declval< C & >()))> >
struct  QRangeModelDetails::test_cbegin< C, typename >
struct  QRangeModelDetails::test_cbegin< C, std::void_t< decltype(QRangeModelDetails::adl_begin(std::declval< const C & >()))> >
struct  QRangeModelDetails::range_traits< C, typename >
struct  QRangeModelDetails::range_traits< C, std::void_t< decltype(QRangeModelDetails::adl_begin(std::declval< C & >())), decltype(QRangeModelDetails::adl_end(std::declval< C & >())), std::enable_if_t<!QRangeModelDetails::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::item_traits< T, typename >
struct  QRangeModelDetails::item_traits< void >
struct  QRangeModelDetails::item_traits< T, std::enable_if_t< QRangeModelDetails::is_multi_role< T >::value > >
struct  QRangeModelDetails::item_traits< T, std::enable_if_t< QRangeModelDetails::has_metaobject_v< T > > >
struct  QRangeModelDetails::ListProtocol< Range >
struct  QRangeModelDetails::TableProtocol< Range >
struct  QRangeModelDetails::DefaultTreeProtocol< Range >
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, itemsAreQObjects >
struct  QRangeModelDetails::PropertyData< true, false >
struct  QRangeModelDetails::PropertyData< true, true >
struct  QRangeModelDetails::PropertyData< true, true >::Connection
struct  QRangeModelDetails::Storage< ModelStorage, typename >
struct  QRangeModelDetails::Storage< ModelStorage, std::void_t< decltype(QRangeModelDetails::adl_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  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 = typename QRangeModelDetails::wrapped_helper<T>::type
template<typename T>
using QRangeModelDetails::is_wrapped
template<typename It>
using QRangeModelDetails::test_rotate
template<typename C>
using QRangeModelDetails::is_range = range_traits<C>
template<typename Range, typename R = typename range_traits<QRangeModelDetails::wrapped_t<Range>>::value_type>
using QRangeModelDetails::table_protocol_t
template<typename P, typename R>
using QRangeModelDetails::protocol_parentRow_test
template<typename P, typename R>
using QRangeModelDetails::protocol_parentRow = qxp::is_detected<protocol_parentRow_test, P, R>
template<typename P, typename R>
using QRangeModelDetails::protocol_childRows_test
template<typename P, typename R>
using QRangeModelDetails::protocol_childRows = qxp::is_detected<protocol_childRows_test, P, R>
template<typename P, typename R>
using QRangeModelDetails::protocol_setParentRow_test
template<typename P, typename R>
using QRangeModelDetails::protocol_setParentRow = qxp::is_detected<protocol_setParentRow_test, P, R>
template<typename P, typename R>
using QRangeModelDetails::protocol_mutable_childRows_test
template<typename P, typename R>
using QRangeModelDetails::protocol_mutable_childRows = qxp::is_detected<protocol_mutable_childRows_test, P, R>
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 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::key (It &&it) -> decltype((it->first))
template<typename It>
auto QRangeModelDetails::value (It &&it) -> decltype(it.value())
template<typename It>
auto QRangeModelDetails::value (It &&it) -> decltype((it->second))
template<typename C>
static auto QRangeModelDetails::adl_begin (C &&c) -> decltype(begin(QRangeModelDetails::refTo(std::forward< C >(c))))
template<typename C>
static auto QRangeModelDetails::adl_end (C &&c) -> decltype(end(QRangeModelDetails::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