19 #ifndef LIB_QUENTIER_UTILITY_PRINTABLE_H 20 #define LIB_QUENTIER_UTILITY_PRINTABLE_H 22 #include <quentier/utility/Linkage.h> 23 #include <quentier/utility/Macros.h> 25 #include <QTextStream> 30 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) 32 #include <qt5qevercloud/QEverCloud.h> 34 #if QEVERCLOUD_HAS_OAUTH 35 #include <qt5qevercloud/QEverCloudOAuth.h> 40 #include <qt4qevercloud/QEverCloud.h> 42 #if QEVERCLOUD_HAS_OAUTH 43 #include <qt4qevercloud/QEverCloudOAuth.h> 57 virtual QTextStream & print(QTextStream & strm)
const = 0;
59 virtual const QString toString()
const;
61 friend QUENTIER_EXPORT QTextStream & operator << (QTextStream & strm,
63 friend QUENTIER_EXPORT QDebug & operator << (QDebug & debug,
76 const QString ToString(
const T &
object)
79 QTextStream strm(&str, QIODevice::WriteOnly);
84 template <
class TKey,
class TValue>
85 const QString ToString(
const QHash<TKey, TValue> &
object)
88 QTextStream strm(&str, QIODevice::WriteOnly);
89 strm << QStringLiteral(
"QHash: \n");
91 typedef typename QHash<TKey,TValue>::const_iterator CIter;
92 CIter hashEnd =
object.end();
93 for(CIter it =
object.begin(); it != hashEnd; ++it) {
94 strm << QStringLiteral(
"[") << it.key() << QStringLiteral(
"] = ") << it.value() << QStringLiteral(
";\n");
100 const QString ToString(
const QSet<T> &
object)
103 QTextStream strm(&str, QIODevice::WriteOnly);
104 strm << QStringLiteral(
"QSet: \n");
106 typedef typename QSet<T>::const_iterator CIter;
107 CIter setEnd =
object.end();
108 for(CIter it =
object.begin(); it != setEnd; ++it) {
109 strm << QStringLiteral(
"[") << *it << QStringLiteral(
"];\n");
114 #define QUENTIER_DECLARE_PRINTABLE(type, ...) \ 115 QUENTIER_EXPORT QTextStream & operator << (QTextStream & strm, const type & obj); \ 116 inline QDebug & operator << (QDebug & debug, const type & obj) \ 118 debug << ToString<type, ##__VA_ARGS__>(obj); \ 122 QUENTIER_DECLARE_PRINTABLE(qevercloud::Contact)
123 QUENTIER_DECLARE_PRINTABLE(qevercloud::Identity)
124 QUENTIER_DECLARE_PRINTABLE(qevercloud::BusinessUserInfo)
125 QUENTIER_DECLARE_PRINTABLE(qevercloud::Accounting)
126 QUENTIER_DECLARE_PRINTABLE(qevercloud::AccountLimits)
127 QUENTIER_DECLARE_PRINTABLE(qevercloud::UserAttributes)
128 QUENTIER_DECLARE_PRINTABLE(qevercloud::NoteAttributes)
129 QUENTIER_DECLARE_PRINTABLE(qevercloud::PrivilegeLevel::type)
130 QUENTIER_DECLARE_PRINTABLE(qevercloud::ServiceLevel::type)
131 QUENTIER_DECLARE_PRINTABLE(qevercloud::QueryFormat::type)
132 QUENTIER_DECLARE_PRINTABLE(qevercloud::SharedNotebookPrivilegeLevel::type)
133 QUENTIER_DECLARE_PRINTABLE(qevercloud::NoteSortOrder::type)
134 QUENTIER_DECLARE_PRINTABLE(qevercloud::NotebookRestrictions)
135 QUENTIER_DECLARE_PRINTABLE(qevercloud::SharedNotebookInstanceRestrictions::type)
136 QUENTIER_DECLARE_PRINTABLE(qevercloud::ResourceAttributes)
137 QUENTIER_DECLARE_PRINTABLE(qevercloud::Resource)
138 QUENTIER_DECLARE_PRINTABLE(qevercloud::SyncChunk)
139 QUENTIER_DECLARE_PRINTABLE(qevercloud::Tag)
140 QUENTIER_DECLARE_PRINTABLE(qevercloud::SavedSearch)
141 QUENTIER_DECLARE_PRINTABLE(qevercloud::LinkedNotebook)
142 QUENTIER_DECLARE_PRINTABLE(qevercloud::Notebook)
143 QUENTIER_DECLARE_PRINTABLE(qevercloud::Publishing)
144 QUENTIER_DECLARE_PRINTABLE(qevercloud::SharedNotebook)
145 QUENTIER_DECLARE_PRINTABLE(qevercloud::BusinessNotebook)
146 QUENTIER_DECLARE_PRINTABLE(qevercloud::User)
147 QUENTIER_DECLARE_PRINTABLE(qevercloud::SharedNotebookRecipientSettings)
148 QUENTIER_DECLARE_PRINTABLE(qevercloud::ReminderEmailConfig::type)
149 QUENTIER_DECLARE_PRINTABLE(qevercloud::PremiumOrderStatus::type)
150 QUENTIER_DECLARE_PRINTABLE(qevercloud::BusinessUserRole::type)
151 QUENTIER_DECLARE_PRINTABLE(qevercloud::SponsoredGroupRole::type)
152 QUENTIER_DECLARE_PRINTABLE(qevercloud::SharedNote)
153 QUENTIER_DECLARE_PRINTABLE(qevercloud::NoteRestrictions)
154 QUENTIER_DECLARE_PRINTABLE(qevercloud::NoteLimits)
155 QUENTIER_DECLARE_PRINTABLE(qevercloud::Note)
156 QUENTIER_DECLARE_PRINTABLE(qevercloud::EDAMErrorCode::type)
157 QUENTIER_DECLARE_PRINTABLE(qevercloud::SyncState)
158 QUENTIER_DECLARE_PRINTABLE(qevercloud::SyncChunkFilter)
159 QUENTIER_DECLARE_PRINTABLE(qevercloud::NoteResultSpec)
161 #if QEVERCLOUD_HAS_OAUTH 162 QUENTIER_DECLARE_PRINTABLE(qevercloud::EvernoteOAuthWebView::OAuthResult)
165 #endif // LIB_QUENTIER_UTILITY_PRINTABLE_H The Printable class is the interface for Quentier's internal classes which should be able to write th...
Definition: Printable.h:54