swift
Loading...
Searching...
No Matches
swift::misc::CVariantList Class Reference

Value object encapsulating a list of variants. More...

#include <variantlist.h>

Inheritance diagram for swift::misc::CVariantList:
[legend]

Public Member Functions

 CVariantList ()=default
 Default constructor.
 CVariantList (const CSequence &other)
 Construct from a base class object.
 CVariantList (const QVariantList &other)
 Construct from a QVariantList.
 CVariantList (QVariantList &&other)
 Construct from a moved QVariantList.
template<typename T>
T to () const
 Convert to a sequence type by converting all elements.
bool matches (const CVariant &event) const
 True if any element of the list matches the given event.
 CSequence ()=default
 Default constructor.
 CSequence (std::initializer_list< T > il)
 Initializer list constructor.
 CSequence (QList< T > &&list)
 By QList of type T.
 CSequence (const QList< T > &list)
 By QList of type T.
template<typename It>
 CSequence (It first, It last)
 Range constructor.
 CSequence (const CSequence &other)=default
 Copy constructor.
 CSequence (CSequence &&other)=default
 Move constructor.
Public Member Functions inherited from swift::misc::CSequence< CVariant >
 CSequence ()=default
 Default constructor.
CSequence & operator= (const CSequence &other)=default
 Copy assignment.
 ~CSequence ()=default
 Destructor.
QVector< CVariant > toVector () const &
 Copy of internal vector.
iterator begin ()
 Returns iterator at the beginning of the sequence.
const_iterator cbegin () const
 Returns const iterator at the beginning of the sequence.
iterator end ()
 Returns iterator one past the end of the sequence.
const_iterator cend () const
 Returns const iterator one past the end of the sequence.
reverse_iterator rbegin ()
 Returns iterator at the beginning of the reversed sequence.
const_reverse_iterator crbegin () const
 Returns const iterator at the beginning of the reversed sequence.
reverse_iterator rend ()
 Returns iterator at the end of the reversed sequence.
const_reverse_iterator crend () const
 Returns const iterator at the end of the reversed sequence.
void swap (CSequence &other) noexcept
 Swap this sequence with another.
reference operator[] (size_type index)
 Access an element by its index.
reference front ()
 Access the first element.
const_reference frontOrDefault () const
 Access the first element, or a default-initialized value if the sequence is empty.
reference back ()
 Access the last element.
const_reference backOrDefault () const
 Access the last element, or a default value if the sequence is empty.
size_type size () const
 Returns number of elements in the sequence.
int sizeInt () const
 Avoid compiler warnings when using with int.
QString sizeString () const
 Convenience function.
bool empty () const
 Returns true if the sequence is empty.
bool isEmpty () const
 Synonym for empty.
void clear ()
 Removes all elements in the sequence.
void truncate (size_type maxSize)
 Changes the size of the sequence, if it is bigger than the given size.
iterator insert (iterator before, const CVariant &value)
 Inserts an element into the sequence.
void push_back (const CVariant &value)
 Appends an element at the end of the sequence.
void push_front (const CVariant &value)
 Insert as first element.
void push_frontMaxElements (const CVariant &value, int maxElements)
 Insert as first element by keep maxElements.
void push_backMaxElements (const CVariant &value, int maxElements)
 Insert as last element by keep maxElements.
CSequence join (const CSequence &other) const
 Concatenates two sequences and returns the result.
void pop_back ()
 Removes an element at the end of the sequence.
void pop_front ()
 Removes an element at the front of the sequence.
iterator erase (iterator pos)
 Remove the element pointed to by the given iterator.
iterator find (const CVariant &object)
 Return an iterator to the first element equal to the given object, or the end iterator if not found. O(n).
CSequence findBy (Predicate p) const
 Return a copy containing only those elements for which a given predicate returns true.
int applyIf (Predicate p, const VariantMap &newValues, bool skipEqualValues=false)
 Modify by applying a value map to each element for which a given predicate returns true.
int remove (const CVariant &object)
 Remove all elements equal to the given object, if it is contained.
int removeIf (Predicate p)
 Remove elements for which a given predicate returns true.
int removeIfIn (const CSequence &other)
 Remove all elements if they are in other.
void removeIfInSubset (const CSequence &other)
 Remove all elements if they are in other.
int replace (const CVariant &original, const CVariant &replacement)
 Replace elements matching the given element with a replacement.
int replaceIf (Predicate p, const CVariant &replacement)
 Replace elements for which a given predicate returns true.
void replaceOrAdd (const CVariant &original, const CVariant &replacement)
 Replace elements matching the given element. If there is no match, push the new element on the end.
