mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
add shutdown plugin
Change-Id: I4d16ce04b7e063304daba6d31032ba2b70c1f8b4
This commit is contained in:
parent
0c86878336
commit
7b3ec27bf8
Notes:
Deepin Code Review
2016-06-14 07:19:47 +00:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: <mr.asianwang@gmail.com> Submitted-by: <mr.asianwang@gmail.com> Submitted-at: Thu, 10 Dec 2015 16:50:34 +0800 Reviewed-on: https://cr.deepin.io/9556 Project: dde/dde-dock Branch: refs/heads/master
@ -1,6 +1,7 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = dde-dock \
|
||||
dde-dock-systray-plugin \
|
||||
dde-dock-shutdown-plugin \
|
||||
dde-dock-trash-plugin
|
||||
|
||||
TRANSLATIONS += translations/dde-dock.ts
|
||||
|
4
dde-dock-shutdown-plugin/dde-dock-shutdown-plugin.json
Normal file
4
dde-dock-shutdown-plugin/dde-dock-shutdown-plugin.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"api_version" : 1.0,
|
||||
"sys_plugin" : true
|
||||
}
|
24
dde-dock-shutdown-plugin/dde-dock-shutdown-plugin.pro
Normal file
24
dde-dock-shutdown-plugin/dde-dock-shutdown-plugin.pro
Normal file
@ -0,0 +1,24 @@
|
||||
include(../../common.pri)
|
||||
|
||||
QT += core gui widgets
|
||||
|
||||
TARGET = dde-dock-shutdown-plugin
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin c++11
|
||||
DESTDIR = $$_PRO_FILE_PWD_/../
|
||||
|
||||
SOURCES += \
|
||||
shutdownplugin.cpp
|
||||
|
||||
HEADERS += \
|
||||
shutdownplugin.h
|
||||
|
||||
DISTFILES += dde-dock-shutdown-plugin.json
|
||||
|
||||
target.path = $${PREFIX}/lib/dde-dock/plugins/
|
||||
INSTALLS += target
|
||||
|
||||
QMAKE_MOC_OPTIONS += -I/usr/include/
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
145
dde-dock-shutdown-plugin/icons/fashion.svg
Normal file
145
dde-dock-shutdown-plugin/icons/fashion.svg
Normal file
@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
|
||||
<g>
|
||||
|
||||
<image style="overflow:visible;opacity:0.3;" width="200" height="200" xlink:href="data:image/png;base64,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" transform="matrix(0.24 0 0 0.24 -0.0945 0.0176)">
|
||||
</image>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="23.9055" y1="44.0176" x2="23.9055" y2="2.0176">
|
||||
<stop offset="0" style="stop-color:#5F00F4"/>
|
||||
<stop offset="1" style="stop-color:#AF4DEB"/>
|
||||
</linearGradient>
|
||||
<path style="fill:url(#SVGID_1_);" d="M23.905,44.018c-11.58,0-21-9.421-21-21c0-11.579,9.42-21,21-21c11.579,0,21,9.421,21,21
|
||||
C44.905,34.597,35.485,44.018,23.905,44.018z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M24,23c-0.552,0-1-0.448-1-1V12c0-0.552,0.448-1,1-1s1,0.448,1,1v10C25,22.552,24.552,23,24,23z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M24,33.984c-6.065,0-11-4.935-11-11c0-3.492,1.604-6.7,4.399-8.8
|
||||
c0.442-0.332,1.069-0.242,1.4,0.199c0.332,0.441,0.243,1.068-0.199,1.4c-2.288,1.719-3.6,4.344-3.6,7.201c0,4.963,4.038,9,9,9
|
||||
c4.963,0,9-4.037,9-9c0-2.86-1.314-5.486-3.605-7.205c-0.441-0.332-0.53-0.958-0.199-1.4c0.331-0.442,0.957-0.531,1.4-0.2
|
||||
C33.395,16.28,35,19.489,35,22.984C35,29.05,30.065,33.984,24,33.984z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
18
dde-dock-shutdown-plugin/icons/normal.svg
Normal file
18
dde-dock-shutdown-plugin/icons/normal.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M7.458,13.976c-3.074,0-5.575-2.501-5.575-5.575c0-1.71,0.77-3.303,2.111-4.368
|
||||
c0.248-0.196,0.611-0.157,0.808,0.093c0.197,0.249,0.156,0.61-0.093,0.808C3.644,5.779,3.033,7.042,3.033,8.4
|
||||
c0,2.44,1.984,4.425,4.425,4.425s4.425-1.984,4.425-4.425c0-1.347-0.603-2.605-1.653-3.45C9.982,4.751,9.942,4.39,10.142,4.142
|
||||
s0.563-0.286,0.809-0.088c1.323,1.064,2.083,2.649,2.083,4.346C13.033,11.475,10.532,13.976,7.458,13.976z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M7.5,8.497c-0.276,0-0.5-0.224-0.5-0.5v-5c0-0.276,0.224-0.5,0.5-0.5S8,2.72,8,2.997v5
|
||||
C8,8.273,7.776,8.497,7.5,8.497z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
6
dde-dock-shutdown-plugin/resources.qrc
Normal file
6
dde-dock-shutdown-plugin/resources.qrc
Normal file
@ -0,0 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/icons">
|
||||
<file>icons/normal.svg</file>
|
||||
<file>icons/fashion.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
127
dde-dock-shutdown-plugin/shutdownplugin.cpp
Normal file
127
dde-dock-shutdown-plugin/shutdownplugin.cpp
Normal file
@ -0,0 +1,127 @@
|
||||
#include "shutdownplugin.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QDebug>
|
||||
#include <QTimer>
|
||||
|
||||
const QString PLUGIN_ID = "shutdown";
|
||||
|
||||
ShutdownPlugin::ShutdownPlugin(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
m_mainWidget = new QLabel;
|
||||
}
|
||||
|
||||
QString ShutdownPlugin::getPluginName()
|
||||
{
|
||||
return QString(tr("Power"));
|
||||
}
|
||||
|
||||
void ShutdownPlugin::init(DockPluginProxyInterface *proxy)
|
||||
{
|
||||
m_proxy = proxy;
|
||||
m_proxy->itemAddedEvent(PLUGIN_ID);
|
||||
|
||||
changeMode(m_proxy->dockMode(), m_proxy->dockMode());
|
||||
}
|
||||
|
||||
void ShutdownPlugin::changeMode(Dock::DockMode newMode, Dock::DockMode oldMode)
|
||||
{
|
||||
Q_UNUSED(oldMode)
|
||||
|
||||
switch (newMode)
|
||||
{
|
||||
case Dock::FashionMode:
|
||||
m_mainWidget->setFixedSize(48, 48);
|
||||
m_mainWidget->setPixmap(QPixmap(":/icons/icons/fashion.svg"));
|
||||
break;
|
||||
case Dock::ClassicMode:
|
||||
case Dock::EfficientMode:
|
||||
m_mainWidget->setFixedSize(18, 18);
|
||||
m_mainWidget->setPixmap(QPixmap(":/icons/icons/normal.svg"));
|
||||
break;
|
||||
}
|
||||
|
||||
m_proxy->infoChangedEvent(DockPluginInterface::InfoTypeItemSize, PLUGIN_ID);
|
||||
}
|
||||
|
||||
QStringList ShutdownPlugin::ids()
|
||||
{
|
||||
return QStringList();
|
||||
}
|
||||
|
||||
QString ShutdownPlugin::getName(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return getPluginName();
|
||||
}
|
||||
|
||||
QString ShutdownPlugin::getTitle(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return getPluginName();
|
||||
}
|
||||
|
||||
QString ShutdownPlugin::getCommand(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return QString("dde-shutdown");
|
||||
}
|
||||
|
||||
QWidget *ShutdownPlugin::getItem(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return m_mainWidget;
|
||||
}
|
||||
|
||||
QWidget *ShutdownPlugin::getApplet(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QString ShutdownPlugin::getMenuContent(QString id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return QString();
|
||||
}
|
||||
|
||||
void ShutdownPlugin::invokeMenuItem(QString id, QString itemId, bool checked)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
Q_UNUSED(itemId)
|
||||
Q_UNUSED(checked)
|
||||
}
|
||||
|
||||
void ShutdownPlugin::setEnabled(const QString &id, bool enabled)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
Q_UNUSED(enabled)
|
||||
}
|
||||
|
||||
bool ShutdownPlugin::configurable(const QString &id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ShutdownPlugin::enabled(const QString &id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QPixmap ShutdownPlugin::getIcon(QString id)
|
||||
{
|
||||
Q_UNUSED(id);
|
||||
|
||||
return QPixmap();
|
||||
}
|
41
dde-dock-shutdown-plugin/shutdownplugin.h
Normal file
41
dde-dock-shutdown-plugin/shutdownplugin.h
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef SHUTDOWNPLUGIN_H
|
||||
#define SHUTDOWNPLUGIN_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QLabel>
|
||||
|
||||
#include <dde-dock/dockplugininterface.h>
|
||||
#include <dde-dock/dockpluginproxyinterface.h>
|
||||
|
||||
class ShutdownPlugin : public QObject, public DockPluginInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "org.deepin.Dock.PluginInterface" FILE "dde-dock-shutdown-plugin.json")
|
||||
Q_INTERFACES(DockPluginInterface)
|
||||
|
||||
public:
|
||||
explicit ShutdownPlugin(QObject *parent = 0);
|
||||
|
||||
void init(DockPluginProxyInterface *proxy) Q_DECL_OVERRIDE;
|
||||
void changeMode(Dock::DockMode newMode, Dock::DockMode oldMode) Q_DECL_OVERRIDE;
|
||||
void invokeMenuItem(QString id, QString itemId, bool checked) Q_DECL_OVERRIDE;
|
||||
void setEnabled(const QString &id, bool enabled) Q_DECL_OVERRIDE;
|
||||
bool configurable(const QString &id) Q_DECL_OVERRIDE;
|
||||
bool enabled(const QString &id) Q_DECL_OVERRIDE;
|
||||
QPixmap getIcon(QString id) Q_DECL_OVERRIDE;
|
||||
QString getPluginName() Q_DECL_OVERRIDE;
|
||||
QString getName(QString id) Q_DECL_OVERRIDE;
|
||||
QString getTitle(QString id) Q_DECL_OVERRIDE;
|
||||
QString getCommand(QString id) Q_DECL_OVERRIDE;
|
||||
QString getMenuContent(QString id) Q_DECL_OVERRIDE;
|
||||
QStringList ids() Q_DECL_OVERRIDE;
|
||||
QWidget *getItem(QString id) Q_DECL_OVERRIDE;
|
||||
QWidget *getApplet(QString id) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
DockPluginProxyInterface *m_proxy;
|
||||
|
||||
QLabel *m_mainWidget;
|
||||
};
|
||||
|
||||
#endif // SHUTDOWNPLUGIN_H
|
@ -226,7 +226,7 @@ void TrayIcon::updateIcon()
|
||||
xcb_configure_window(c, m_containerWid, XCB_CONFIG_WINDOW_STACK_MODE, stackAboveData);
|
||||
|
||||
QPoint globalPos = mapToGlobal(QPoint(0, 0));
|
||||
const uint32_t windowMoveConfigVals[2] = { globalPos.x(), globalPos.y() };
|
||||
const uint32_t windowMoveConfigVals[2] = { uint32_t(globalPos.x()), uint32_t(globalPos.y()) };
|
||||
xcb_configure_window(c, m_containerWid,
|
||||
XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y,
|
||||
windowMoveConfigVals);
|
||||
|
@ -219,12 +219,22 @@ void DockPluginManager::handleSysPluginAdd(AbstractDockItem *item, QString uuid)
|
||||
|
||||
m_sysPlugins.insert(item, uuid);
|
||||
|
||||
if (uuid == SHUTDOWN_PLUGIN_ID)
|
||||
{
|
||||
if (m_sysPlugins.values().contains(DATETIME_PLUGIN_ID))
|
||||
emit itemInsert(sysPluginItem(DATETIME_PLUGIN_ID), item);
|
||||
else
|
||||
emit itemAppend(item);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (uuid == SYSTRAY_PLUGIN_ID) {
|
||||
if (m_dockModeData->getDockMode() != Dock::FashionMode) {
|
||||
emit itemAppend(item);
|
||||
}
|
||||
else {
|
||||
emit itemInsert(sysPluginItem(DATETIME_PLUGIN_ID), item);
|
||||
emit itemInsert(sysPluginItem(SHUTDOWN_PLUGIN_ID), item);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -238,8 +248,15 @@ void DockPluginManager::handleNormalPluginAdd(AbstractDockItem *item, QString uu
|
||||
return;
|
||||
|
||||
if (m_dockModeData->getDockMode() != Dock::FashionMode) {
|
||||
//Normal plug next date plugins to ensure trayicon displayed in the far left
|
||||
emit itemInsert(sysPluginItem(DATETIME_PLUGIN_ID), item);
|
||||
|
||||
qDebug() << uuid << m_sysPlugins.values();
|
||||
|
||||
if (m_sysPlugins.values().contains(SHUTDOWN_PLUGIN_ID))
|
||||
itemInsert(sysPluginItem(SHUTDOWN_PLUGIN_ID), item);
|
||||
else if (m_sysPlugins.values().contains(DATETIME_PLUGIN_ID))
|
||||
itemInsert(sysPluginItem(DATETIME_PLUGIN_ID), item);
|
||||
else
|
||||
itemInsert(nullptr, item);
|
||||
}
|
||||
else {
|
||||
//Normal plug placed in the far left on Fashion Mode
|
||||
@ -247,5 +264,4 @@ void DockPluginManager::handleNormalPluginAdd(AbstractDockItem *item, QString uu
|
||||
}
|
||||
|
||||
m_normalPlugins.insert(item, uuid);
|
||||
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ private:
|
||||
|
||||
const QString SYSTRAY_PLUGIN_ID = "composite_item_key";
|
||||
const QString DATETIME_PLUGIN_ID = "id_datetime";
|
||||
const QString SHUTDOWN_PLUGIN_ID = "shutdown";
|
||||
};
|
||||
|
||||
#endif // DOCKPLUGINMANAGER_H
|
||||
|
Binary file not shown.
@ -53,7 +53,7 @@
|
||||
<context>
|
||||
<name>MainItem</name>
|
||||
<message>
|
||||
<location filename="../dde-dock-trash-plugin/mainitem.cpp" line="96"/>
|
||||
<location filename="../dde-dock-trash-plugin/mainitem.cpp" line="123"/>
|
||||
<source>Are you sure to uninstall %1?</source>
|
||||
<translation>您确定要卸载 %1 吗?</translation>
|
||||
</message>
|
||||
@ -99,12 +99,12 @@
|
||||
<context>
|
||||
<name>PluginItemWrapper</name>
|
||||
<message>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginitemwrapper.cpp" line="92"/>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginitemwrapper.cpp" line="103"/>
|
||||
<source>_Run</source>
|
||||
<translation>运行(R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginitemwrapper.cpp" line="93"/>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginitemwrapper.cpp" line="104"/>
|
||||
<source>_Undock</source>
|
||||
<translation>移除驻留(U)</translation>
|
||||
</message>
|
||||
@ -112,11 +112,19 @@
|
||||
<context>
|
||||
<name>PluginsSettingFrame</name>
|
||||
<message>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginssettingframe.cpp" line="149"/>
|
||||
<location filename="../dde-dock/src/controller/plugins/pluginssettingframe.cpp" line="170"/>
|
||||
<source>Notification Area Settings</source>
|
||||
<translation>通知区域设置</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownPlugin</name>
|
||||
<message>
|
||||
<location filename="../dde-dock-shutdown-plugin/shutdownplugin.cpp" line="17"/>
|
||||
<source>Power</source>
|
||||
<translation>电源</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrashPlugin</name>
|
||||
<message>
|
||||
|
Loading…
x
Reference in New Issue
Block a user