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
QRangeModelDetails Namespace Reference

Classes

struct  QRangeModelRowOptions
struct  QRangeModelItemAccess
struct  is_any_of_impl
struct  is_any_of_impl< Template< Params... >, Template, Templates... >
struct  is_any_of_impl< T, Template, Templates... >
struct  is_validatable
struct  is_validatable< T, std::void_t< decltype(*std::declval< T >())> >
struct  is_smart_ptr
struct  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  wrapped_helper
struct  wrapped_helper< void >
struct  tuple_like
struct  tuple_like< std::array< T, N > >
struct  tuple_like< T, std::void_t< std::tuple_element_t< 0, QRangeModelDetails::wrapped_t< T > > > >
struct  array_like
struct  array_like< std::array< T, N > >
struct  array_like< T[N]>
struct  has_metaobject
struct  has_metaobject< T, std::void_t< decltype(QRangeModelDetails::wrapped_t< T >::staticMetaObject)> >
struct  test_insert
struct  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  test_insert_range
struct  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  test_erase
struct  test_erase< C, std::void_t< decltype(std::declval< C >().erase(std::declval< typename C::const_iterator >(), std::declval< typename C::const_iterator >()))> >
struct  test_resize
struct  test_resize< C, std::void_t< decltype(std::declval< C >().resize(std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
struct  test_splice
struct  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  is_multi_role
struct  is_multi_role< C, std::void_t< typename C::key_type, typename C::mapped_type > >
struct  test_size
struct  test_size< C, std::void_t< decltype(size(std::declval< C & >()))> >
struct  test_cbegin
struct  test_cbegin< C, std::void_t< decltype(QRangeModelDetails::adl_begin(std::declval< const C & >()))> >
struct  range_traits
struct  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  iterable_value
struct  range_traits< QByteArray >
struct  range_traits< QString >
struct  range_traits< std::basic_string< CharT, Traits, Allocator > >
struct  range_traits< const T * >
struct  range_traits< QLatin1StringView >
struct  row_category
struct  row_category< T, std::void_t< decltype(QRangeModelRowOptions< T >::rowCategory)> >
struct  item_access
struct  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  row_traits
struct  row_traits< T, std::enable_if_t< tuple_like_v< T > > >
struct  row_traits< std::array< T, N > >
struct  row_traits< T[N]>
struct  row_traits< T, std::enable_if_t< has_metaobject_v< T > &&!tuple_like_v< T > > >
struct  item_traits
struct  item_traits< void >
struct  item_traits< T, std::enable_if_t< QRangeModelDetails::is_multi_role< T >::value > >
struct  item_traits< T, std::enable_if_t< QRangeModelDetails::has_metaobject_v< T > > >
struct  ListProtocol
struct  TableProtocol
struct  DefaultTreeProtocol
struct  protocol_newRow
struct  protocol_newRow< P, std::void_t< decltype(std::declval< P & >().newRow())> >
struct  protocol_deleteRow
struct  protocol_deleteRow< P, R, std::void_t< decltype(std::declval< P & >().deleteRow(std::declval< R && >()))> >
struct  is_tree_range
struct  is_tree_range< Range, Protocol, R, std::enable_if_t< std::conjunction_v< protocol_parentRow< Protocol, R >, protocol_childRows< Protocol, R > > > >
struct  protocol_traits
struct  PropertyData
struct  PropertyData< true, false >
struct  PropertyData< true, true >
struct  Storage
struct  Storage< ModelStorage, std::void_t< decltype(QRangeModelDetails::adl_begin(std::declval< const ModelStorage & >()))> >
struct  ModelData
struct  data_type
struct  data_type< void >
struct  test_pointerAccess
struct  test_pointerAccess< T * >
struct  test_pointerAccess< T, std::void_t< decltype(std::declval< T >().operator->())> >
struct  AsConstData
struct  AsConstData< const T & >
struct  AsConstData< T * >
struct  AsConstData< U< T >, std::enable_if_t< is_any_shared_ptr< U< T > >::value > >
struct  AsConstData< std::reference_wrapper< T > >
struct  RowView
struct  AsConstRow
struct  AsConstRow< T * >
struct  AsConstRow< U< T >, std::enable_if_t< is_any_shared_ptr< U< T > >::value > >
struct  AsConstRow< std::reference_wrapper< T > >
struct  AsConstRow< R< T, Args... >, if_range< R< T, Args... > > >
struct  AsConstRow< R< T *, Args... >, if_range< R< T *, Args... > > >
struct  AsConstRow< R< T, Args... >, std::enable_if_t< std::conjunction_v< is_range< R< T, Args... > >, is_any_shared_ptr< T > > > >
struct  ParentIndex
struct  ParentIndex< true >
struct  AdapterStorage

Typedefs

template<typename T, template< typename... > typename... Templates>
using is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>
template<typename T>
using is_any_unique_ptr
template<typename T>
using is_any_shared_ptr
template<typename T>
using is_owning_or_raw_pointer
template<typename T>
using wrapped_t = typename QRangeModelDetails::wrapped_helper<T>::type
template<typename T>
using is_wrapped
template<typename It>
using test_rotate
template<typename C>
using is_range = range_traits<C>
template<typename Range, typename R = typename range_traits<QRangeModelDetails::wrapped_t<Range>>::value_type>
using table_protocol_t
template<typename P, typename R>
using protocol_parentRow_test
template<typename P, typename R>
using protocol_parentRow = qxp::is_detected<protocol_parentRow_test, P, R>
template<typename P, typename R>
using protocol_childRows_test
template<typename P, typename R>
using protocol_childRows = qxp::is_detected<protocol_childRows_test, P, R>
template<typename P, typename R>
using protocol_setParentRow_test
template<typename P, typename R>
using protocol_setParentRow = qxp::is_detected<protocol_setParentRow_test, P, R>
template<typename P, typename R>
using protocol_mutable_childRows_test
template<typename P, typename R>
using protocol_mutable_childRows = qxp::is_detected<protocol_mutable_childRows_test, P, R>
template<typename Range>
using if_table_range
template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using if_tree_range
template<typename Range, typename Protocol>
using RangeImplementation
template<typename ... Args>
using construct_rangeModel_test = decltype(QRangeModel(std::declval<Args &&>()...))
template<typename ... Args>
using if_can_construct = std::enable_if_t<can_construct_rangeModel<Args...>, bool>
template<typename T>
using data_pointer_t
template<typename T>
using asConst_t = typename AsConstData<T>::type
template<typename T>
using if_range = std::enable_if_t<is_range_v<T>, bool>
template<typename T>
using asConstRow_t = typename AsConstRow<T>::type

Enumerations

enum class  Mutable { Yes , No }

Functions

Q_CORE_EXPORT QVariant qVariantAtIndex (const QModelIndex &index)
template<typename T>
static auto pointerTo (T &&t)
template<typename T>
static constexpr bool isValid (const T &t) noexcept
template<typename T>
static decltype(auto) refTo (T &&t)
template<typename It>
auto key (It &&it) -> decltype(it.key())
template<typename It>
auto key (It &&it) -> decltype((it->first))
template<typename It>
auto value (It &&it) -> decltype(it.value())
template<typename It>
auto value (It &&it) -> decltype((it->second))
template<typename C>
static auto adl_begin (C &&c) -> decltype(begin(QRangeModelDetails::refTo(std::forward< C >(c))))
template<typename C>
static auto adl_end (C &&c) -> decltype(end(QRangeModelDetails::refTo(std::forward< C >(c))))
template<typename C>
static auto pos (C &&c, int i)
template<typename C>
static void rotate (C &c, int src, int count, int dst)
template<typename Output, typename Input>
decltype(auto) forwardOrConvert (Input &&input)
template<typename Type>
static Type dataAtIndex (const QModelIndex &index)
template<typename Type>
static Type dataAtIndex (const QModelIndex &index, int role)

Variables

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

Typedef Documentation

◆ asConst_t

template<typename T>
using QRangeModelDetails::asConst_t = typename AsConstData<T>::type

Definition at line 90 of file qrangemodeladapter_impl.h.

◆ asConstRow_t

template<typename T>
using QRangeModelDetails::asConstRow_t = typename AsConstRow<T>::type

Definition at line 326 of file qrangemodeladapter_impl.h.

◆ construct_rangeModel_test

template<typename ... Args>
using QRangeModelDetails::construct_rangeModel_test = decltype(QRangeModel(std::declval<Args &&>()...))

Definition at line 38 of file qrangemodeladapter_impl.h.

◆ data_pointer_t

template<typename T>
using QRangeModelDetails::data_pointer_t
Initial value:
std::conditional_t<test_pointerAccess<T>::value,

Definition at line 73 of file qrangemodeladapter_impl.h.

◆ if_can_construct

template<typename ... Args>
using QRangeModelDetails::if_can_construct = std::enable_if_t<can_construct_rangeModel<Args...>, bool>

Definition at line 45 of file qrangemodeladapter_impl.h.

◆ if_range

template<typename T>
using QRangeModelDetails::if_range = std::enable_if_t<is_range_v<T>, bool>

Definition at line 295 of file qrangemodeladapter_impl.h.

◆ if_table_range

template<typename Range>
using QRangeModelDetails::if_table_range
Initial value:
std::enable_if_t<std::conjunction_v<
std::negation<is_tree_range<QRangeModelDetails::wrapped_t<Range>>>
>, bool>
range_traits< C > is_range

Definition at line 783 of file qrangemodel_impl.h.

◆ if_tree_range

template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using QRangeModelDetails::if_tree_range
Initial value:

Definition at line 789 of file qrangemodel_impl.h.

◆ is_any_of

template<typename T, template< typename... > typename... Templates>
using QRangeModelDetails::is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>

Definition at line 54 of file qrangemodel_impl.h.

◆ is_any_shared_ptr

template<typename T>
using QRangeModelDetails::is_any_shared_ptr
Initial value:
is_any_of<T, std::shared_ptr, QSharedPointer,
\inmodule QtCore
\inmodule QtCore
is_any_of_impl< std::remove_cv_t< T >, Templates... > is_any_of

Definition at line 87 of file qrangemodel_impl.h.

◆ is_any_unique_ptr

template<typename T>
using QRangeModelDetails::is_any_unique_ptr
Initial value:

Definition at line 79 of file qrangemodel_impl.h.

◆ is_owning_or_raw_pointer

Initial value:
std::disjunction<is_any_shared_ptr<T>, is_any_unique_ptr<T>,
std::is_pointer<T>>
is_any_of< T, QScopedPointer, std::unique_ptr > is_any_unique_ptr

Definition at line 91 of file qrangemodel_impl.h.

◆ is_range

template<typename C>
using QRangeModelDetails::is_range = range_traits<C>

Definition at line 388 of file qrangemodel_impl.h.

◆ is_wrapped

template<typename T>
using QRangeModelDetails::is_wrapped
Initial value:
std::negation<std::is_same<
QRangeModelDetails::wrapped_t<T>, std::remove_reference_t<T>
>>

Definition at line 123 of file qrangemodel_impl.h.

◆ protocol_childRows

Definition at line 742 of file qrangemodel_impl.h.

◆ protocol_childRows_test

template<typename P, typename R>
using QRangeModelDetails::protocol_childRows_test
Initial value:
decltype(std::declval<P&>()
.childRows(std::declval<QRangeModelDetails::wrapped_t<R>&>()))

Definition at line 739 of file qrangemodel_impl.h.

◆ protocol_mutable_childRows

◆ protocol_mutable_childRows_test

template<typename P, typename R>
using QRangeModelDetails::protocol_mutable_childRows_test
Initial value:
decltype(QRangeModelDetails::refTo(std::declval<P&>()
.childRows(std::declval<QRangeModelDetails::wrapped_t<R>&>())) = {})
static decltype(auto) refTo(T &&t)

Definition at line 752 of file qrangemodel_impl.h.

◆ protocol_parentRow

Definition at line 736 of file qrangemodel_impl.h.

◆ protocol_parentRow_test

template<typename P, typename R>
using QRangeModelDetails::protocol_parentRow_test
Initial value:
decltype(std::declval<P&>()
.parentRow(std::declval<QRangeModelDetails::wrapped_t<R>&>()))

Definition at line 733 of file qrangemodel_impl.h.

◆ protocol_setParentRow

Definition at line 749 of file qrangemodel_impl.h.

◆ protocol_setParentRow_test

template<typename P, typename R>
using QRangeModelDetails::protocol_setParentRow_test
Initial value:
decltype(std::declval<P&>()
.setParentRow(std::declval<QRangeModelDetails::wrapped_t<R>&>(),

Definition at line 745 of file qrangemodel_impl.h.

◆ RangeImplementation

template<typename Range, typename Protocol>
using QRangeModelDetails::RangeImplementation
Initial value:

Definition at line 29 of file qrangemodeladapter_impl.h.

◆ table_protocol_t

template<typename Range, typename R = typename range_traits<QRangeModelDetails::wrapped_t<Range>>::value_type>
using QRangeModelDetails::table_protocol_t
Initial value:

Definition at line 698 of file qrangemodel_impl.h.

◆ test_rotate

template<typename It>
using QRangeModelDetails::test_rotate
Initial value:
std::conjunction<
std::is_swappable<decltype(*std::declval<It>())>,
std::is_base_of<std::forward_iterator_tag,
typename std::iterator_traits<It>::iterator_category>
>

Definition at line 259 of file qrangemodel_impl.h.

◆ wrapped_t

Definition at line 120 of file qrangemodel_impl.h.

Enumeration Type Documentation

◆ Mutable

enum class QRangeModelDetails::Mutable
strong
Enumerator
Yes 
No 

Definition at line 366 of file qrangemodel_impl.h.

Function Documentation

◆ adl_begin()

template<typename C>
auto QRangeModelDetails::adl_begin ( C && c) -> decltype(begin(QRangeModelDetails::refTo(std::forward< C >(c))))
static

Definition at line 193 of file qrangemodel_impl.h.

◆ adl_end()

template<typename C>
auto QRangeModelDetails::adl_end ( C && c) -> decltype(end(QRangeModelDetails::refTo(std::forward< C >(c))))
static

Definition at line 196 of file qrangemodel_impl.h.

◆ dataAtIndex() [1/2]

template<typename Type>
Type QRangeModelDetails::dataAtIndex ( const QModelIndex & index)
inlinestatic

Definition at line 331 of file qrangemodeladapter_impl.h.

◆ dataAtIndex() [2/2]

template<typename Type>
Type QRangeModelDetails::dataAtIndex ( const QModelIndex & index,
int role )
inlinestatic

Definition at line 343 of file qrangemodeladapter_impl.h.

◆ forwardOrConvert()

template<typename Output, typename Input>
decltype(auto) QRangeModelDetails::forwardOrConvert ( Input && input)

Definition at line 48 of file qrangemodeladapter_impl.h.

◆ isValid()

template<typename T>
constexpr bool QRangeModelDetails::isValid ( const T & t)
staticconstexprnoexcept

Definition at line 155 of file qrangemodel_impl.h.

◆ key() [1/2]

template<typename It>
auto QRangeModelDetails::key ( It && it) -> decltype((it->first))

Definition at line 181 of file qrangemodel_impl.h.

◆ key() [2/2]

template<typename It>
auto QRangeModelDetails::key ( It && it) -> decltype(it.key())

Definition at line 179 of file qrangemodel_impl.h.

◆ pointerTo()

template<typename T>
auto QRangeModelDetails::pointerTo ( T && t)
static

Definition at line 95 of file qrangemodel_impl.h.

◆ pos()

template<typename C>
auto QRangeModelDetails::pos ( C && c,
int i )
static

Definition at line 199 of file qrangemodel_impl.h.

◆ qVariantAtIndex()

Q_CORE_EXPORT QVariant QRangeModelDetails::qVariantAtIndex ( const QModelIndex & index)

Definition at line 221 of file qrangemodel.cpp.

◆ refTo()

template<typename T>
decltype(auto) QRangeModelDetails::refTo ( T && t)
static

Definition at line 166 of file qrangemodel_impl.h.

◆ rotate()

template<typename C>
void QRangeModelDetails::rotate ( C & c,
int src,
int count,
int dst )
static

Definition at line 279 of file qrangemodel_impl.h.

◆ value() [1/2]

template<typename It>
auto QRangeModelDetails::value ( It && it) -> decltype((it->second))

Definition at line 186 of file qrangemodel_impl.h.

◆ value() [2/2]

template<typename It>
auto QRangeModelDetails::value ( It && it) -> decltype(it.value())

Definition at line 184 of file qrangemodel_impl.h.

Variable Documentation

◆ array_like_v

template<typename T>
bool QRangeModelDetails::array_like_v = array_like<T>::value
staticconstexpr

Definition at line 144 of file qrangemodel_impl.h.

◆ can_construct_rangeModel

template<typename ... Args>
bool QRangeModelDetails::can_construct_rangeModel
staticconstexpr
Initial value:
Args...>
decltype(QRangeModel(std::declval< Args && >()...)) construct_rangeModel_test
constexpr bool is_detected_v

Definition at line 41 of file qrangemodeladapter_impl.h.

◆ has_metaobject_v

template<typename T>
bool QRangeModelDetails::has_metaobject_v = has_metaobject<T>::value
staticconstexpr

Definition at line 152 of file qrangemodel_impl.h.

◆ is_multi_role_v

template<typename C>
bool QRangeModelDetails::is_multi_role_v = is_multi_role<C>::value
staticconstexpr

Definition at line 320 of file qrangemodel_impl.h.

◆ is_range_v

template<typename C>
bool QRangeModelDetails::is_range_v = is_range<C>()
staticconstexpr

Definition at line 390 of file qrangemodel_impl.h.

◆ static_size_v

template<typename T>
int QRangeModelDetails::static_size_v
staticconstexpr

◆ tuple_like_v

template<typename T>
bool QRangeModelDetails::tuple_like_v = tuple_like<T>::value
staticconstexpr

Definition at line 135 of file qrangemodel_impl.h.