[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/MediaCenterComponents/applets/mediabrowser
From: Alessandro Diaferia <alediaferia () gmail ! com>
Date: 2010-07-17 17:36:03
Message-ID: 20100717173603.62381AC76A () svn ! kde ! org
[Download RAW message or body]
SVN commit 1151077 by adiaferia:
update backends API with more attention to the future remote backends
M +1 -0 browsingbackends/localfiles/localfilesabstractbackend.cpp
M +0 -1 browsingbackends/localfiles/localfilesabstractbackend.h
M +2 -6 browsingbackends/localfiles/localmusic/localmusicbackend.cpp
M +0 -2 browsingbackends/localfiles/localmusic/localmusicbackend.h
M +2 -7 browsingbackends/localfiles/localpictures/localpicturesbackend.cpp
M +0 -2 browsingbackends/localfiles/localpictures/localpicturesbackend.h
M +2 -7 browsingbackends/localfiles/localvideos/localvideosbackend.cpp
M +0 -2 browsingbackends/localfiles/localvideos/localvideosbackend.h
M +36 -6 mediabrowserlibs/abstractbrowsingbackend.cpp
M +55 -4 mediabrowserlibs/abstractbrowsingbackend.h
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.cpp \
#1151076:1151077 @@ -46,6 +46,7 @@
{
Nepomuk::ResourceManager::instance()->init();
setHasConfigurationInterface(true);
+ setBrowsingType(AbstractBrowsingBackend::LocalBrowsing);
}
LocalFilesAbstractBackend::~LocalFilesAbstractBackend()
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.h \
#1151076:1151077 @@ -34,7 +34,6 @@
LocalFilesAbstractBackend(const QString &name, QObject* parent, const \
QVariantList& args); virtual ~LocalFilesAbstractBackend();
- virtual AbstractBrowsingBackend::BrowsingType browsingType() const = 0;
QAbstractItemModel* model();
virtual void createConfigurationInterface(KConfigDialog* parent);
virtual void init();
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localmusic/localmusicbackend.cpp \
#1151076:1151077 @@ -19,6 +19,7 @@
#include "localmusicbackend.h"
#include <mediabrowserlibs/mediabrowser_export.h>
+#include <mediacenter/mediacenterstate.h>
#include <Nepomuk/Query/ResourceTypeTerm>
#include "nfo.h"
@@ -30,13 +31,8 @@
m_acceptedMimePrefix = "audio/";
m_term = Nepomuk::Query::ResourceTypeTerm(Vocabulary::NFO::Audio());
- setAllowedMediaTypes(MediaCenter::Audio);
+ setRequiredMode(MediaCenter::MusicMode);
}
LocalMusicBackend::~LocalMusicBackend()
{}
-
-AbstractBrowsingBackend::BrowsingType LocalMusicBackend::browsingType() const
-{
- return AbstractBrowsingBackend::LocalBrowsing;
-}
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localmusic/localmusicbackend.h \
#1151076:1151077 @@ -28,8 +28,6 @@
LocalMusicBackend(QObject *parent, const QVariantList &args);
~LocalMusicBackend();
- AbstractBrowsingBackend::BrowsingType browsingType() const;
-
};
#endif // LOCALMUSICPACKAGE_H
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localpictures/localpicturesbackend.cpp \
#1151076:1151077 @@ -19,6 +19,7 @@
#include "localpicturesbackend.h"
#include <mediabrowserlibs/mediabrowser_export.h>
+#include <mediacenter/mediacenterstate.h>
#include "nfo.h"
#include <Nepomuk/Query/ResourceTypeTerm>
@@ -29,14 +30,8 @@
{
m_acceptedMimePrefix = "image/";
m_term = Nepomuk::Query::ResourceTypeTerm(Vocabulary::NFO::Image());
- setAllowedMediaTypes(MediaCenter::Picture);
+ setRequiredMode(MediaCenter::MusicMode);
}
LocalPicturesBackend::~LocalPicturesBackend()
{}
-
-AbstractBrowsingBackend::BrowsingType LocalPicturesBackend::browsingType() const
-{
- return AbstractBrowsingBackend::LocalBrowsing;
-}
-
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localpictures/localpicturesbackend.h \
#1151076:1151077 @@ -28,8 +28,6 @@
LocalPicturesBackend(QObject *parent, const QVariantList &args);
~LocalPicturesBackend();
- AbstractBrowsingBackend::BrowsingType browsingType() const;
-
};
#endif // LOCALPICTURESPACKAGE_H
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localvideos/localvideosbackend.cpp \
#1151076:1151077 @@ -20,6 +20,7 @@
#include <mediabrowserlibs/mediabrowser_export.h>
#include "nfo.h"
+#include <mediacenter/mediacenterstate.h>
#include <Nepomuk/Query/ResourceTypeTerm>
@@ -30,14 +31,8 @@
{
m_acceptedMimePrefix = "video/";
m_term = Nepomuk::Query::ResourceTypeTerm(Vocabulary::NFO::Video());
- setAllowedMediaTypes(MediaCenter::Video);
+ setRequiredMode(MediaCenter::VideoMode);
}
LocalVideosBackend::~LocalVideosBackend()
{}
-
-AbstractBrowsingBackend::BrowsingType LocalVideosBackend::browsingType() const
-{
- return AbstractBrowsingBackend::LocalBrowsing;
-}
-
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localvideos/localvideosbackend.h \
#1151076:1151077 @@ -28,8 +28,6 @@
LocalVideosBackend(QObject *parent, const QVariantList &args);
~LocalVideosBackend();
- AbstractBrowsingBackend::BrowsingType browsingType() const;
-
};
#endif // LOCALVIDEOSPACKAGE_H
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowserlibs/abstractbrowsingbackend.cpp \
#1151076:1151077 @@ -35,7 +35,9 @@
AbstractBrowsingBackend *q;
bool cfInterface;
KPluginInfo backendInfo;
- MediaCenter::MediaTypes allowedMediaTypes;
+ MediaCenter::Mode requiredMode;
+ SearchModes searchModes;
+ BrowsingType browsingType;
};
AbstractBrowsingBackend::AbstractBrowsingBackend(QObject *parent, const QVariantList \
&args) : QObject(parent), @@ -65,21 +67,20 @@
KConfigGroup AbstractBrowsingBackend::config()
{
- kDebug() << KGlobal::config()->name();
return KConfigGroup(KGlobal::config(), name());
}
void AbstractBrowsingBackend::init()
{}
-void AbstractBrowsingBackend::setAllowedMediaTypes(const MediaCenter::MediaTypes \
&type) +void AbstractBrowsingBackend::setRequiredMode(MediaCenter::Mode mode)
{
- d->allowedMediaTypes = type;
+ d->requiredMode = mode;
}
-MediaCenter::MediaTypes AbstractBrowsingBackend::allowedMediaTypes()
+MediaCenter::Mode AbstractBrowsingBackend::requiredMode()
{
- return d->allowedMediaTypes;
+ return d->requiredMode;
}
QString AbstractBrowsingBackend::name() const
@@ -87,3 +88,32 @@
return d->backendInfo.name();
}
+AbstractBrowsingBackend::SearchModes AbstractBrowsingBackend::availableSearchModes() \
const +{
+ return d->searchModes;
+}
+
+void AbstractBrowsingBackend::setAvailableSearchModes(SearchModes modes)
+{
+ d->searchModes = modes;
+}
+
+AbstractBrowsingBackend::BrowsingType AbstractBrowsingBackend::browsingType() const
+{
+ return d->browsingType;
+}
+
+void AbstractBrowsingBackend::setBrowsingType(BrowsingType type)
+{
+ d->browsingType = type;
+}
+
+void AbstractBrowsingBackend::openUrl(const KUrl &url)
+{
+ Q_UNUSED(url);
+}
+
+void AbstractBrowsingBackend::searchForMedia(const QString &name)
+{
+ Q_UNUSED(name);
+}
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowserlibs/abstractbrowsingbackend.h \
#1151076:1151077 @@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright 2009 by Alessandro Diaferia <alediaferia@gmail.com> *
+ * Copyright 2009-2010 by Alessandro Diaferia <alediaferia@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -21,9 +21,12 @@
#include <QObject>
#include <QVariantList>
+#include <QFlags>
+
#include <KConfigGroup>
#include "mediabrowser_export.h"
#include "mediacenter/mediacenter.h"
+#include "mediacenter/mediacenterstate.h"
#include <kservice.h>
class QAbstractItemModel;
@@ -55,6 +58,26 @@
};
/**
+ * Defines the search modes the backend is
+ * capable of.
+ */
+ enum SearchMode {
+ /** The backend cannot filter its content nor searching for new content. */
+ NoSearchMode = 0x0,
+ /** The backend can filter existing content. */
+ FilterSearchMode = 0x1,
+ /**
+ * The backend can search for new content.
+ * This is particuarly useful when implementing remote content
+ * models capable of searching for new content.
+ */
+ NewContentSearchMode = 0x2,
+ /** The model can both search for new content and filter existing one */
+ AllSearchModes = 0x3
+ };
+ Q_DECLARE_FLAGS(SearchModes, SearchMode)
+
+ /**
* Used to load a backend instance via a plugin loader through KService.
* The first argument of @param args must be the unique serviceID of the \
service.
* */
@@ -64,6 +87,7 @@
/**
* This method must be reimplemented in order to provide the model to be
* used by the view.
+ * @note When LocalBrowsing is set it is highly recommended to use a KDirModel.
* If the package is set to RemoteBrowsing the model
* must provide an url that points to the media content for each
* QModelIndex. It must make use of MediaRole role to accomplish this.
@@ -80,7 +104,7 @@
* that allow actions like "go backward", "go forward", "go uplevel" that \
generally change
* their meaning if the browsing type is local or remote.
*/
- virtual BrowsingType browsingType() const = 0;
+ BrowsingType browsingType() const;
bool hasConfigurationInterface();
@@ -107,9 +131,31 @@
*/
virtual void init();
- MediaCenter::MediaTypes allowedMediaTypes();
+ /**
+ * @return the proper mode needed to play the files exposed
+ * by the model in this backend
+ */
+ MediaCenter::Mode requiredMode();
QString name() const;
+
+ SearchModes availableSearchModes() const;
+
+public slots:
+ /**
+ * This slot must be reimplemented if browsingType returns
+ * LocalBrowsing. This method will be used to list the media
+ * resources in location specified by @param url
+ */
+ virtual void openUrl(const KUrl &url);
+
+ /**
+ * This slot must be reimplemented if browsingType returns
+ * RemoteBrowsing. This method will be used to perform searches
+ * for new medias to show in the browsing applet.
+ */
+ virtual void searchForMedia(const QString &name);
+
protected:
/**
* As from Plasma::Applet this method should be used in order
@@ -117,12 +163,17 @@
* the model.
*/
void setHasConfigurationInterface(bool hasInterface);
- void setAllowedMediaTypes(const MediaCenter::MediaTypes &type);
+ void setRequiredMode(MediaCenter::Mode);
+ void setAvailableSearchModes(SearchModes);
+ void setBrowsingType(BrowsingType);
+
private:
class AbstractBrowsingBackendPrivate;
AbstractBrowsingBackendPrivate *d;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractBrowsingBackend::SearchModes)
+
#endif // MODELPACKAGE_H
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic