29 #ifndef GAMMARAY_VARIANTHANDLER_H
30 #define GAMMARAY_VARIANTHANDLER_H
32 #include "gammaray_core_export.h"
39 namespace VariantHandler
42 template <
typename RetT>
struct Converter
44 virtual RetT operator() (
const QVariant &v) = 0;
47 template <
typename RetT,
typename InputT,
typename FuncT>
struct ConverterImpl
48 :
public Converter<RetT>
50 explicit inline ConverterImpl(FuncT converter) : f(converter)
55 inline RetT operator() (
const QVariant &v)
57 return f(v.value<InputT>());
70 GAMMARAY_CORE_EXPORT QString
displayString(
const QVariant &value);
87 GAMMARAY_CORE_EXPORT QVariant
decoration(
const QVariant &value);
99 template <
typename T,
typename FuncT>
102 Converter<QString> *converter =
new ConverterImpl<QString, T, FuncT>(f);
106 typedef QString(*GenericStringConverter)(
const QVariant &value,
bool *ok);
128 #endif // GAMMARAY_VARIANTHANDLER_H
Definition: endpoint.h:41
QString displayString(const QVariant &value)
QVariant serializableVariant(const QVariant &value)
void registerGenericStringConverter(GenericStringConverter converter)
void registerStringConverter(int type, Converter< QString > *converter)
QVariant decoration(const QVariant &value)