[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/MediaCenterComponents
From: Marco Martin <notmart () gmail ! com>
Date: 2010-12-06 16:00:25
Message-ID: 20101206160025.B9E06AC8A4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1204277 by mart:
last commit wasn't supposed to happen
M +4 -9 applets/mediabrowser/CMakeLists.txt
M +5 -9 applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.cpp \
M +1 -1 applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.h \
M +40 -38 applets/mediabrowser/mediabrowser.cpp
M +4 -5 applets/mediabrowser/mediabrowser.h
M +1 -21 libs/mediacenter/abstractbrowsingbackend.cpp
M +9 -19 libs/mediacenter/abstractbrowsingbackend.h
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/CMakeLists.txt \
#1204276:1204277 @@ -1,9 +1,9 @@
set(mediabrowser_SRCS
mediabrowser.cpp
-#abstractmediaitemview.cpp
-#listview.cpp
-#gridview.cpp
-#fileviewitem.cpp
+abstractmediaitemview.cpp
+listview.cpp
+gridview.cpp
+fileviewitem.cpp
)
# Now make sure all files get to the right place
@@ -14,7 +14,6 @@
${KDE4_KIO_LIBS}
${KDE4_KFILE_LIBS}
${KDE4_NEPOMUK_LIBS}
- ${QT_QTDECLARATIVE_LIBRARY}
mediacenterlibs
)
@@ -24,8 +23,4 @@
install(FILES plasma-applet-mediabrowser.desktop
DESTINATION ${SERVICES_INSTALL_DIR})
-install(FILES
-filegrid.qml
-DESTINATION ${DATA_INSTALL_DIR}/plasma-mediacenter/declarative/)
-
add_subdirectory(browsingbackends)
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.cpp \
#1204276:1204277 @@ -54,6 +54,11 @@
}
+QAbstractItemModel* LocalFilesAbstractBackend::model()
+{
+ return m_model;
+}
+
void LocalFilesAbstractBackend::setBackendName(const QString& name)
{
m_backendName = name;
@@ -112,19 +117,10 @@
if (!m_model) {
m_model = new KDirModel(this);
- connect(m_model->dirLister(), SIGNAL(completed()), SLOT(resetModel()));
- setModel(m_model);
initModel();
}
}
-void LocalFilesAbstractBackend::resetModel()
-{
- kDebug() << "Reset the model" << m_model->rowCount();
- setModel(0);
- setModel(m_model);
-}
-
void LocalFilesAbstractBackend::getWatchedDirsList()
{
KUrl url = KFileDialog::getExistingDirectoryUrl();
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/browsingbackends/localfiles/localfilesabstractbackend.h \
#1204276:1204277 @@ -34,6 +34,7 @@
LocalFilesAbstractBackend(const QString &name, QObject* parent, const \
QVariantList& args); virtual ~LocalFilesAbstractBackend();
+ QAbstractItemModel* model();
virtual void createConfigurationInterface(KConfigDialog* parent);
virtual void init();
@@ -44,7 +45,6 @@
void configAccepted();
void getWatchedDirsList();
void removeItem();
- void resetModel();
private:
void setBackendName(const QString &name);
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.cpp \
#1204276:1204277 @@ -28,10 +28,6 @@
#include <QWidget>
#include <QKeyEvent>
#include <QGraphicsLinearLayout>
-#include <QtDeclarative/QDeclarativeEngine>
-#include <QtDeclarative/QDeclarativeComponent>
-#include <QtDeclarative/QDeclarativeContext>
-#include <QtDeclarative/qdeclarative.h>
#include <KDirModel>
#include <KConfigDialog>
@@ -41,12 +37,10 @@
#include <KDebug>
#include <KDirLister>
-QML_DECLARE_TYPE(MediaCenter::AbstractBrowsingBackend)
-
MediaBrowser::MediaBrowser(QObject *parent, const QVariantList &args)
: MediaCenter::Browser(parent, args),
m_view(0),
- m_backend(0),
+ m_model(0),
m_layout(new QGraphicsLinearLayout(Qt::Vertical))
{
setAspectRatioMode(Plasma::IgnoreAspectRatio);
@@ -54,8 +48,6 @@
setEnableToolbar(true);
toolbar()->setNavigationControls(MediaCenter::NavigationToolbar::BackwardControl \
| MediaCenter::NavigationToolbar::ViewModeControl);
-
- qmlRegisterType<MediaCenter::AbstractBrowsingBackend>("MediaCenter", 0, 1, \
"AbstractBrowsingBackend"); }
MediaBrowser::~MediaBrowser()
@@ -63,16 +55,16 @@
void MediaBrowser::showInstalledBackends()
{
-// delete m_backend->model();
+// delete m_model;
// m_model = new StartupModel(this);
-// m_view->setModel(m_backend->model());
+// m_view->setModel(m_model);
// QmlHomeView *homeView = new QmlHomeView(this);
// QGraphicsLinearLayout *layout = \
static_cast<QGraphicsLinearLayout*>(this->layout()); // \
layout->addItem(homeView);
// homeView->setQmlPath(KStandardDirs::locate("data", \
"plasma-mediacenter/declarative/homeview.qml"));
-// homeView->setModel(m_backend->model());
+// homeView->setModel(m_model);
}
void MediaBrowser::init()
@@ -86,14 +78,23 @@
void MediaBrowser::createView()
{
delete m_view;
- m_view = new Plasma::DeclarativeWidget(this);
+ kDebug() << "view deleted";
- m_view->setQmlPath(KStandardDirs::locate("data", \
"plasma-mediacenter/declarative/filegrid.qml")); + if (m_viewType == "list") {
+ m_view = new ListView(this);
+ } else {
+ m_view = new GridView(this);
+ }
- if (m_backend) {
- m_view->engine()->rootContext()->setContextProperty("fileBackend", \
m_backend); + m_view->setDrawBlurredText(m_blurred);
+ m_view->setFocus(Qt::OtherFocusReason);
+
+ if (m_model) {
+ m_view->setModel(m_model);
+// m_view->generateItems();
}
- /*connect (this, SIGNAL(browseHistoryBackRequest()), m_view, \
SLOT(goPrevious())); +
+ connect (this, SIGNAL(browseHistoryBackRequest()), m_view, SLOT(goPrevious()));
connect (m_view, SIGNAL(mediasActivated(QList<MediaCenter::Media>)), this, \
SIGNAL(mediasActivated(QList<MediaCenter::Media>)));
connect (m_view, SIGNAL(mediasListChanged(QList<MediaCenter::Media>)), this, \
SIGNAL(mediasListChanged(QList<MediaCenter::Media>)));
connect (m_view, SIGNAL(mediaActivated(const MediaCenter::Media&)), this, \
SIGNAL(mediaActivated(const MediaCenter::Media&))); @@ -101,7 +102,6 @@
connect (m_view, SIGNAL(mediaSelected(MediaCenter::Media)), this, \
SLOT(selectedMediasAdd(MediaCenter::Media)));
connect (m_view, SIGNAL(mediaUnselected(MediaCenter::Media)), this, \
SLOT(selectedMediasRemove(MediaCenter::Media)));
connect (m_view, SIGNAL(directoryChanged()), this, SLOT(clearSelectedMedias()));
-// // */
QGraphicsLinearLayout *layout = \
static_cast<QGraphicsLinearLayout*>(this->layout()); layout->addItem(m_view);
@@ -109,7 +109,7 @@
void MediaBrowser::createConfigurationInterface(KConfigDialog *parent)
{
- /*QWidget *generalConfig = new QWidget(parent);
+ QWidget *generalConfig = new QWidget(parent);
uiGeneral.setupUi(generalConfig);
parent->addPage(generalConfig, i18n("Browser appearance"), \
"preferences-desktop-display"); @@ -119,7 +119,7 @@
uiGeneral.gridRadio->setChecked(true);
}
- uiGeneral.blurredTextCheckBox->setChecked(m_blurred);*/
+ uiGeneral.blurredTextCheckBox->setChecked(m_blurred);
if (currentBrowsingBackend()) {
if (currentBrowsingBackend()->hasConfigurationInterface()) {
@@ -132,15 +132,15 @@
void MediaBrowser::loadConfiguration()
{
- //KConfigGroup cf = config();
+ KConfigGroup cf = config();
- //m_viewType = cf.readEntry("ViewType", "list");
- //m_blurred = cf.readEntry("BlurredText", true);
+ m_viewType = cf.readEntry("ViewType", "list");
+ m_blurred = cf.readEntry("BlurredText", true);
}
void MediaBrowser::configAccepted()
{
- /*KConfigGroup cf = config();
+ KConfigGroup cf = config();
kDebug() << cf.name();
QString type;
@@ -159,9 +159,9 @@
bool blurred = uiGeneral.blurredTextCheckBox->isChecked();
if (blurred != m_blurred) {
m_blurred = blurred;
- //m_view->setDrawBlurredText(m_blurred);
+ m_view->setDrawBlurredText(m_blurred);
cf.writeEntry("BlurredText", m_blurred);
- }*/
+ }
}
@@ -169,23 +169,25 @@
{
kDebug() << "loading browsing backend";
- m_backend = backend;
+ m_view->setModel( 0 );
+ backend->setParent(this);
+ backend->init();
+ m_model = backend->model();
+ m_view->setModel( m_model );
- m_backend->setParent(this);
- m_backend->init();
- m_view->engine()->rootContext()->setContextProperty("fileBackend", m_backend);
- //m_view->engine()->rootContext()->setContextProperty("fileModel", \
m_backend->model());
-
- emit browsingModeChanged( m_backend->requiredMode() );
+ emit browsingModeChanged( backend->requiredMode() );
}
void MediaBrowser::showStartupState()
{
+ //Calling directly showInstalledBackends makes PMC crash on startup
+ //m_model = new StartupModel(this);
+ //m_view->setModel(m_model);
}
KUrl MediaBrowser::currentUrl() const
{
- KDirModel *modeldir = qobject_cast<KDirModel*>(m_backend->model());
+ KDirModel *modeldir = qobject_cast<KDirModel*>(m_model);
if (!modeldir || !modeldir->dirLister()) {
return KUrl();
}
@@ -194,7 +196,7 @@
void MediaBrowser::openUrl(const KUrl &url)
{
- KDirModel *modeldir = qobject_cast<KDirModel*>(m_backend->model());
+ KDirModel *modeldir = qobject_cast<KDirModel*>(m_model);
if (modeldir) {
modeldir->dirLister()->openUrl(url);
}
@@ -202,7 +204,7 @@
void MediaBrowser::listMediaInDirectory()
{
- //m_view->listMediaInDirectory();
+ m_view->listMediaInDirectory();
}
void MediaBrowser::selectedMediasAdd(const MediaCenter::Media &media)
@@ -234,7 +236,7 @@
void MediaBrowser::gestureEvent(MediaCenter::BrowserGesture *bGesture)
{
- /*if (!bGesture) {
+ if (!bGesture) {
return;
}
@@ -253,8 +255,8 @@
} else if (bGesture->activeAction() == \
MediaCenter::BrowserGesture::ActivateAction) {
QKeyEvent keyEvent(QKeyEvent::KeyPress, Qt::Key_Return, Qt::NoModifier);
qApp->sendEvent(m_view, &keyEvent);
- }*/
}
+}
void MediaBrowser::createQmlHomeView()
{}
--- trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.h \
#1204276:1204277 @@ -20,9 +20,8 @@
#define MEDIABROWSER_H
#include <mediacenter/browser.h>
-#include <plasma/widgets/declarativewidget.h>
-//#include "ui_general.h"
+#include "ui_general.h"
class QGraphicsLinearLayout;
class AbstractMediaItemView;
@@ -68,10 +67,10 @@
void pictureDataEngine();
private:
- Plasma::DeclarativeWidget * m_view;
- //Ui::General uiGeneral;
+ AbstractMediaItemView *m_view;
+ Ui::General uiGeneral;
- MediaCenter::AbstractBrowsingBackend *m_backend;
+ QAbstractItemModel *m_model;
bool m_blurred;
QString m_viewType;
--- trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/abstractbrowsingbackend.cpp \
#1204276:1204277 @@ -32,8 +32,7 @@
AbstractBrowsingBackendPrivate(KService::Ptr service, AbstractBrowsingBackend \
*q) : backendInfo(service),
q(q),
- cfInterface(false),
- model(0)
+ cfInterface(false)
{}
AbstractBrowsingBackend *q;
@@ -41,38 +40,19 @@
KPluginInfo backendInfo;
MediaCenter::Mode requiredMode;
BrowsingType browsingType;
- QAbstractItemModel * model;
};
AbstractBrowsingBackend::AbstractBrowsingBackend(QObject *parent, const QVariantList \
&args) : QObject(parent), d(new \
AbstractBrowsingBackendPrivate(KService::serviceByStorageId(args.count() ? \
args.first().toString() : QString()), this)) {
Q_UNUSED(args);
- qRegisterMetaType<QAbstractItemModel*>("QAbstractItemModel*");
}
-AbstractBrowsingBackend::AbstractBrowsingBackend(QObject * parent)
- : QObject(parent),
- d(new AbstractBrowsingBackendPrivate(KService::serviceByStorageId(QString()), \
this))
-{
-}
-
AbstractBrowsingBackend::~AbstractBrowsingBackend()
{
delete d;
}
-void AbstractBrowsingBackend::setModel(QAbstractItemModel * model)
-{
- d->model = model;
- emit modelChanged(d->model);
-}
-
-QObject * AbstractBrowsingBackend::model()
-{
- return (QObject*)(d->model);
-}
-
bool AbstractBrowsingBackend::hasConfigurationInterface() const
{
return d->cfInterface;
--- trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/abstractbrowsingbackend.h \
#1204276:1204277 @@ -49,8 +49,6 @@
class MEDIACENTER_EXPORT AbstractBrowsingBackend : public QObject
{
Q_OBJECT
- Q_PROPERTY(QObject* backendModel READ model/* WRITE setModel*/ NOTIFY \
modelChanged)
-
public:
enum BrowsingType {
LocalBrowsing,
@@ -66,13 +64,18 @@
* The first argument of @param args must be the unique storageID of the \
service.
* */
AbstractBrowsingBackend(QObject *parent, const QVariantList &args);
- AbstractBrowsingBackend(QObject *parent = 0);
virtual ~AbstractBrowsingBackend();
/**
- * @returns the model of the browsing backend
+ * 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.
+ * @see MediaRole
*/
- QObject *model();
+ virtual QAbstractItemModel *model() = 0;
/**
* @return the browsing type of the model. Typically a remote browsing type
@@ -124,6 +127,7 @@
*/
static KService::List availableBackends();
+public slots:
/**
* This slot must be reimplemented if browsingType returns
* LocalBrowsing. This method will be used to list the media
@@ -138,22 +142,8 @@
*/
virtual void searchForMedia(const QString &name);
-signals:
- void modelChanged(QAbstractItemModel * model);
-
protected:
/**
- * This method must be set 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.
- * @see MediaRole
- */
- void setModel(QAbstractItemModel * model);
-
- /**
* As from Plasma::Applet this method should be used in order
* to inform about the availability of a configuration interface for
* the model.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic