diff --git a/akonadi/CMakeLists.txt b/akonadi/CMakeLists.txt --- a/akonadi/CMakeLists.txt +++ b/akonadi/CMakeLists.txt @@ -80,6 +80,7 @@ changenotificationdependenciesfactory.cpp collection.cpp collectionattributessynchronizationjob.cpp + collectioncolorattribute.cpp collectioncombobox.cpp collectioncopyjob.cpp collectioncreatejob.cpp @@ -340,6 +341,7 @@ changerecorder.h collection.h collectionattributessynchronizationjob.h + collectioncolorattribute.h collectioncombobox.h collectioncopyjob.h collectioncreatejob.h diff --git a/akonadi/collectioncolorattribute.h b/akonadi/collectioncolorattribute.h new file mode 100644 --- /dev/null +++ b/akonadi/collectioncolorattribute.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2015 Sandro Knauß + * + * 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. + */ + +#ifndef AKONADI_COLLECTIONCOLORATTRIBUTE_H +#define AKONADI_COLLECTIONCOLORATTRIBUTE_H + +#include "akonadi_export.h" + +#include + +#include + +namespace Akonadi { + +/** + * An attribute for storing colors for collection. + * + * @since KF5 + */ +class AKONADI_EXPORT CollectionColorAttribute : public Akonadi::Attribute +{ +public: + CollectionColorAttribute(); + CollectionColorAttribute(const QColor &color); + + void setColor(const QColor &color); + QColor color() const; + + QByteArray type() const; + Attribute *clone() const; + QByteArray serialized() const; + void deserialize(const QByteArray &data); + +private: + QColor mColor; +}; + +} + +#endif diff --git a/akonadi/collectioncolorattribute.cpp b/akonadi/collectioncolorattribute.cpp new file mode 100644 --- /dev/null +++ b/akonadi/collectioncolorattribute.cpp @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2015 Sandro Knauß + * + * 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. + */ + +#include "collectioncolorattribute.h" +#include "attributefactory.h" + +#include +#include + +using namespace Akonadi; + +CollectionColorAttribute::CollectionColorAttribute() +{ +} + +CollectionColorAttribute::CollectionColorAttribute(const QColor &color) + : mColor(color) +{ +} + +void CollectionColorAttribute::setColor(const QColor &color) +{ + mColor = color; +} + +QColor CollectionColorAttribute::color() const +{ + return mColor; +} + +QByteArray CollectionColorAttribute::type() const +{ + return "collectioncolor"; +} + +Akonadi::Attribute *CollectionColorAttribute::clone() const +{ + return new CollectionColorAttribute(mColor); +} + +QByteArray CollectionColorAttribute::serialized() const +{ + return mColor.name().toAscii(); +} + +void CollectionColorAttribute::deserialize(const QByteArray &data) +{ + mColor = QColor(QString::fromAscii(data)); +} \ No newline at end of file