knowL: Knowledge Libraries
Loading...
Searching...
No Matches
UriList.h
1#pragma once
2
3#include <QStringList>
4#include "Uris/Uris.h"
5
6namespace knowCore
7{
8 class UriList : public QList<Uri>
9 {
10 public:
11 inline UriList(std::initializer_list<QString> args) : UriList(QList<QString>(args)) { }
12 template<typename _T_, std::enable_if_t<Uris::IsUriDefinitionV<_T_>, bool> = true>
13 inline UriList(std::initializer_list<_T_> args) Q_DECL_NOTHROW {
14 std::copy(args.begin(), args.end(), std::front_inserter(*this));
15 }
16 inline UriList(const QList<QString>& _other) Q_DECL_NOTHROW {
17 std::copy(_other.begin(), _other.end(), std::front_inserter(*this));
18 }
19 inline UriList() Q_DECL_NOTHROW { }
20 inline explicit UriList(const Uri &i) { append(i); }
21 inline UriList(const QList<Uri> &l) : QList<Uri>(l) { }
22#ifdef Q_COMPILER_RVALUE_REFS
23 inline UriList(QList<Uri> &&l) Q_DECL_NOTHROW : QList<Uri>(std::move(l)) { }
24#endif
25#ifdef Q_COMPILER_INITIALIZER_LISTS
26 inline UriList(std::initializer_list<Uri> args) : QList<Uri>(args) { }
27#endif
28
29 UriList &operator=(const QList<QString> &_other)
30 {
31 clear();
32 std::copy(_other.begin(), _other.end(), std::front_inserter(*this));
33 return *this;
34 }
35 UriList &operator=(const QList<Uri> &other)
36 { QList<Uri>::operator=(other); return *this; }
37#ifdef Q_COMPILER_RVALUE_REFS
38 UriList &operator=(QList<Uri> &&other) Q_DECL_NOTHROW
39 { QList<Uri>::operator=(std::move(other)); return *this; }
40#endif
41 QStringList toStringList() const;
42 };
43}
44
45#include "MetaType.h"
46KNOWCORE_DECLARE_FULL_METATYPE(knowCore, UriList)
47
48#include "Formatter.h"
49
50// Use QList<knowCore::Uri> formatter
51
52template<>
53struct fmt::formatter<knowCore::UriList> : public fmt::formatter<QList<knowCore::Uri>> {};
Definition Forward.h:12
Definition UriList.h:9
Definition Uri.h:14