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
qgenericitemmodel_impl.h File Reference

(546192a6fe0530530c2cca1e9d162648c8faf427)

#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 qgenericitemmodel_impl.h:

Go to the source code of this file.

Classes

struct  QGenericItemModelDetails::is_any_of_impl< T, Templates >
 
struct  QGenericItemModelDetails::is_any_of_impl< Template< Params... >, Template, Templates... >
 
struct  QGenericItemModelDetails::is_any_of_impl< T, Template, Templates... >
 
struct  QGenericItemModelDetails::is_smart_ptr< T, typename >
 
struct  QGenericItemModelDetails::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  QGenericItemModelDetails::test_insert< C, typename >
 
struct  QGenericItemModelDetails::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  QGenericItemModelDetails::test_insert_range< C, typename >
 
struct  QGenericItemModelDetails::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  QGenericItemModelDetails::test_erase< C, typename >
 
struct  QGenericItemModelDetails::test_erase< C, std::void_t< decltype(std::declval< C >().erase(std::declval< typename C::const_iterator >(), std::declval< typename C::const_iterator >()))> >
 
struct  QGenericItemModelDetails::test_resize< C, typename >
 
struct  QGenericItemModelDetails::test_resize< C, std::void_t< decltype(std::declval< C >().resize(std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
 
struct  QGenericItemModelDetails::is_multi_role< C, typename >
 
struct  QGenericItemModelDetails::is_multi_role< C, std::void_t< typename C::key_type, typename C::mapped_type > >
 
struct  QGenericItemModelDetails::test_size< C, typename >
 
struct  QGenericItemModelDetails::test_size< C, std::void_t< decltype(std::size(std::declval< C & >()))> >
 
struct  QGenericItemModelDetails::range_traits< C, typename >
 
struct  QGenericItemModelDetails::range_traits< C, std::void_t< decltype(cbegin(std::declval< C & >())), decltype(cend(std::declval< C & >())), std::enable_if_t<!is_multi_role_v< C > > > >
 
struct  QGenericItemModelDetails::iterable_value< IsMutable >
 
struct  QGenericItemModelDetails::range_traits< QByteArray >
 
struct  QGenericItemModelDetails::range_traits< QString >
 
struct  QGenericItemModelDetails::range_traits< std::basic_string< CharT, Traits, Allocator > >
 
struct  QGenericItemModelDetails::range_traits< const T * >
 
struct  QGenericItemModelDetails::range_traits< QLatin1StringView >
 
struct  QGenericItemModelDetails::row_traits< T, typename >
 
struct  QGenericItemModelDetails::row_traits< T, std::void_t< std::tuple_element_t< 0, T > > >
 
struct  QGenericItemModelDetails::row_traits< T[N]>
 
struct  QGenericItemModelDetails::make_void< Ts >
 
struct  QGenericItemModelDetails::row_traits< T, typename make_void< decltype(T::staticMetaObject)>::type >
 
struct  QGenericItemModelDetails::has_metaobject< T, typename >
 
struct  QGenericItemModelDetails::has_metaobject< T, std::void_t< decltype(wrapped_t< T >::staticMetaObject)> >
 
struct  QGenericItemModelDetails::ListProtocol< Range >
 
struct  QGenericItemModelDetails::TableProtocol< Range >
 
struct  QGenericItemModelDetails::DefaultTreeProtocol< Range >
 
struct  QGenericItemModelDetails::protocol_parentRow< P, R, typename >
 
struct  QGenericItemModelDetails::protocol_parentRow< P, R, std::void_t< decltype(std::declval< P & >().parentRow(std::declval< wrapped_t< R > & >()))> >
 
struct  QGenericItemModelDetails::protocol_childRows< P, R, typename >
 
struct  QGenericItemModelDetails::protocol_childRows< P, R, std::void_t< decltype(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))> >
 
struct  QGenericItemModelDetails::protocol_setParentRow< P, R, typename >
 
struct  QGenericItemModelDetails::protocol_setParentRow< P, R, std::void_t< decltype(std::declval< P & >().setParentRow(std::declval< wrapped_t< R > & >(), std::declval< wrapped_t< R > * >()))> >
 
struct  QGenericItemModelDetails::protocol_mutable_childRows< P, R, typename >
 
struct  QGenericItemModelDetails::protocol_mutable_childRows< P, R, std::void_t< decltype(refTo(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))={}) > >
 
struct  QGenericItemModelDetails::protocol_newRow< P, typename >
 
struct  QGenericItemModelDetails::protocol_newRow< P, std::void_t< decltype(std::declval< P & >().newRow())> >
 
struct  QGenericItemModelDetails::protocol_deleteRow< P, R, typename >
 
struct  QGenericItemModelDetails::protocol_deleteRow< P, R, std::void_t< decltype(std::declval< P & >().deleteRow(std::declval< R && >()))> >
 
struct  QGenericItemModelDetails::is_tree_range< Range, Protocol, R, typename >
 
struct  QGenericItemModelDetails::is_tree_range< Range, Protocol, R, std::enable_if_t< std::conjunction_v< protocol_parentRow< Protocol, R >, protocol_childRows< Protocol, R > > > >
 
struct  QGenericItemModelDetails::protocol_traits< Range, Protocol >
 
struct  QGenericItemModelDetails::ModelData< ModelStorage >
 
class  QGenericItemModelImplBase
 
class  QGenericItemModelImpl< Structure, Range, Protocol >
 
struct  QGenericItemModelImpl< Structure, Range, Protocol >::EmptyRowGenerator
 
class  QGenericTreeItemModelImpl< Range, Protocol >
 
class  QGenericTableItemModelImpl< Range >
 

Namespaces

namespace  QGenericItemModelDetails
 

Typedefs

template<typename T, template< typename... > typename... Templates>
using QGenericItemModelDetails::is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>
 
template<typename T>
using QGenericItemModelDetails::is_validatable = std::is_constructible<bool, T>
 
template<typename T>
using QGenericItemModelDetails::is_any_unique_ptr = is_any_of<T, std::unique_ptr, QScopedPointer>
 
template<typename T>
using QGenericItemModelDetails::is_any_shared_ptr
 
template<typename T>
using QGenericItemModelDetails::is_owning_or_raw_pointer
 
template<typename T>
using QGenericItemModelDetails::wrapped_t = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>
 
template<typename T>
using QGenericItemModelDetails::is_wrapped = std::negation<std::is_same<wrapped_t<T>, std::remove_reference_t<T>>>
 
template<typename Range, typename R = typename range_traits<wrapped_t<Range>>::value_type>
using QGenericItemModelDetails::table_protocol_t
 
template<typename Range>
using QGenericItemModelDetails::if_is_table_range
 
template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using QGenericItemModelDetails::if_is_tree_range
 

Enumerations

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

Functions

template<typename T>
static auto QGenericItemModelDetails::pointerTo (T &&t)
 
template<typename T>
static constexpr bool QGenericItemModelDetails::isValid (const T &t) noexcept
 
template<typename T>
static decltype(auto) QGenericItemModelDetails::refTo (T &&t)
 
template<typename It>
auto QGenericItemModelDetails::key (It &&it) -> decltype(it.key())
 
template<typename It>
auto QGenericItemModelDetails::value (It &&it) -> decltype(it.value())
 
template<typename C>
static auto QGenericItemModelDetails::begin (C &&c) -> decltype(std::begin(refTo(std::forward< C >(c))))
 
template<typename C>
static auto QGenericItemModelDetails::end (C &&c) -> decltype(std::end(refTo(std::forward< C >(c))))
 
template<typename C>
static auto QGenericItemModelDetails::cbegin (C &&c) -> decltype(std::cbegin(refTo(std::forward< C >(c))))
 
template<typename C>
static auto QGenericItemModelDetails::cend (C &&c) -> decltype(std::cend(refTo(std::forward< C >(c))))
 
template<typename C>
static auto QGenericItemModelDetails::pos (C &&c, int i)
 
template<typename C>
static auto QGenericItemModelDetails::cpos (C &&c, int i)
 

Variables

template<typename C>
static constexpr bool QGenericItemModelDetails::is_multi_role_v = is_multi_role<C>::value
 
template<typename C>
static constexpr bool QGenericItemModelDetails::is_range_v = range_traits<C>()
 
template<typename T>
static constexpr int QGenericItemModelDetails::static_size_v
 
template<typename T>
static constexpr bool QGenericItemModelDetails::has_metaobject_v = has_metaobject<T>::value