- 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