diff options
Diffstat (limited to 'src/nepomuk/utils/simpleresourcemodel.h')
-rw-r--r-- | src/nepomuk/utils/simpleresourcemodel.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/src/nepomuk/utils/simpleresourcemodel.h b/src/nepomuk/utils/simpleresourcemodel.h new file mode 100644 index 00000000..2f48d930 --- /dev/null +++ b/src/nepomuk/utils/simpleresourcemodel.h @@ -0,0 +1,144 @@ +/* + This file is part of the Nepomuk KDE project. + Copyright (C) 2008-2010 Sebastian Trueg <trueg@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) version 3, or any + later version accepted by the membership of KDE e.V. (or its + successor approved by the membership of KDE e.V.), which shall + act as a proxy defined in Section 6 of version 3 of the license. + + 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _NEPOMUK_SIMPLE_RESOURCE_MODEL_H_ +#define _NEPOMUK_SIMPLE_RESOURCE_MODEL_H_ + +#include "resourcemodel.h" + +#include "nepomukutils_export.h" + +#include <Nepomuk2/Resource> +#include <Nepomuk2/Query/Result> + +#include <QtCore/QList> + +namespace Nepomuk2 { + namespace Utils { + /** + * \class SimpleResourceModel simpleresourcemodel.h Nepomuk/Utils/SimpleResourceModel + * + * A simple ResourceModel that handles a list of Resource instances which + * can be managed via the setResources(), addResource(), addResources(), and + * clear() methods. + * + * \author Sebastian Trueg <trueg@kde.org> + * + * \since 4.6 + */ + class NEPOMUKUTILS_EXPORT SimpleResourceModel : public ResourceModel + { + Q_OBJECT + + public: + /** + * Creates an empty resource model. + */ + SimpleResourceModel( QObject* parent = 0 ); + + /** + * Destructor + */ + ~SimpleResourceModel(); + + /** + * Get the Resource which corresponds to \p index. + * + * \return The Resource which corresponds to \p index or an invalid Resource + * if \p index is invalid. + */ + QModelIndex indexForResource( const Resource& res ) const; + + /** + * Get the index for a resource. + * + * \return The index which corresponds to \p res of an invalid QModelIndex + * if \p res is not part of this model. + */ + Resource resourceForIndex( const QModelIndex& index ) const; + + /** + * \return The number of resources added to the model for an invalid parent index. + */ + int rowCount( const QModelIndex& parent = QModelIndex() ) const; + + /** + * Creates an index for the cell at \p row and \p column. + */ + QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const; + + /** + * Removes those resources from the model. + */ + bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()); + + public Q_SLOTS: + /** + * Set the resources to be provided by the model to \p resources. + */ + void setResources( const QList<Nepomuk2::Resource>& resources ); + + /** + * Add \p resources to the list of resources being provided by the + * model. + */ + void addResources( const QList<Nepomuk2::Resource>& resources ); + + /** + * Add \p resource to the list of resources being provided by the + * model. + */ + void addResource( const Nepomuk2::Resource& resource ); + + /** + * This method is similar to setResources(). It is provided for + * allowing convenient connections from signals that provide + * Query::Result objects. + */ + void setResults( const QList<Nepomuk2::Query::Result>& results ); + + /** + * This method is similar to addResources(). It is provided for + * allowing convenient connections from signals that provide + * Query::Result objects like Query::QueryServiceClient::newResults(). + */ + void addResults( const QList<Nepomuk2::Query::Result>& results ); + + /** + * This method is similar to addResource(). It is provided for + * allowing convenient connections from signals that provide + * Query::Result objects. + */ + void addResult( const Nepomuk2::Query::Result result ); + + /** + * Clear the model by removing all resources added via setResources() and friends. + */ + void clear(); + + private: + class Private; + Private* const d; + }; + } +} + +#endif |