void reverse ()
 In-place reverse.
Q_REQUIRED_RESULT CSequence reversed () const
 Reversed order.
void sort (Predicate p)
 In-place sort by a given comparator predicate.
void sortBy (K1 key1, Keys... keys)
 In-place sort by some particular key(s).
Q_REQUIRED_RESULT CSequence sorted (Predicate p) const
 Return a copy sorted by a given comparator predicate.
CSequence sortedBy (K1 key1, Keys... keys) const
 Return a copy sorted by some particular key(s).
void partiallySort (size_type n, Predicate p)
 In-place move the smallest n elements to the beginning and sort them.
void partiallySortBy (size_type n, K1 key1, Keys... keys)
 In-place partially sort by some particular key(s).
Q_REQUIRED_RESULT CSequence partiallySorted (size_type n, Predicate p) const
 Return a copy with the smallest n elements at the beginning and sorted.
CSequence partiallySortedBy (size_type n, K1 key1, Keys... keys) const
 Return a copy partially sorted by some particular key(s).
bool unorderedEqualsByKeys (const U &other, Key0 k0, Keys... keys) const
 Return true if this container equals another container, considering only the given element members. Order of elements is not considered; this is implemented using a transient sort, so don't overuse.
auto separate (Predicate p) const -> QMap< decltype(p(std::declval< CVariant >())), CSequence >
 Split up the sequence into subsequences for which the given predicate returns the same value.
auto separateBy (Key k) const -> QMap< decltype(std::invoke(k, std::declval< CVariant >())), CSequence >
 Split up the sequence into subsequences of elements having the same value for the given key.
void marshalToDataStream (QDataStream &stream) const
 Marshal a value to a QDataStream.
void unmarshalFromDataStream (QDataStream &stream)
 Unmarshal a value from a QDataStream.
Public Member Functions inherited from swift::misc::CContainerBase< CSequence< CVariant > >
auto to () const
 Return a new container of a different type, containing the same elements as this one.
int removeIf (K0 k0, V0 v0, KeysValues... keysValues)
 Remove elements matching some particular key/value pair(s).
QJsonObject toJson () const
 Cast to JSON object.
QString toJsonString (QJsonDocument::JsonFormat format=QJsonDocument::Indented) const
 Convenience function JSON as string.
void convertFromJson (const QJsonObject &json)
 Assign from JSON object.
CStatusMessage convertFromJsonNoThrow (const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix)
 Call convertFromJson, catch any CJsonException that is thrown and return it as CStatusMessage.
QString convertToQString (bool i18n=false) const
 Cast as QString.
QStringList toStringList (bool i18n=false) const
 To string list.
void marshallToDbus (QDBusArgument &argument) const
 Marshall without begin/endStructure, for when composed within another object.
void unmarshallFromDbus (const QDBusArgument &argument)
 Unmarshall without begin/endStructure, for when composed within another object.
Public Member Functions inherited from swift::misc::CRangeBase< CSequence< CVariant > >
auto transform (F function) const
 Return a new container generated by applying some transformation function to all elements of this one.
auto findBy (Predicate p) const
 Return a copy containing only those elements for which a given predicate returns true.
const auto & findFirstBy (Predicate p) const
 Return a reference to the first element for which a given predicate returns true. Undefined if there is none.
auto findFirstByOrDefault (Predicate p, const Value &def) const
 Return a copy of the first element for which a given predicate returns true, or a default value if there is none.
bool containsBy (Predicate p) const
 Return true if there is an element for which a given predicate returns true.
bool contains (const T &object) const
 Return true if there is an element equal to given object. Uses the most efficient implementation available in the derived container.
bool equalsBy (const T &other, Predicate c) const
 Return true if this container equals another container according to the given element equality predicate.
bool equalsByKeys (const T &other, Key0 k0, Keys... keys) const
 Return true if this container equals another container, considering only the given element members.
T randomElement () const
 Pick one random element.
CSequence< CVariant > randomElements (int n) const
 Copy n elements from the container at random.
CSequence< CVariant > sampleElements (int n) const
 Copy n elements from the container, randomly selected but evenly distributed.
Public Member Functions inherited from swift::misc::mixin::MetaType< CSequence< CVariant > >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
QString getClassName () const
 Class name.
bool isA (int metaTypeId) const
 Returns true if this object is an instance of the class with the given meta type ID, or one of its subclasses.
Public Member Functions inherited from swift::misc::mixin::String< CSequence< CVariant > >
QString toQString (bool i18n=false) const
 Cast as QString.
