customfields_p.h
00001 /* 00002 This file is part of Akonadi Contact. 00003 00004 Copyright (c) 2010 Tobias Koenig <tokoe@kde.org> 00005 00006 This library is free software; you can redistribute it and/or modify it 00007 under the terms of the GNU Library General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or (at your 00009 option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, but WITHOUT 00012 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00013 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00014 License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to the 00018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00019 02110-1301, USA. 00020 */ 00021 00022 #ifndef CUSTOMFIELDS_P_H 00023 #define CUSTOMFIELDS_P_H 00024 00025 #include <QtCore/QString> 00026 #include <QtCore/QVariant> 00027 00028 template <typename T> 00029 class QVector; 00030 00047 class CustomField 00048 { 00049 public: 00050 typedef QVector<CustomField> List; 00051 00052 enum Type 00053 { 00054 TextType, 00055 NumericType, 00056 BooleanType, 00057 DateType, 00058 TimeType, 00059 DateTimeType 00060 }; 00061 00062 enum Scope 00063 { 00064 LocalScope, 00065 GlobalScope, 00066 ExternalScope 00067 }; 00068 00069 CustomField(); 00070 CustomField( const QString &key, const QString &title, Type type, Scope scope ); 00071 00072 static CustomField fromVariantMap( const QVariantMap &map, Scope scope ); 00073 00074 void setKey( const QString &key ); 00075 QString key() const; 00076 00077 void setTitle( const QString &title ); 00078 QString title() const; 00079 00080 void setType( Type type ); 00081 Type type() const; 00082 00083 void setScope( Scope scope ); 00084 Scope scope() const; 00085 00086 void setValue( const QString &value ); 00087 QString value() const; 00088 00089 QVariantMap toVariantMap() const; 00090 00091 static QString typeToString( Type type ); 00092 static Type stringToType( const QString &type ); 00093 00094 private: 00095 QString mKey; 00096 QString mTitle; 00097 Type mType; 00098 Scope mScope; 00099 QString mValue; 00100 }; 00101 00102 #endif