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
22#include "notifybylogfile.h"
23
24#include <kdebug.h>
25#include <knotifyconfig.h>
26#include <KUrl>
27#include <QDateTime>
28#include <QFile>
29#include <QTextStream>
30
31NotifyByLogfile::NotifyByLogfile(QObject *parent) : KNotifyPlugin(parent)
32{
33}
34
35
36NotifyByLogfile::~NotifyByLogfile()
37{
38}
39
40
41
42void NotifyByLogfile::notify( int id, KNotifyConfig * config )
43{
44 QString file=config->readEntry( "Logfile" );
45
46// kDebug() << file << KUrl(file).path();
47
48 if ( file.isEmpty() )
49 {
50 finish( id );
51 return;
52 }
53
54 // open file in append mode
55 QFile logFile(KUrl(file).path());
56 if ( !logFile.open(QIODevice::WriteOnly | QIODevice::Append) )
57 {
58 finish( id );
59 return;
60 }
61
62 QString text = config->text;
63 if( text.isEmpty())
64 text = config->readEntry( "Name" );
65 // append msg
66 QTextStream strm( &logFile );
67 strm << "- KNotify " << QDateTime::currentDateTime().toString() << ": ";
68 strm << text << endl;
69
70 // close file
71 logFile.close();
72
73 finish( id );
74}
75
76#include "notifybylogfile.moc"
77