• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kde-runtime API Reference
  • KDE Home
  • Contact Us
 

KNotify

  • sources
  • kde-4.14
  • kde-runtime
  • knotify
notifybyexecute.cpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2005-2006 by Olivier Goffart <ogoffart at kde.org>
3 
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2, or (at your option)
8  any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 
19  */
20 
21 #include "notifybyexecute.h"
22 
23 #include <QHash>
24 #include <KProcess>
25 #include <knotifyconfig.h>
26 
27 #include <kdebug.h>
28 #include <kmacroexpander.h>
29 
30 
31 
32 
33 NotifyByExecute::NotifyByExecute(QObject *parent) : KNotifyPlugin(parent)
34 {
35 }
36 
37 
38 NotifyByExecute::~NotifyByExecute()
39 {
40 }
41 
42 
43 
44 void NotifyByExecute::notify( int id, KNotifyConfig * config )
45 {
46  QString command=config->readEntry( "Execute" );
47 
48  kDebug() << command;
49 
50  if (!command.isEmpty()) {
51 // kDebug() << "executing command '" << command << "'";
52  QHash<QChar,QString> subst;
53  subst.insert( 'e', config->eventid );
54  subst.insert( 'a', config->appname );
55  subst.insert( 's', config->text );
56  subst.insert( 'w', QString::number( (quintptr)config->winId ));
57  subst.insert( 'i', QString::number( id ));
58  QString execLine = KMacroExpander::expandMacrosShellQuote( command, subst );
59  if ( execLine.isEmpty() )
60  execLine = command; // fallback
61  KProcess proc;
62  proc.setShellCommand(execLine.trimmed());
63  if(!proc.startDetached())
64  kDebug()<<"KNotify: Could not start process!";
65  }
66 
67  finish( id );
68 }
69 
70 #include "notifybyexecute.moc"
QHash::insert
iterator insert(const Key &key, const T &value)
KNotifyConfig::readEntry
QString readEntry(const QString &entry, bool path=false)
Definition: knotifyconfig.cpp:80
KNotifyPlugin
abstract class for KNotify actions
Definition: knotifyplugin.h:44
knotifyconfig.h
KNotifyConfig::text
QString text
the text of the notification
Definition: knotifyconfig.h:85
NotifyByExecute::~NotifyByExecute
virtual ~NotifyByExecute()
Definition: notifybyexecute.cpp:38
QString::number
QString number(int n, int base)
QHash
KNotifyConfig::eventid
QString eventid
the name of the notification
Definition: knotifyconfig.h:120
QObject
QString::isEmpty
bool isEmpty() const
QString::trimmed
QString trimmed() const
NotifyByExecute::NotifyByExecute
NotifyByExecute(QObject *parent=0l)
Definition: notifybyexecute.cpp:33
QString
KNotifyPlugin::finish
void finish(int id)
emit the finished signal you MUST call this function for each call to notify(), even if you do nothin...
Definition: knotifyplugin.cpp:49
notifybyexecute.h
KNotifyConfig::winId
WId winId
The windowsID of the window that initiated the notification (it is a window in the client) ...
Definition: knotifyconfig.h:100
NotifyByExecute::notify
virtual void notify(int id, KNotifyConfig *config)
This function is called when the notification is sent.
Definition: notifybyexecute.cpp:44
KNotifyConfig::appname
QString appname
the name of the application that triggered the notification
Definition: knotifyconfig.h:109
KNotifyConfig
Represent the configuration for an event.
Definition: knotifyconfig.h:60
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:08:23 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KNotify

Skip menu "KNotify"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kde-runtime API Reference

Skip menu "kde-runtime API Reference"
  • KCMShell
  • KNotify
  • Plasma Runtime
  •     PlasmaCore
  •     DragAndDrop
  •     PlasmaComponents
  •     PlasmaExtraComponents
  •     QtExtraComponents

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal