- Also moe the NotificationPopup item back to the root folder - Implement tracking of unknown apps, ie. once an app shows a notificaton it will show up in the KCM so it can be configured - Make blacklisting of notification popups (via setting in KCM) work - Start on inhibition stuff (DBus API proposal sent to XDG mailing list)wilder-5.19
parent
1b9b7bcc56
commit
eab8338950
20 changed files with 294 additions and 160 deletions
@ -1,19 +0,0 @@ |
|||||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|
||||||
<node> |
|
||||||
<interface name="org.kde.Notifications.Inhibit"> |
|
||||||
<method name="Inhibit"> |
|
||||||
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap"/> |
|
||||||
|
|
||||||
<!-- Desktop entry of the application, e.g. org.kde.okular --> |
|
||||||
<arg name="desktop_entry" type="s" direction="in"/> |
|
||||||
<!-- Human-readable reason for the inhibition, e.g. "Giving a presentation --> |
|
||||||
<arg name="reason" type="s" direction="in"/> |
|
||||||
<!-- Reserved --> |
|
||||||
<arg name="hints" type="a{sv}" direction="in"/> |
|
||||||
|
|
||||||
<arg name="fd" type="h" direction="out"/> |
|
||||||
</method> |
|
||||||
|
|
||||||
<!-- TODO property for whether it is currently enabled? --> |
|
||||||
</interface> |
|
||||||
</node> |
|
||||||
@ -1,54 +0,0 @@ |
|||||||
/*
|
|
||||||
* Copyright 2018 Kai Uwe Broulik <kde@privat.broulik.de> |
|
||||||
* |
|
||||||
* This library is free software; you can redistribute it and/or |
|
||||||
* modify it under the terms of the GNU Lesser General Public |
|
||||||
* License as published by the Free Software Foundation; either |
|
||||||
* version 2.1 of the License, or (at your option) version 3, or any |
|
||||||
* later version accepted by the membership of KDE e.V. (or its |
|
||||||
* successor approved by the membership of KDE e.V.), which shall |
|
||||||
* act as a proxy defined in Section 6 of version 3 of the license. |
|
||||||
* |
|
||||||
* This library is distributed in the hope that it will be useful, |
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||||
* Lesser General Public License for more details. |
|
||||||
* |
|
||||||
* You should have received a copy of the GNU Lesser General Public |
|
||||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/ |
|
||||||
|
|
||||||
#include "inhibitionserver.h" |
|
||||||
|
|
||||||
#include "kdenotificationsadaptor.h" |
|
||||||
|
|
||||||
#include "notification.h" |
|
||||||
|
|
||||||
#include <QDBusConnection> |
|
||||||
|
|
||||||
using namespace NotificationManager; |
|
||||||
|
|
||||||
InhibitionServer::InhibitionServer(QObject *parent) |
|
||||||
: QObject(parent) |
|
||||||
{ |
|
||||||
new InhibitionAdaptor(this); |
|
||||||
|
|
||||||
QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/kde/Notifications"), this); |
|
||||||
if (!QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.Notifications.Inhibit"))) { |
|
||||||
qWarning() << "Failed to register Notification Inhibit service"; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
InhibitionServer::~InhibitionServer() = default; |
|
||||||
|
|
||||||
InhibitionServer &InhibitionServer::self() |
|
||||||
{ |
|
||||||
static InhibitionServer s_self; |
|
||||||
return s_self; |
|
||||||
} |
|
||||||
|
|
||||||
QDBusUnixFileDescriptor InhibitionServer::Inhibit(const QString &app_name, const QString &reason, const QVariantMap &hints) |
|
||||||
{ |
|
||||||
qDebug() << "INHIBIT" << app_name << reason << hints; |
|
||||||
return QDBusUnixFileDescriptor(); |
|
||||||
} |
|
||||||
@ -1,66 +0,0 @@ |
|||||||
/*
|
|
||||||
* Copyright 2018 Kai Uwe Broulik <kde@privat.broulik.de> |
|
||||||
* |
|
||||||
* This library is free software; you can redistribute it and/or |
|
||||||
* modify it under the terms of the GNU Lesser General Public |
|
||||||
* License as published by the Free Software Foundation; either |
|
||||||
* version 2.1 of the License, or (at your option) version 3, or any |
|
||||||
* later version accepted by the membership of KDE e.V. (or its |
|
||||||
* successor approved by the membership of KDE e.V.), which shall |
|
||||||
* act as a proxy defined in Section 6 of version 3 of the license. |
|
||||||
* |
|
||||||
* This library is distributed in the hope that it will be useful, |
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||||
* Lesser General Public License for more details. |
|
||||||
* |
|
||||||
* You should have received a copy of the GNU Lesser General Public |
|
||||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/ |
|
||||||
|
|
||||||
#pragma once |
|
||||||
|
|
||||||
#include <QObject> |
|
||||||
#include <QDBusContext> |
|
||||||
#include <QDBusUnixFileDescriptor> |
|
||||||
#include <QVector> |
|
||||||
|
|
||||||
//#include "notificationmanager_export.h"
|
|
||||||
|
|
||||||
namespace NotificationManager |
|
||||||
{ |
|
||||||
|
|
||||||
class Notification; |
|
||||||
|
|
||||||
/**
|
|
||||||
* @short Registers an inhibition server on the DBus |
|
||||||
* |
|
||||||
* TODO |
|
||||||
* |
|
||||||
* @author Kai Uwe Broulik <kde@privat.broulik.de> |
|
||||||
**/ |
|
||||||
class InhibitionServer : public QObject, protected QDBusContext |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
|
|
||||||
public: |
|
||||||
~InhibitionServer() override; |
|
||||||
|
|
||||||
static InhibitionServer &self(); |
|
||||||
|
|
||||||
// DBus
|
|
||||||
QDBusUnixFileDescriptor Inhibit(const QString &app_name, const QString &reason, const QVariantMap &hints); |
|
||||||
|
|
||||||
Q_SIGNALS: |
|
||||||
void inhibitionAdded(); |
|
||||||
void inhibitionRemoved(); |
|
||||||
|
|
||||||
private: |
|
||||||
explicit InhibitionServer(QObject *parent = nullptr); |
|
||||||
Q_DISABLE_COPY(InhibitionServer) |
|
||||||
// FIXME we also need to disable move and other stuff?
|
|
||||||
|
|
||||||
// TODO list of fds
|
|
||||||
}; |
|
||||||
|
|
||||||
} // namespace NotificationManager
|
|
||||||
Loading…
Reference in new issue