From 3d2a1e76c38bfbd09619ac7a7da04889c19141d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=8D=9A=E6=96=87?= Date: Wed, 15 Jun 2016 17:44:38 +0800 Subject: [PATCH] add plugins Change-Id: Ib35a19191b8169993ca5e04cc9d5654b8519a56e --- dde-dock.pro | 45 ++---------------- .../controller}/dockitemcontroller.cpp | 0 .../controller}/dockitemcontroller.h | 0 .../dbus}/com.deepin.dde.daemon.Dock.xml | 0 {dbus => frame/dbus}/dbusclientmanager.cpp | 0 {dbus => frame/dbus}/dbusclientmanager.h | 0 {dbus => frame/dbus}/dbusdisplay.cpp | 0 {dbus => frame/dbus}/dbusdisplay.h | 0 {dbus => frame/dbus}/dbusdock.cpp | 0 {dbus => frame/dbus}/dbusdock.h | 0 {dbus => frame/dbus}/dbusdockentry.cpp | 0 {dbus => frame/dbus}/dbusdockentry.h | 0 {dbus => frame/dbus}/dbusmenu.cpp | 0 {dbus => frame/dbus}/dbusmenu.h | 0 {dbus => frame/dbus}/dbusmenumanager.cpp | 0 {dbus => frame/dbus}/dbusmenumanager.h | 0 .../dbus}/dde-dock-ClientManager.xml | 0 {dbus => frame/dbus}/dde-dock-entry-v1.xml | 0 frame/frame.pro | 46 +++++++++++++++++++ {item => frame/item}/appitem.cpp | 0 {item => frame/item}/appitem.h | 0 {item => frame/item}/dockitem.cpp | 15 +++--- {item => frame/item}/dockitem.h | 8 ++-- {item => frame/item}/launcheritem.cpp | 0 {item => frame/item}/launcheritem.h | 0 {item => frame/item}/placeholderitem.cpp | 0 {item => frame/item}/placeholderitem.h | 0 frame/item/pluginsitem.cpp | 7 +++ frame/item/pluginsitem.h | 14 ++++++ main.cpp => frame/main.cpp | 0 {panel => frame/panel}/mainpanel.cpp | 0 {panel => frame/panel}/mainpanel.h | 0 {util => frame/util}/docksettings.cpp | 0 {util => frame/util}/docksettings.h | 0 {util => frame/util}/themeappicon.cpp | 0 {util => frame/util}/themeappicon.h | 0 {window => frame/window}/mainwindow.cpp | 0 {window => frame/window}/mainwindow.h | 0 {xcb => frame/xcb}/xcb_misc.cpp | 0 {xcb => frame/xcb}/xcb_misc.h | 0 interfaces/interfaces.pri | 4 ++ interfaces/pluginsiteminterface.h | 19 ++++++++ plugins/datetime/datetime.json | 2 + plugins/datetime/datetime.pro | 20 ++++++++ plugins/datetime/datetimeitem.cpp | 7 +++ plugins/datetime/datetimeitem.h | 14 ++++++ plugins/datetime/datetimeplugin.cpp | 12 +++++ plugins/datetime/datetimeplugin.h | 19 ++++++++ plugins/plugins.pro | 3 ++ 49 files changed, 182 insertions(+), 53 deletions(-) rename {controller => frame/controller}/dockitemcontroller.cpp (100%) rename {controller => frame/controller}/dockitemcontroller.h (100%) rename {dbus => frame/dbus}/com.deepin.dde.daemon.Dock.xml (100%) rename {dbus => frame/dbus}/dbusclientmanager.cpp (100%) rename {dbus => frame/dbus}/dbusclientmanager.h (100%) rename {dbus => frame/dbus}/dbusdisplay.cpp (100%) rename {dbus => frame/dbus}/dbusdisplay.h (100%) rename {dbus => frame/dbus}/dbusdock.cpp (100%) rename {dbus => frame/dbus}/dbusdock.h (100%) rename {dbus => frame/dbus}/dbusdockentry.cpp (100%) rename {dbus => frame/dbus}/dbusdockentry.h (100%) rename {dbus => frame/dbus}/dbusmenu.cpp (100%) rename {dbus => frame/dbus}/dbusmenu.h (100%) rename {dbus => frame/dbus}/dbusmenumanager.cpp (100%) rename {dbus => frame/dbus}/dbusmenumanager.h (100%) rename {dbus => frame/dbus}/dde-dock-ClientManager.xml (100%) rename {dbus => frame/dbus}/dde-dock-entry-v1.xml (100%) create mode 100644 frame/frame.pro rename {item => frame/item}/appitem.cpp (100%) rename {item => frame/item}/appitem.h (100%) rename {item => frame/item}/dockitem.cpp (89%) rename {item => frame/item}/dockitem.h (80%) rename {item => frame/item}/launcheritem.cpp (100%) rename {item => frame/item}/launcheritem.h (100%) rename {item => frame/item}/placeholderitem.cpp (100%) rename {item => frame/item}/placeholderitem.h (100%) create mode 100644 frame/item/pluginsitem.cpp create mode 100644 frame/item/pluginsitem.h rename main.cpp => frame/main.cpp (100%) rename {panel => frame/panel}/mainpanel.cpp (100%) rename {panel => frame/panel}/mainpanel.h (100%) rename {util => frame/util}/docksettings.cpp (100%) rename {util => frame/util}/docksettings.h (100%) rename {util => frame/util}/themeappicon.cpp (100%) rename {util => frame/util}/themeappicon.h (100%) rename {window => frame/window}/mainwindow.cpp (100%) rename {window => frame/window}/mainwindow.h (100%) rename {xcb => frame/xcb}/xcb_misc.cpp (100%) rename {xcb => frame/xcb}/xcb_misc.h (100%) create mode 100644 interfaces/interfaces.pri create mode 100644 interfaces/pluginsiteminterface.h create mode 100644 plugins/datetime/datetime.json create mode 100644 plugins/datetime/datetime.pro create mode 100644 plugins/datetime/datetimeitem.cpp create mode 100644 plugins/datetime/datetimeitem.h create mode 100644 plugins/datetime/datetimeplugin.cpp create mode 100644 plugins/datetime/datetimeplugin.h create mode 100644 plugins/plugins.pro diff --git a/dde-dock.pro b/dde-dock.pro index f6621fcc3..5914a0d66 100644 --- a/dde-dock.pro +++ b/dde-dock.pro @@ -1,43 +1,4 @@ -QT += core gui widgets dbus x11extras svg -TARGET = dde-dock -TEMPLATE = app -CONFIG += c++11 link_pkgconfig - -PKGCONFIG += xcb-ewmh gtk+-2.0 dtkwidget dtkbase - -SOURCES += main.cpp \ - window/mainwindow.cpp \ - xcb/xcb_misc.cpp \ - item/dockitem.cpp \ - panel/mainpanel.cpp \ - controller/dockitemcontroller.cpp \ - dbus/dbusdockentry.cpp \ - dbus/dbusdisplay.cpp \ - item/appitem.cpp \ - util/docksettings.cpp \ - item/placeholderitem.cpp \ - dbus/dbusclientmanager.cpp \ - dbus/dbusdock.cpp \ - util/themeappicon.cpp \ - item/launcheritem.cpp \ - dbus/dbusmenumanager.cpp \ - dbus/dbusmenu.cpp - -HEADERS += \ - window/mainwindow.h \ - xcb/xcb_misc.h \ - item/dockitem.h \ - panel/mainpanel.h \ - controller/dockitemcontroller.h \ - dbus/dbusdockentry.h \ - dbus/dbusdisplay.h \ - item/appitem.h \ - util/docksettings.h \ - item/placeholderitem.h \ - dbus/dbusclientmanager.h \ - dbus/dbusdock.h \ - util/themeappicon.h \ - item/launcheritem.h \ - dbus/dbusmenumanager.h \ - dbus/dbusmenu.h +TEMPLATE = subdirs +SUBDIRS = frame \ + plugins diff --git a/controller/dockitemcontroller.cpp b/frame/controller/dockitemcontroller.cpp similarity index 100% rename from controller/dockitemcontroller.cpp rename to frame/controller/dockitemcontroller.cpp diff --git a/controller/dockitemcontroller.h b/frame/controller/dockitemcontroller.h similarity index 100% rename from controller/dockitemcontroller.h rename to frame/controller/dockitemcontroller.h diff --git a/dbus/com.deepin.dde.daemon.Dock.xml b/frame/dbus/com.deepin.dde.daemon.Dock.xml similarity index 100% rename from dbus/com.deepin.dde.daemon.Dock.xml rename to frame/dbus/com.deepin.dde.daemon.Dock.xml diff --git a/dbus/dbusclientmanager.cpp b/frame/dbus/dbusclientmanager.cpp similarity index 100% rename from dbus/dbusclientmanager.cpp rename to frame/dbus/dbusclientmanager.cpp diff --git a/dbus/dbusclientmanager.h b/frame/dbus/dbusclientmanager.h similarity index 100% rename from dbus/dbusclientmanager.h rename to frame/dbus/dbusclientmanager.h diff --git a/dbus/dbusdisplay.cpp b/frame/dbus/dbusdisplay.cpp similarity index 100% rename from dbus/dbusdisplay.cpp rename to frame/dbus/dbusdisplay.cpp diff --git a/dbus/dbusdisplay.h b/frame/dbus/dbusdisplay.h similarity index 100% rename from dbus/dbusdisplay.h rename to frame/dbus/dbusdisplay.h diff --git a/dbus/dbusdock.cpp b/frame/dbus/dbusdock.cpp similarity index 100% rename from dbus/dbusdock.cpp rename to frame/dbus/dbusdock.cpp diff --git a/dbus/dbusdock.h b/frame/dbus/dbusdock.h similarity index 100% rename from dbus/dbusdock.h rename to frame/dbus/dbusdock.h diff --git a/dbus/dbusdockentry.cpp b/frame/dbus/dbusdockentry.cpp similarity index 100% rename from dbus/dbusdockentry.cpp rename to frame/dbus/dbusdockentry.cpp diff --git a/dbus/dbusdockentry.h b/frame/dbus/dbusdockentry.h similarity index 100% rename from dbus/dbusdockentry.h rename to frame/dbus/dbusdockentry.h diff --git a/dbus/dbusmenu.cpp b/frame/dbus/dbusmenu.cpp similarity index 100% rename from dbus/dbusmenu.cpp rename to frame/dbus/dbusmenu.cpp diff --git a/dbus/dbusmenu.h b/frame/dbus/dbusmenu.h similarity index 100% rename from dbus/dbusmenu.h rename to frame/dbus/dbusmenu.h diff --git a/dbus/dbusmenumanager.cpp b/frame/dbus/dbusmenumanager.cpp similarity index 100% rename from dbus/dbusmenumanager.cpp rename to frame/dbus/dbusmenumanager.cpp diff --git a/dbus/dbusmenumanager.h b/frame/dbus/dbusmenumanager.h similarity index 100% rename from dbus/dbusmenumanager.h rename to frame/dbus/dbusmenumanager.h diff --git a/dbus/dde-dock-ClientManager.xml b/frame/dbus/dde-dock-ClientManager.xml similarity index 100% rename from dbus/dde-dock-ClientManager.xml rename to frame/dbus/dde-dock-ClientManager.xml diff --git a/dbus/dde-dock-entry-v1.xml b/frame/dbus/dde-dock-entry-v1.xml similarity index 100% rename from dbus/dde-dock-entry-v1.xml rename to frame/dbus/dde-dock-entry-v1.xml diff --git a/frame/frame.pro b/frame/frame.pro new file mode 100644 index 000000000..e0c2a5254 --- /dev/null +++ b/frame/frame.pro @@ -0,0 +1,46 @@ +QT += core gui widgets dbus x11extras svg + +TARGET = dde-dock +TEMPLATE = app +CONFIG += c++11 link_pkgconfig + +PKGCONFIG += xcb-ewmh gtk+-2.0 dtkwidget dtkbase + +SOURCES += main.cpp \ + window/mainwindow.cpp \ + xcb/xcb_misc.cpp \ + item/dockitem.cpp \ + panel/mainpanel.cpp \ + controller/dockitemcontroller.cpp \ + dbus/dbusdockentry.cpp \ + dbus/dbusdisplay.cpp \ + item/appitem.cpp \ + util/docksettings.cpp \ + item/placeholderitem.cpp \ + dbus/dbusclientmanager.cpp \ + dbus/dbusdock.cpp \ + util/themeappicon.cpp \ + item/launcheritem.cpp \ + dbus/dbusmenumanager.cpp \ + dbus/dbusmenu.cpp \ + item/pluginsitem.cpp + +HEADERS += \ + window/mainwindow.h \ + xcb/xcb_misc.h \ + item/dockitem.h \ + panel/mainpanel.h \ + controller/dockitemcontroller.h \ + dbus/dbusdockentry.h \ + dbus/dbusdisplay.h \ + item/appitem.h \ + util/docksettings.h \ + item/placeholderitem.h \ + dbus/dbusclientmanager.h \ + dbus/dbusdock.h \ + util/themeappicon.h \ + item/launcheritem.h \ + dbus/dbusmenumanager.h \ + dbus/dbusmenu.h \ + item/pluginsiteminterface.h \ + item/pluginsitem.h diff --git a/item/appitem.cpp b/frame/item/appitem.cpp similarity index 100% rename from item/appitem.cpp rename to frame/item/appitem.cpp diff --git a/item/appitem.h b/frame/item/appitem.h similarity index 100% rename from item/appitem.h rename to frame/item/appitem.h diff --git a/item/dockitem.cpp b/frame/item/dockitem.cpp similarity index 89% rename from item/dockitem.cpp rename to frame/item/dockitem.cpp index eae22c468..fecf2d6a2 100644 --- a/item/dockitem.cpp +++ b/frame/item/dockitem.cpp @@ -1,25 +1,26 @@ #include "dockitem.h" #include "dbus/dbusmenu.h" +#include "dbus/dbusmenumanager.h" #include #include DockItem::DockItem(const ItemType type, QWidget *parent) : QWidget(parent), - m_side(DockSettings::Top), +// m_side(DockSettings::Top), m_type(type), m_menuManagerInter(new DBusMenuManager(this)) { } -void DockItem::setDockSide(const DockSettings::DockSide side) -{ - m_side = side; +//void DockItem::setDockSide(const DockSettings::DockSide side) +//{ +// m_side = side; - update(); -} +// update(); +//} DockItem::ItemType DockItem::itemType() const { @@ -76,5 +77,5 @@ void DockItem::invokedMenuItem(const QString &itemId, const bool checked) const QString DockItem::contextMenu() const { - return ""; + return QString(); } diff --git a/item/dockitem.h b/frame/item/dockitem.h similarity index 80% rename from item/dockitem.h rename to frame/item/dockitem.h index fb35dd630..c225fbeba 100644 --- a/item/dockitem.h +++ b/frame/item/dockitem.h @@ -3,9 +3,9 @@ #include -#include "util/docksettings.h" -#include "dbus/dbusmenumanager.h" +//#include "util/docksettings.h" +class DBusMenuManager; class DockItem : public QWidget { Q_OBJECT @@ -20,7 +20,7 @@ public: public: explicit DockItem(const ItemType type, QWidget *parent = nullptr); - void setDockSide(const DockSettings::DockSide side); +// void setDockSide(const DockSettings::DockSide side); ItemType itemType() const; @@ -33,7 +33,7 @@ protected: virtual const QString contextMenu() const; protected: - DockSettings::DockSide m_side; +// DockSettings::DockSide m_side; ItemType m_type; DBusMenuManager *m_menuManagerInter; diff --git a/item/launcheritem.cpp b/frame/item/launcheritem.cpp similarity index 100% rename from item/launcheritem.cpp rename to frame/item/launcheritem.cpp diff --git a/item/launcheritem.h b/frame/item/launcheritem.h similarity index 100% rename from item/launcheritem.h rename to frame/item/launcheritem.h diff --git a/item/placeholderitem.cpp b/frame/item/placeholderitem.cpp similarity index 100% rename from item/placeholderitem.cpp rename to frame/item/placeholderitem.cpp diff --git a/item/placeholderitem.h b/frame/item/placeholderitem.h similarity index 100% rename from item/placeholderitem.h rename to frame/item/placeholderitem.h diff --git a/frame/item/pluginsitem.cpp b/frame/item/pluginsitem.cpp new file mode 100644 index 000000000..8c836e0a3 --- /dev/null +++ b/frame/item/pluginsitem.cpp @@ -0,0 +1,7 @@ +#include "pluginsitem.h" + +PluginsItem::PluginsItem(QWidget *parent) + : DockItem(Plugins, parent) +{ + +} diff --git a/frame/item/pluginsitem.h b/frame/item/pluginsitem.h new file mode 100644 index 000000000..658cf2f3c --- /dev/null +++ b/frame/item/pluginsitem.h @@ -0,0 +1,14 @@ +#ifndef PLUGINSITEM_H +#define PLUGINSITEM_H + +#include "dockitem.h" + +class PluginsItem : public DockItem +{ + Q_OBJECT + +public: + explicit PluginsItem(QWidget *parent = 0); +}; + +#endif // PLUGINSITEM_H diff --git a/main.cpp b/frame/main.cpp similarity index 100% rename from main.cpp rename to frame/main.cpp diff --git a/panel/mainpanel.cpp b/frame/panel/mainpanel.cpp similarity index 100% rename from panel/mainpanel.cpp rename to frame/panel/mainpanel.cpp diff --git a/panel/mainpanel.h b/frame/panel/mainpanel.h similarity index 100% rename from panel/mainpanel.h rename to frame/panel/mainpanel.h diff --git a/util/docksettings.cpp b/frame/util/docksettings.cpp similarity index 100% rename from util/docksettings.cpp rename to frame/util/docksettings.cpp diff --git a/util/docksettings.h b/frame/util/docksettings.h similarity index 100% rename from util/docksettings.h rename to frame/util/docksettings.h diff --git a/util/themeappicon.cpp b/frame/util/themeappicon.cpp similarity index 100% rename from util/themeappicon.cpp rename to frame/util/themeappicon.cpp diff --git a/util/themeappicon.h b/frame/util/themeappicon.h similarity index 100% rename from util/themeappicon.h rename to frame/util/themeappicon.h diff --git a/window/mainwindow.cpp b/frame/window/mainwindow.cpp similarity index 100% rename from window/mainwindow.cpp rename to frame/window/mainwindow.cpp diff --git a/window/mainwindow.h b/frame/window/mainwindow.h similarity index 100% rename from window/mainwindow.h rename to frame/window/mainwindow.h diff --git a/xcb/xcb_misc.cpp b/frame/xcb/xcb_misc.cpp similarity index 100% rename from xcb/xcb_misc.cpp rename to frame/xcb/xcb_misc.cpp diff --git a/xcb/xcb_misc.h b/frame/xcb/xcb_misc.h similarity index 100% rename from xcb/xcb_misc.h rename to frame/xcb/xcb_misc.h diff --git a/interfaces/interfaces.pri b/interfaces/interfaces.pri new file mode 100644 index 000000000..b967dfd0c --- /dev/null +++ b/interfaces/interfaces.pri @@ -0,0 +1,4 @@ +HEADERS += \ + $$PWD/pluginsiteminterface.h + +INCLUDEPATH += $$PWD diff --git a/interfaces/pluginsiteminterface.h b/interfaces/pluginsiteminterface.h new file mode 100644 index 000000000..21e82c8b4 --- /dev/null +++ b/interfaces/pluginsiteminterface.h @@ -0,0 +1,19 @@ +#ifndef PLUGINSITEMINTERFACE_H +#define PLUGINSITEMINTERFACE_H + +class PluginsItem; +class PluginsItemInterface +{ +public: + virtual ~PluginsItemInterface() {} + virtual PluginsItem *getPluginsItem() = 0; +}; + +QT_BEGIN_NAMESPACE + +#define ModuleInterface_iid "com.deepin.dock.PluginsItemInterface" + +Q_DECLARE_INTERFACE(PluginsItemInterface, ModuleInterface_iid) +QT_END_NAMESPACE + +#endif // PLUGINSITEMINTERFACE_H diff --git a/plugins/datetime/datetime.json b/plugins/datetime/datetime.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/plugins/datetime/datetime.json @@ -0,0 +1,2 @@ +{ +} diff --git a/plugins/datetime/datetime.pro b/plugins/datetime/datetime.pro new file mode 100644 index 000000000..d8afbf979 --- /dev/null +++ b/plugins/datetime/datetime.pro @@ -0,0 +1,20 @@ + +QT += widgets +TEMPLATE = lib +CONFIG += plugin c++11 link_pkgconfig +PKGCONFIG += + +TARGET = $$qtLibraryTarget(datetime) +DESTDIR = $$_PRO_FILE_PWD_/../ + +HEADERS += \ + datetimeplugin.h \ + datetimeitem.h + +SOURCES += \ + datetimeplugin.cpp \ + datetimeitem.cpp + +include(../../interfaces/interfaces.pri) + +INCLUDEPATH += "../../frame/item" diff --git a/plugins/datetime/datetimeitem.cpp b/plugins/datetime/datetimeitem.cpp new file mode 100644 index 000000000..0b71dbff5 --- /dev/null +++ b/plugins/datetime/datetimeitem.cpp @@ -0,0 +1,7 @@ +#include "datetimeitem.h" + +DateTimeItem::DateTimeItem(QWidget *parent) + : PluginsItem(parent) +{ + +} diff --git a/plugins/datetime/datetimeitem.h b/plugins/datetime/datetimeitem.h new file mode 100644 index 000000000..e5e1e47dc --- /dev/null +++ b/plugins/datetime/datetimeitem.h @@ -0,0 +1,14 @@ +#ifndef DATETIMEITEM_H +#define DATETIMEITEM_H + +#include "pluginsitem.h" + +class DateTimeItem : public PluginsItem +{ + Q_OBJECT + +public: + explicit DateTimeItem(QWidget *parent = 0); +}; + +#endif // DATETIMEITEM_H diff --git a/plugins/datetime/datetimeplugin.cpp b/plugins/datetime/datetimeplugin.cpp new file mode 100644 index 000000000..8614d19e1 --- /dev/null +++ b/plugins/datetime/datetimeplugin.cpp @@ -0,0 +1,12 @@ +#include "datetimeplugin.h" + +DatetimePlugin::DatetimePlugin(QObject *parent) + : QObject(parent) +{ + +} + +PluginsItem *DatetimePlugin::getPluginsItem() +{ + return nullptr; +} diff --git a/plugins/datetime/datetimeplugin.h b/plugins/datetime/datetimeplugin.h new file mode 100644 index 000000000..b38050e92 --- /dev/null +++ b/plugins/datetime/datetimeplugin.h @@ -0,0 +1,19 @@ +#ifndef DATETIMEPLUGIN_H +#define DATETIMEPLUGIN_H + +#include + +#include "pluginsiteminterface.h" + +class DatetimePlugin : public QObject, PluginsItemInterface +{ + Q_OBJECT + Q_INTERFACES(PluginsItemInterface) + Q_PLUGIN_METADATA(IID "com.deepin.dock.PluginsItemInterface" FILE "datetime.json") + +public: + explicit DatetimePlugin(QObject *parent = 0); + PluginsItem *getPluginsItem(); +}; + +#endif // DATETIMEPLUGIN_H diff --git a/plugins/plugins.pro b/plugins/plugins.pro new file mode 100644 index 000000000..4d832d4e8 --- /dev/null +++ b/plugins/plugins.pro @@ -0,0 +1,3 @@ +TEMPLATE = subdirs +SUBDIRS = \ + datetime