feat: add app-update-notifier

Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
ComixHe
2023-09-05 15:10:43 +08:00
committed by Comix
parent ebe218b70e
commit 94db47a015
14 changed files with 180 additions and 2 deletions

View File

@ -0,0 +1,20 @@
file(GLOB_RECURSE app_update_notifier_static_SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.h
)
qt_add_dbus_adaptor(app_update_notifier_static_SOURCE ${CMAKE_CURRENT_LIST_DIR}/../../api/dbus/org.desktopspec.ApplicationUpdateNotifier1.xml dbus/applicationupdatenotifier1service.h ApplicationUpdateNotifier1Service)
add_library(app_update_notifier_static STATIC ${app_update_notifier_static_SOURCE})
target_link_libraries(
app_update_notifier_static PUBLIC
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
)
target_include_directories(
app_update_notifier_static PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/..
)

View File

@ -0,0 +1,18 @@
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "dbus/applicationupdatenotifier1adaptor.h"
ApplicationUpdateNotifier1Service::ApplicationUpdateNotifier1Service()
{
new ApplicationUpdateNotifier1Adaptor{this};
auto conn = QDBusConnection::systemBus();
if (!conn.registerService(NotifierServiceName)) {
qFatal("%s", conn.lastError().message().toLocal8Bit().constData());
}
if (!conn.registerObject(NotifierObjectPath, NotifierInterfaceName, this, QDBusConnection::ExportAdaptors)) {
qFatal("%s", conn.lastError().message().toLocal8Bit().constData());
}
}

View File

@ -0,0 +1,24 @@
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef APPLICATIONUPDATENOTIFIER1SERVICE_H
#define APPLICATIONUPDATENOTIFIER1SERVICE_H
#include <QObject>
constexpr auto NotifierServiceName = "org.desktopspec.ApplicationUpdateNotifier1";
constexpr auto NotifierObjectPath = "/org/desktopspec/ApplicationUpdateNotifier1";
constexpr auto NotifierInterfaceName = "org.desktopspec.ApplicationUpdateNotifier1";
class ApplicationUpdateNotifier1Service : public QObject
{
Q_OBJECT
public:
ApplicationUpdateNotifier1Service();
~ApplicationUpdateNotifier1Service() override = default;
Q_SIGNALS:
void ApplicationUpdated();
};
#endif