/* ktnefpropertyset.h Copyright (C) 2002 Michael Goffioul This file is part of KTNEF, the KDE TNEF support library/program. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /** * @file * This file is part of the API for handling TNEF data and * defines the KTNEFPropertySet class. * * @author Michael Goffioul */ #ifndef KTNEFPROPERTYSET_H #define KTNEFPROPERTYSET_H #include #include #include "ktnef_export.h" namespace KTnef { class KTNEFProperty; } namespace KTnef { /** * @brief * Interface for setting @acronym MAPI properties and @acronym TNEF attributes. */ class KTNEF_EXPORT KTNEFPropertySet { public: /** Constructor. */ KTNEFPropertySet(); /** Destructor. */ ~KTNEFPropertySet(); /** Adds a @acronym MAPI property. @param key is the property key. @param type is the property type. @param value is the property value. @param name is the property name. @param overwrite if true, then remove the property if it already exists. */ void addProperty( int key, int type, const QVariant &value, const QVariant &name=QVariant(), bool overwrite=false ); /** Finds a property by @p key, returning a formatted value. @param key is the property key. @param fallback is the fallback formatted value to use if the @p key is not found. @param convertToUpper if true, then return the formatted value in all upper case characters. @return a formatted value string. */ QString findProp( int key, const QString &fallback=QString(), bool convertToUpper=false ) const; /** Finds a property by @p name, returning a formatted value. @param name is the property name. @param fallback is the fallback formatted value to use if the @p name is not found. @param convertToUpper if true, then return the formatted value in all upper case characters. @return a formatted value string. */ QString findNamedProp( const QString &name, const QString &fallback=QString(), bool convertToUpper=false ) const; /** Returns a #QMap of all (key,@acronym MAPI) properties */ QMap& properties(); /** Returns a #QMap of all (key,@acronym MAPI) properties */ const QMap& properties() const; //krazy:exclude=constref /** Returns the property associcated with the specified @p key. @param key is the property key. @return the property.q */ QVariant property( int key ) const; /** Adds a @acronym TNEF attribute. @param key is the attribute key. @param type is the attribute type. @param value is the attribute value. @param overwrite if true, then remove the attribute if it already exists. */ void addAttribute( int key, int type, const QVariant &value, bool overwrite=false ); /** Returns a #QMap of all (key,@acronym TNEF) attributes. */ QMap& attributes(); /** Returns a #QMap of all (key,@acronym TNEF) attributes. */ const QMap& attributes() const; //krazy:exclude=constref /** Returns the attribute associcated with the specified @p key. @param key is the @acronym TNEF key. @return the attribute associated with the key. */ QVariant attribute( int key ) const; /** Clears the @acronym MAPI and @acronym TNEF maps. @param deleteAll if true, delete the map memory as well. */ void clear( bool deleteAll=false ); private: //@cond PRIVATE class Private; Private *const d; //@endcond Q_DISABLE_COPY( KTNEFPropertySet ) }; } #endif