summaryrefslogtreecommitdiff
path: root/src/nepomuk/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/nepomuk/utils')
-rw-r--r--src/nepomuk/utils/nepomukutils_export.h40
-rw-r--r--src/nepomuk/utils/resourcemodel.cpp230
-rw-r--r--src/nepomuk/utils/resourcemodel.h177
-rw-r--r--src/nepomuk/utils/simpleresourcemodel.cpp170
-rw-r--r--src/nepomuk/utils/simpleresourcemodel.h144
5 files changed, 0 insertions, 761 deletions
diff --git a/src/nepomuk/utils/nepomukutils_export.h b/src/nepomuk/utils/nepomukutils_export.h
deleted file mode 100644
index 718bd7c3..00000000
--- a/src/nepomuk/utils/nepomukutils_export.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* This file is part of the KDE project
- Copyright (C) 2007 David Faure <faure@kde.org>
- Copyright (C) 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 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 NEPOMUKUTILS_EXPORT_H
-#define NEPOMUKUTILS_EXPORT_H
-
-/* needed for KDE_EXPORT and KDE_IMPORT macros */
-#include <kdemacros.h>
-
-#ifndef NEPOMUKUTILS_EXPORT
-# if defined(KDELIBS_STATIC_LIBS)
- /* No export/import for static libraries */
-# define NEPOMUKUTILS_EXPORT
-# elif defined(MAKE_NEPOMUKUTILS_LIB)
- /* We are building this library */
-# define NEPOMUKUTILS_EXPORT KDE_EXPORT
-# else
- /* We are using this library */
-# define NEPOMUKUTILS_EXPORT KDE_IMPORT
-# endif
-#endif
-
-#endif
diff --git a/src/nepomuk/utils/resourcemodel.cpp b/src/nepomuk/utils/resourcemodel.cpp
deleted file mode 100644
index 72c71e9b..00000000
--- a/src/nepomuk/utils/resourcemodel.cpp
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- This file is part of the Nepomuk KDE project.
- Copyright (C) 2007-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/>.
- */
-
-#include "resourcemodel.h"
-
-#include <QtCore/QUrl>
-#include <QtCore/QList>
-#include <QtCore/QMimeData>
-
-#include "kurl.h"
-#include "kdebug.h"
-#include "kcategorizedsortfilterproxymodel.h"
-#include "kicon.h"
-#include "klocale.h"
-
-#include <Nepomuk2/Resource>
-#include <Nepomuk2/Types/Class>
-#include <Nepomuk2/Variant>
-
-#include <Soprano/Vocabulary/RDFS>
-#include <Soprano/Vocabulary/NAO>
-
-
-Q_DECLARE_METATYPE(Nepomuk2::Types::Class)
-
-
-class Nepomuk2::Utils::ResourceModel::Private
-{
-public:
-};
-
-
-Nepomuk2::Utils::ResourceModel::ResourceModel( QObject* parent )
- : QAbstractItemModel( parent ),
- d( new Private() )
-{
-}
-
-
-Nepomuk2::Utils::ResourceModel::~ResourceModel()
-{
- delete d;
-}
-
-
-QModelIndex Nepomuk2::Utils::ResourceModel::parent( const QModelIndex& child ) const
-{
- Q_UNUSED(child);
- return QModelIndex();
-}
-
-
-int Nepomuk2::Utils::ResourceModel::columnCount( const QModelIndex& parent ) const
-{
- Q_UNUSED(parent);
- return ResourceModelColumnCount;
-}
-
-
-QVariant Nepomuk2::Utils::ResourceModel::data( const QModelIndex& index, int role ) const
-{
- Nepomuk2::Resource res = resourceForIndex( index );
- if( !res.isValid() ) {
- return QVariant();
- }
-
- //
- // Part 1: column specific data
- //
- switch( index.column() ) {
- case ResourceColumn:
- switch( role ) {
- case Qt::DisplayRole:
- case Qt::EditRole:
- return res.genericLabel();
-
- case Qt::DecorationRole: {
- QString iconName = res.genericIcon();
- if( !iconName.isEmpty() ) {
- return KIcon( iconName );
- }
- else {
- QIcon icon = Types::Class(res.type()).icon();
- if( !icon.isNull() )
- return icon;
- else
- return QVariant();
- }
- }
-
- case Qt::ToolTipRole:
- return KUrl( res.uri() ).prettyUrl();
-
- }
-
- case ResourceTypeColumn:
- switch( role ) {
- case Qt::DisplayRole:
- case Qt::EditRole:
- return Types::Class( res.type() ).label();
-
- case Qt::DecorationRole: {
- QIcon icon = Types::Class(res.type()).icon();
- if( !icon.isNull() )
- return icon;
- else
- return QVariant();
- }
-
- case Qt::ToolTipRole:
- return KUrl(res.type()).prettyUrl();
- }
- }
-
-
- //
- // Part 2: column-independant data
- //
- switch( role ) {
- case KCategorizedSortFilterProxyModel::CategorySortRole:
- // FIXME: sort files before other stuff and so on
-
- case KCategorizedSortFilterProxyModel::CategoryDisplayRole: {
- Q_ASSERT( !res.type().isEmpty() );
- Nepomuk2::Types::Class c( res.type() );
- QString cat = c.label();
- if ( cat.isEmpty() ) {
- cat = c.name();
- }
- if ( c.uri() == Soprano::Vocabulary::RDFS::Resource() || cat.isEmpty() ) {
- cat = i18nc( "@title KCategorizedSortFilterProxyModel grouping for all Nepomukj resources that are of type rdfs:Resource", "Miscellaneous" );
- }
-
- return cat;
- }
-
- case ResourceRole:
- return QVariant::fromValue( res );
-
- case ResourceTypeRole:
- return QVariant::fromValue( Nepomuk2::Types::Class(res.type()) );
-
- case ResourceCreationDateRole:
- return res.property( Soprano::Vocabulary::NAO::created() ).toDateTime();
- }
-
- // fallback
- return QVariant();
-}
-
-
-QVariant Nepomuk2::Utils::ResourceModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if( role == Qt::DisplayRole ) {
- switch( section ) {
- case ResourceColumn:
- return i18nc("@title:column The Nepomuk resource label and icon", "Resource");
- case ResourceTypeColumn:
- return i18nc("@title:column The Nepomuk resource's RDF type", "Resource Type");
- }
- }
-
- return QAbstractItemModel::headerData(section, orientation, role);
-}
-
-
-Qt::ItemFlags Nepomuk2::Utils::ResourceModel::flags( const QModelIndex& index ) const
-{
- if ( index.isValid() ) {
- return QAbstractItemModel::flags( index ) | Qt::ItemIsDragEnabled;
- }
- else {
- return QAbstractItemModel::flags( index );
- }
-}
-
-
-QMimeData* Nepomuk2::Utils::ResourceModel::mimeData( const QModelIndexList& indexes ) const
-{
- KUrl::List uris;
- foreach ( const QModelIndex& index, indexes ) {
- if (index.isValid()) {
- uris << index.data( ResourceRole ).value<Resource>().uri();
- }
- }
-
- QMimeData* mimeData = new QMimeData();
- uris.populateMimeData( mimeData );
-
- QByteArray data;
- QDataStream s( &data, QIODevice::WriteOnly );
- s << uris;
- mimeData->setData( mimeTypes().first(), data );
-
- return mimeData;
-}
-
-
-QStringList Nepomuk2::Utils::ResourceModel::mimeTypes() const
-{
- return( QStringList()
- << QLatin1String( "application/x-nepomuk-resource-uri" )
- << KUrl::List::mimeDataTypes() );
-}
-
-
-bool Nepomuk2::Utils::ResourceModel::setData( const QModelIndex& index, const QVariant& value, int role )
-{
- return QAbstractItemModel::setData(index, value, role);
-}
-
-#include "resourcemodel.moc"
diff --git a/src/nepomuk/utils/resourcemodel.h b/src/nepomuk/utils/resourcemodel.h
deleted file mode 100644
index 526c7ac0..00000000
--- a/src/nepomuk/utils/resourcemodel.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- This file is part of the Nepomuk KDE project.
- Copyright (C) 2007-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_RESOUCE_MODEL_H_
-#define _NEPOMUK_RESOUCE_MODEL_H_
-
-#include <QtCore/QAbstractItemModel>
-
-#include "nepomukutils_export.h"
-
-namespace Nepomuk2 {
-
- class Resource;
-
- namespace Utils {
- /**
- * \class ResourceModel resourcemodel.h Nepomuk/Utils/ResourceModel
- *
- * \brief Base class for all models providing a plain list of resources.
- *
- * The %ResourceModel is a base class for models that handle a set of
- * %Nepomuk Resource instances. This can be a simple list as in SimpleResourceModel
- * or a set of query results as in ResultModel. It could also be a dynamic list
- * which is updated while the user scrolls it.
- *
- * %ResourceModel cannot be instanciated by itself. Use one of the subclasses
- * or derive your own subclass from it.
- *
- * At least the following methods need to be implemented in a subclass:
- * \li resourceForIndex()
- * \li indexForResource(),
- * \li QAbstractItemModel::rowCount()
- * \li QAbstractItemModel::index()
- *
- * \author Sebastian Trueg <trueg@kde.org>
- *
- * \since 4.6
- */
- class NEPOMUKUTILS_EXPORT ResourceModel : public QAbstractItemModel
- {
- Q_OBJECT
-
- public:
- /**
- * Constructor.
- */
- ResourceModel( QObject* parent = 0 );
-
- /**
- * Destructor
- */
- virtual ~ResourceModel();
-
- /**
- * The columns supported by ResourceModel are identified
- * by this enumeration.
- */
- enum ResourceModelColumns {
- /// The first column displays the label of the resource and its icon
- ResourceColumn = 0,
-
- /// The second column displays the resource's type
- ResourceTypeColumn = 1,
-
- /// The number of columns
- ResourceModelColumnCount = 2
- };
-
- /**
- * Custom roles that can be accessed for example in delegates.
- */
- enum ResourceRoles {
- /**
- * The resource itself, provided as a Nepomuk::Resource instance.
- */
- ResourceRole = 7766897,
-
- /**
- * The type of the resource, provided as a Nepomuk::Types::Class
- * instance.
- */
- ResourceTypeRole = 687585,
-
- /**
- * The creation date of the resource.
- */
- ResourceCreationDateRole = 7766898
- };
-
- /**
- * 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.
- */
- virtual Resource resourceForIndex( const QModelIndex& index ) const = 0;
-
- /**
- * 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.
- */
- virtual QModelIndex indexForResource( const Resource& res ) const = 0;
-
- /**
- * The default implementation returns an invalid QModelIndex, thus providing
- * a plain list.
- */
- virtual QModelIndex parent( const QModelIndex& child ) const;
-
- /**
- * The default implementation returns 2 with the first column representing the resource
- * itself and the second one showing the type.
- */
- virtual int columnCount( const QModelIndex& parent ) const;
-
- /**
- * Handles most roles typically used in applications like Qt::DisplayRole, Qt::ToolTipRole,
- * and Qt::DecorationRole. Additionally KCategorizedSortFilterProxyModel roles are supported
- * categorizing by resource types.
- */
- virtual QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const;
-
- /**
- * Provides header data for the supported columns.
- */
- virtual QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
-
- /**
- * Reimplemented to support dragging of resources out of the model.
- */
- virtual Qt::ItemFlags flags( const QModelIndex& index ) const;
-
- /**
- * Stores the resource URIs via KUrl::List::populateMimeData() and as a specific
- * "application/x-nepomuk-resource-uri" mime type to indicate that these are URIs
- * corresponding to actual %Nepomuk resources.
- */
- virtual QMimeData* mimeData( const QModelIndexList& indexes ) const;
-
- /**
- * \return The KUrl mime types and "application/x-nepomuk-resource-uri".
- */
- virtual QStringList mimeTypes() const;
-
- /**
- * Provided for future extensions.
- */
- virtual bool setData( const QModelIndex& index, const QVariant& value, int role );
-
- private:
- class Private;
- Private* const d;
- };
- }
-}
-
-#endif
diff --git a/src/nepomuk/utils/simpleresourcemodel.cpp b/src/nepomuk/utils/simpleresourcemodel.cpp
deleted file mode 100644
index f500f648..00000000
--- a/src/nepomuk/utils/simpleresourcemodel.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- 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/>.
- */
-
-#include "simpleresourcemodel.h"
-
-#include <QtCore/QUrl>
-#include <QtCore/QList>
-
-#include <Nepomuk2/Resource>
-#include <Nepomuk2/Query/Result>
-
-#include "kdebug.h"
-#include "kurl.h"
-
-
-class Nepomuk2::Utils::SimpleResourceModel::Private
-{
-public:
- QList<Nepomuk2::Resource> resources;
-};
-
-
-Nepomuk2::Utils::SimpleResourceModel::SimpleResourceModel( QObject* parent )
- : ResourceModel( parent ),
- d( new Private() )
-{
-}
-
-
-Nepomuk2::Utils::SimpleResourceModel::~SimpleResourceModel()
-{
- delete d;
-}
-
-
-QModelIndex Nepomuk2::Utils::SimpleResourceModel::indexForResource( const Resource& res ) const
-{
- Q_ASSERT( res.isValid() );
- // FIXME: performance
- int i = 0;
- QList<Nepomuk2::Resource>::const_iterator end = d->resources.constEnd();
- for ( QList<Nepomuk2::Resource>::const_iterator it = d->resources.constBegin(); it != end; ++it ) {
- if ( *it == res ) {
- return index( i, 0 );
- }
- ++i;
- }
-
- return QModelIndex();
-}
-
-
-Nepomuk2::Resource Nepomuk2::Utils::SimpleResourceModel::resourceForIndex( const QModelIndex& index ) const
-{
- if ( index.isValid() && index.row() < d->resources.count() ) {
- return d->resources[index.row()];
- }
- else {
- return Resource();
- }
-}
-
-
-int Nepomuk2::Utils::SimpleResourceModel::rowCount( const QModelIndex& parent ) const
-{
- if ( parent.isValid() ) {
- return 0;
- }
- else {
- return d->resources.count();
- }
-}
-
-
-QModelIndex Nepomuk2::Utils::SimpleResourceModel::index( int row, int column, const QModelIndex& parent ) const
-{
- if ( !parent.isValid() && row < d->resources.count() ) {
- return createIndex( row, column, 0 );
- }
- else {
- return QModelIndex();
- }
-}
-
-
-bool Nepomuk2::Utils::SimpleResourceModel::removeRows(int row, int count, const QModelIndex& parent)
-{
- if( count < 1 || row < 0 || (row + count) > d->resources.size() || parent.isValid() )
- return false;
-
- beginRemoveRows( parent, row, row + count -1 );
-
- QList<Resource>::iterator begin, end;
- begin = end = d->resources.begin();
- begin += row;
- end += row + count;
- d->resources.erase( begin, end );
-
- endRemoveRows();
- return true;
-}
-
-
-void Nepomuk2::Utils::SimpleResourceModel::setResources( const QList<Nepomuk2::Resource>& resources )
-{
- d->resources = resources;
- reset();
-}
-
-
-void Nepomuk2::Utils::SimpleResourceModel::addResources( const QList<Nepomuk2::Resource>& resources )
-{
- if(!resources.isEmpty()) {
- beginInsertRows( QModelIndex(), d->resources.count(), d->resources.count() + resources.count() - 1 );
- d->resources << resources;
- endInsertRows();
- }
-}
-
-
-void Nepomuk2::Utils::SimpleResourceModel::addResource( const Nepomuk2::Resource& resource )
-{
- addResources( QList<Resource>() << resource );
-}
-
-
-void Nepomuk2::Utils::SimpleResourceModel::setResults( const QList<Nepomuk2::Query::Result>& results)
-{
- clear();
- addResults( results );
-}
-
-void Nepomuk2::Utils::SimpleResourceModel::addResults( const QList<Nepomuk2::Query::Result>& results )
-{
- Q_FOREACH( const Query::Result& result, results ) {
- addResource( result.resource() );
- }
-}
-
-void Nepomuk2::Utils::SimpleResourceModel::addResult( const Nepomuk2::Query::Result result )
-{
- addResource( result.resource() );
-}
-
-
-void Nepomuk2::Utils::SimpleResourceModel::clear()
-{
- d->resources.clear();
- reset();
-}
-
-#include "simpleresourcemodel.moc"
diff --git a/src/nepomuk/utils/simpleresourcemodel.h b/src/nepomuk/utils/simpleresourcemodel.h
deleted file mode 100644
index 2f48d930..00000000
--- a/src/nepomuk/utils/simpleresourcemodel.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- 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