feat: 实现Apps服务、Launcher服务、Dock服务

*重写Apps服务,新服务分为org.deepin.daemon.DFWatcher1和org.deepin.daemon.ALRecorder1两个服务
*重写Launcher服务, 新服务名为org.deepin.dde.daemon.Launcher1
*重写Dock服务, 新服务名为org.deepin.dde.daemon.Dock1
*重写部分go-lib接口,保存在src/lib目录, 后续从项目中提出统一存放至开发库
*使用XCB库实现与XServer交互,存放在src/lib目录
*放弃依赖dde-qt-dbus-factory包, 将xml文件生成的静态编译代码存放在frameworkdbus目录

Log: 实现Apps服务、Launcher服务、Dock服务
Task: https://pms.uniontech.com/task-view-109315.html
Influence: 无
Change-Id: Ia9676060bfe81ce8d02c48972cc3d3cbaf665a31
This commit is contained in:
Li Xi
2022-04-24 14:52:13 +08:00
committed by weizhixiang
parent dd7d4737bf
commit 13a1cabda1
118 changed files with 18347 additions and 3 deletions

View File

@ -2,6 +2,12 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 REQUIRED COMPONENTS Core DBus Concurrent)
find_package(DtkCore REQUIRED)
pkg_check_modules(XCB REQUIRED IMPORTED_TARGET xcb-icccm xcb-ewmh xcb)
pkg_check_modules(X11 REQUIRED IMPORTED_TARGET x11)
qt5_add_dbus_adaptor(ADAPTER_SOURCES
../../DBus/org.desktopspec.ApplicationManager.xml
impl/application_manager.h
@ -16,6 +22,7 @@ qt5_add_dbus_adaptor(ADAPTER_SOURCES
../../DBus/org.desktopspec.ApplicationInstance.xml
impl/application_instance.h
ApplicationInstance)
add_definitions(-DUSE_QT)
set(SRCS ${PROJECT_BINARY_DIR}/src/define.h)
@ -37,6 +44,115 @@ set(SRCS
../modules/methods/instance.hpp
../modules/methods/quit.hpp
../modules/methods/registe.hpp
../lib/desktopinfo.h
../lib/desktopinfo.cpp
../lib/dlocale.h
../lib/dlocale.cpp
../lib/dstring.h
../lib/dstring.cpp
../lib/keyfile.h
../lib/keyfile.cpp
../lib/lang.h
../lib/macro.h
../lib/process.h
../lib/process.cpp
../lib/dfile.h
../lib/dfile.cpp
../lib/basedir.h
../lib/basedir.cpp
../lib/xcbutils.h
../lib/xcbutils.cpp
../utils/settings.h
../utils/settings.cpp
../utils/synmodulebase.h
../utils/synmodule.h
../utils/synconfig.h
../utils/synconfig.cpp
../modules/apps/alrecorder.h
../modules/apps/alrecorder.cpp
../modules/apps/appmanager.h
../modules/apps/appmanager.cpp
../modules/apps/dfwatcher.h
../modules/apps/dfwatcher.cpp
../modules/launcher/common.h
../modules/launcher/launcher.h
../modules/launcher/launcher.cpp
../modules/launcher/launchermanager.h
../modules/launcher/launchermanager.cpp
../modules/launcher/category.h
../modules/launcher/category.cpp
../modules/launcher/launchersettings.h
../modules/launcher/launchersettings.cpp
../modules/launcher/dbusadaptorlauncher.h
../modules/launcher/dbusadaptorlauncher.cpp
../modules/dock/dock.h
../modules/dock/dock.cpp
../modules/dock/dockmanager.h
../modules/dock/dockmanager.cpp
../modules/dock/windowidentify.h
../modules/dock/windowidentify.cpp
../modules/dock/windowinfobase.h
../modules/dock/windowinfox.h
../modules/dock/windowinfox.cpp
../modules/dock/windowinfok.h
../modules/dock/windowinfok.cpp
../modules/dock/dbushandler.h
../modules/dock/dbushandler.cpp
../modules/dock/docksettings.h
../modules/dock/docksettings.cpp
../modules/dock/common.h
../modules/dock/appinfo.h
../modules/dock/appinfo.cpp
../modules/dock/entry.h
../modules/dock/entry.cpp
../modules/dock/entries.h
../modules/dock/entries.cpp
../modules/dock/appmenu.h
../modules/dock/appmenu.cpp
../modules/dock/processinfo.h
../modules/dock/processinfo.cpp
../modules/dock/windowpatterns.h
../modules/dock/windowpatterns.cpp
../modules/dock/waylandmanager.h
../modules/dock/waylandmanager.cpp
../modules/dock/x11manager.h
../modules/dock/x11manager.cpp
../modules/dock/dbusadaptordock.h
../modules/dock/dbusadaptordock.cpp
../modules/dock/dbusadaptorentry.h
../modules/dock/dbusadaptorentry.cpp
../frameworkdbus/types/launcheriteminfo.h
../frameworkdbus/types/launcheriteminfo.cpp
../frameworkdbus/types/launcheriteminfolist.h
../frameworkdbus/types/launcheriteminfolist.cpp
../frameworkdbus/types/rect.h
../frameworkdbus/types/rect.cpp
../frameworkdbus/dbuslauncherfront.h
../frameworkdbus/dbuslauncherfront.cpp
../frameworkdbus/dbuslauncher.h
../frameworkdbus/dbuslauncher.cpp
../frameworkdbus/dbuswm.h
../frameworkdbus/dbuswm.cpp
../frameworkdbus/dbuswmswitcher.h
../frameworkdbus/dbuswmswitcher.cpp
../frameworkdbus/dbuskwaylandwindowmanager.h
../frameworkdbus/dbuskwaylandwindowmanager.cpp
../frameworkdbus/dbusplasmawindow.h
../frameworkdbus/dbusplasmawindow.cpp
../frameworkdbus/dbuskwaylandoutput.h
../frameworkdbus/dbuskwaylandoutput.cpp
../frameworkdbus/dbusbamfapplication.h
../frameworkdbus/dbusbamfapplication.cpp
../frameworkdbus/dbusbamfmatcher.h
../frameworkdbus/dbusbamfmatcher.cpp
../frameworkdbus/qtdbusextended/dbusextended.h
../frameworkdbus/qtdbusextended/dbusextendedabstractinterface.h
../frameworkdbus/qtdbusextended/dbusextendedpendingcallwatcher_p.h
../frameworkdbus/qtdbusextended/dbusextendedabstractinterface.cpp
../frameworkdbus/qtdbusextended/dbusextendedpendingcallwatcher.cpp
../frameworkdbus/qtdbusextended/DBusExtended
../frameworkdbus/qtdbusextended/DBusExtendedAbstractInterface
)
add_executable(deepin-application-manager
@ -48,6 +164,18 @@ target_link_libraries(deepin-application-manager
Qt5::Core
Qt5::DBus
Qt5::Concurrent
${DtkCore_LIBRARIES}
pthread
PkgConfig::XCB
PkgConfig::X11
)
target_include_directories(deepin-application-manager PUBLIC
PkgConfig::XCB
../lib
../utils
../frameworkdbus
../frameworkdbus/qtdbusextended
)
install(TARGETS deepin-application-manager DESTINATION bin)

View File

@ -5,10 +5,16 @@
#include "applicationmanageradaptor.h"
#include "applicationadaptor.h"
#include "../modules/applicationhelper/helper.h"
#include "../modules/apps/appmanager.h"
#include "../modules/launcher/launchermanager.h"
#include "../modules/dock/dockmanager.h"
#include <QDir>
#include <DLog>
#include <pwd.h>
DCORE_USE_NAMESPACE
QFileInfoList scan(const QString &path)
{
QDir dir(path);
@ -56,11 +62,18 @@ QList<QSharedPointer<Application>> scanFiles()
return applications;
}
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
app.setOrganizationName("deepin");
app.setApplicationName("dde-application-manager");
DLogManager::registerConsoleAppender();
DLogManager::registerFileAppender();
new AppManager(ApplicationManager::Instance());
new LauncherManager(ApplicationManager::Instance());
new DockManager(ApplicationManager::Instance());
new ApplicationManagerAdaptor(ApplicationManager::Instance());
QDBusConnection::sessionBus().registerService("org.desktopspec.Application");