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  array_like
struct  array_like< std::array< T, N > >
struct  array_like< T[N]>
struct  DefaultTreeProtocol
struct  has_metaobject
struct  has_metaobject< T, std::void_t< decltype(wrapped_t< T >::staticMetaObject)> >
struct  is_any_of_impl
struct  is_any_of_impl< T, Template, Templates... >
struct  is_any_of_impl< Template< Params... >, Template, Templates... >
struct  is_multi_role
struct  is_multi_role< C, std::void_t< typename C::key_type, typename C::mapped_type > >
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  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  is_validatable
struct  is_validatable< T, std::void_t< decltype(*std::declval< T >())> >
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  iterable_value
struct  ListProtocol
struct  ModelData
struct  PropertyData
struct  PropertyData< true >
struct  protocol_childRows
struct  protocol_childRows< P, R, std::void_t< decltype(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))> >
struct  protocol_deleteRow
struct  protocol_deleteRow< P, R, std::void_t< decltype(std::declval< P & >().deleteRow(std::declval< R && >()))> >
struct  protocol_mutable_childRows
struct  protocol_mutable_childRows< P, R, std::void_t< decltype(refTo(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))={}) > >
struct  protocol_newRow
struct  protocol_newRow< P, std::void_t< decltype(std::declval< P & >().newRow())> >
struct  protocol_parentRow
struct  protocol_parentRow< P, R, std::void_t< decltype(std::declval< P & >().parentRow(std::declval< wrapped_t< R > & >()))> >
struct  protocol_setParentRow
struct  protocol_setParentRow< P, R, std::void_t< decltype(std::declval< P & >().setParentRow(std::declval< wrapped_t< R > & >(), std::declval< wrapped_t< R > * >()))> >
struct  protocol_traits
struct  QRangeModelItemAccess
struct  QRangeModelRowOptions
struct  range_traits
struct  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  range_traits< const T * >
struct  range_traits< QByteArray >
struct  range_traits< QLatin1StringView >
struct  range_traits< QString >
struct  range_traits< std::basic_string< CharT, Traits, Allocator > >
struct  row_category
struct  row_category< T, std::void_t< decltype(QRangeModelRowOptions< T >::rowCategory)> >
struct  row_traits
struct  row_traits< std::array< T, N > >
struct  row_traits< T, std::enable_if_t< has_metaobject_v< T > &&!tuple_like_v< T > > >
struct  row_traits< T, std::enable_if_t< tuple_like_v< T > > >
struct  row_traits< T[N]>
struct  Storage
struct  Storage< ModelStorage, std::void_t< decltype(begin(std::declval< const ModelStorage & >()))> >
struct  TableProtocol
struct  test_cbegin
struct  test_cbegin< C, std::void_t< decltype(std::begin(std::declval< const C & >()))> >
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_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_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_rotate
struct  test_rotate< It, std::void_t< decltype(std::swap(*std::declval< It >(), *std::declval< It >()))> >
struct  test_size
struct  test_size< C, std::void_t< decltype(std::size(std::declval< C & >()))> >
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  tuple_like
struct  tuple_like< std::array< T, N > >
struct  tuple_like< T, std::void_t< std::tuple_element_t< 0, wrapped_t< T > > > >

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 = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>
template<typename T>
using is_wrapped = std::negation<std::is_same<wrapped_t<T>, std::remove_reference_t<T>>>
template<typename C>
using is_range = range_traits<C>
template<typename Range, typename R = typename range_traits<wrapped_t<Range>>::value_type>
using table_protocol_t
template<typename Range>
using if_table_range
template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using if_tree_range

Enumerations

enum class  Mutable { Yes , No }

Functions

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 value (It &&it) -> decltype(it.value())
template<typename C>
static auto begin (C &&c) -> decltype(std::begin(refTo(std::forward< C >(c))))
template<typename C>
static auto end (C &&c) -> decltype(std::end(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)

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

Typedef Documentation

◆ if_table_range

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

Definition at line 831 of file qrangemodel_impl.h.

◆ if_tree_range

template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using QRangeModelDetails::if_tree_range
Initial value:
std::enable_if_t<std::conjunction_v<is_range<wrapped_t<Range>>,
bool>
std::remove_pointer_t< decltype(pointerTo(std::declval< T & >()))> wrapped_t

Definition at line 836 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 263 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
Definition qshareddata.h:35
\inmodule QtCore
is_any_of_impl< std::remove_cv_t< T >, Templates... > is_any_of

Definition at line 296 of file qrangemodel_impl.h.

◆ is_any_unique_ptr

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

Definition at line 288 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 300 of file qrangemodel_impl.h.

◆ is_range

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

Definition at line 580 of file qrangemodel_impl.h.

◆ is_wrapped

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

Definition at line 322 of file qrangemodel_impl.h.

◆ table_protocol_t

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

Definition at line 741 of file qrangemodel_impl.h.

◆ wrapped_t

template<typename T>
using QRangeModelDetails::wrapped_t = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>

Definition at line 319 of file qrangemodel_impl.h.

Enumeration Type Documentation

◆ Mutable

enum class QRangeModelDetails::Mutable
strong
Enumerator
Yes 
No 

Definition at line 558 of file qrangemodel_impl.h.

Function Documentation

◆ begin()

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

Definition at line 386 of file qrangemodel_impl.h.

◆ end()

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

Definition at line 389 of file qrangemodel_impl.h.

◆ isValid()

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

Definition at line 351 of file qrangemodel_impl.h.

◆ key()

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

Definition at line 375 of file qrangemodel_impl.h.

◆ pointerTo()

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

Definition at line 304 of file qrangemodel_impl.h.

◆ pos()

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

Definition at line 392 of file qrangemodel_impl.h.

◆ refTo()

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

Definition at line 362 of file qrangemodel_impl.h.

◆ rotate()

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

Definition at line 472 of file qrangemodel_impl.h.

◆ value()

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

Definition at line 380 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 340 of file qrangemodel_impl.h.

◆ has_metaobject_v

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

Definition at line 348 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 513 of file qrangemodel_impl.h.

◆ is_range_v

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

Definition at line 582 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 331 of file qrangemodel_impl.h.