mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
// Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
|
|
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
|
|
//
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
#include "mediaplugin.h"
|
|
#include "mediawidget.h"
|
|
#include "mediaplayermodel.h"
|
|
|
|
MediaPlugin::MediaPlugin(QObject *parent)
|
|
: QObject(parent)
|
|
, m_mediaWidget(nullptr)
|
|
, m_model(nullptr)
|
|
{
|
|
}
|
|
|
|
const QString MediaPlugin::pluginName() const
|
|
{
|
|
return "media";
|
|
}
|
|
|
|
const QString MediaPlugin::pluginDisplayName() const
|
|
{
|
|
return "Media";
|
|
}
|
|
|
|
void MediaPlugin::init(PluginProxyInterface *proxyInter)
|
|
{
|
|
if (m_proxyInter == proxyInter)
|
|
return;
|
|
|
|
m_proxyInter = proxyInter;
|
|
|
|
m_model.reset(new MediaPlayerModel);
|
|
m_mediaWidget.reset(new MediaWidget(m_model.data()));
|
|
m_mediaWidget->setFixedHeight(60);
|
|
m_mediaWidget->setVisible(m_model->isActived());
|
|
|
|
if (m_model->isActived())
|
|
m_proxyInter->itemAdded(this, pluginName());
|
|
|
|
connect(m_model.data(), &MediaPlayerModel::startStop, this, [ this ](bool visible) {
|
|
if (visible)
|
|
m_proxyInter->itemAdded(this, pluginName());
|
|
else
|
|
m_proxyInter->itemRemoved(this, pluginName());
|
|
});
|
|
}
|
|
|
|
QWidget *MediaPlugin::itemWidget(const QString &itemKey)
|
|
{
|
|
if (itemKey == QUICK_ITEM_KEY)
|
|
return m_mediaWidget.data();
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
QWidget *MediaPlugin::itemTipsWidget(const QString &itemKey)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
QWidget *MediaPlugin::itemPopupApplet(const QString &itemKey)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
PluginFlags MediaPlugin::flags() const
|
|
{
|
|
return PluginFlag::Type_Common | PluginFlag::Quick_Full;
|
|
}
|