std::string toStdString (bool i18n=false) const
 To std string.
QString stringForStreaming () const
 String for streaming operators.
Public Member Functions inherited from swift::misc::mixin::Icon< CSequence< CVariant > >
CIcons::CIcons::StandardIconUnknown16 toIcon () const
 As icon, not implemented by all classes.
Public Member Functions inherited from swift::misc::mixin::MetaType< CVariantList >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
QString getClassName () const
 Class name.
bool isA (int metaTypeId) const
 Returns true if this object is an instance of the class with the given meta type ID, or one of its subclasses.

Static Public Member Functions

template<typename T>
static CVariantList from (const T &list)
 Convert from a sequence type by converting all elements.
static void registerMetadata ()
 Register metadata.
Static Public Member Functions inherited from swift::misc::CContainerBase< CSequence< CVariant > >
static CSequence< CVariant > fromJson (const QJsonObject &json)
 Static version of convertFromJson.
static CSequence< CVariant > fromJsonNoThrow (const QString &jsonString, bool acceptCacheJson, bool &success, QString &errMsg)
 Static version of convertFromJson.
Static Public Member Functions inherited from swift::misc::mixin::MetaType< CSequence< CVariant > >
static void registerMetadata ()
 Register metadata.
Static Public Member Functions inherited from swift::misc::mixin::MetaType< CVariantList >
static void registerMetadata ()
 Register metadata.

Additional Inherited Members

Public Types inherited from swift::misc::CSequence< CVariant >
using key_type
 STL compatibility.
using value_type
 STL compatilibty.
using reference
 STL compatibility.
using const_reference
 STL compatibility.
using pointer
 STL compatibility.
using const_pointer
 STL compatibility.
using const_iterator
 STL compatibility.
using iterator
 STL compatibility.
using const_reverse_iterator
 STL compatibility.
using reverse_iterator
 STL compatibility.
using difference_type
 STL compatibility.
using size_type
 STL compatibility.
Protected Member Functions inherited from swift::misc::CContainerBase< CSequence< CVariant > >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
Static Protected Member Functions inherited from swift::misc::CRangeBase< CSequence< CVariant > >
static bool equalPointers (const T *a, const U *b)
 Efficiently compare addresses of two objects. Return false if types are not compatible.

Detailed Description

Value object encapsulating a list of variants.

A CVariant containing any registered sequential container type can be converted to a CVariantList.

Definition at line 28 of file variantlist.h.

Constructor & Destructor Documentation

◆ CVariantList() [1/3]

swift::misc::CVariantList::CVariantList ( const CSequence & other)

Construct from a base class object.

Definition at line 15 of file variantlist.cpp.

◆ CVariantList() [2/3]

swift::misc::CVariantList::CVariantList ( const QVariantList & other)

Construct from a QVariantList.

Definition at line 17 of file variantlist.cpp.

◆ CVariantList() [3/3]

swift::misc::CVariantList::CVariantList ( QVariantList && other)

Construct from a moved QVariantList.

Definition at line 22 of file variantlist.cpp.

Member Function Documentation

◆ CSequence() [1/4]

swift::misc::CSequence< T >::CSequence ( const QList< T > & list)
inline

By QList of type T.

Definition at line 134 of file sequence.h.

◆ CSequence() [2/4]

template<typename It>
swift::misc::CSequence< T >::CSequence ( It first,
It last )
inline

Range constructor.

Definition at line 138 of file sequence.h.

◆ CSequence() [3/4]

swift::misc::CSequence< T >::CSequence ( QList< T > && list)
inline

By QList of type T.

Definition at line 131 of file sequence.h.

◆ CSequence() [4/4]

swift::misc::CSequence< T >::CSequence ( std::initializer_list< T > il)
inline

Initializer list constructor.

Definition at line 128 of file sequence.h.

◆ from()

template<typename T>
CVariantList swift::misc::CVariantList::from ( const T & list)
inlinestatic

Convert from a sequence type by converting all elements.

Definition at line 55 of file variantlist.h.

◆ matches()

bool swift::misc::CVariantList::matches ( const CVariant & event) const

True if any element of the list matches the given event.

Definition at line 37 of file variantlist.cpp.

◆ registerMetadata()

void swift::misc::CVariantList::registerMetadata ( )
static

Register metadata.

Definition at line 27 of file variantlist.cpp.

◆ to()

template<typename T>
T swift::misc::CVariantList::to ( ) const
inline

Convert to a sequence type by converting all elements.

Definition at line 48 of file variantlist.h.


The documentation for this class was generated from the following files: