summaryrefslogtreecommitdiffstats
path: root/ksig/siggenerator.cpp
blob: abd24300ec8c2fe3e35c2e0cfa1ea4ea693f0939 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/***************************************************************************
                          siggenerator.cpp  -  description
                             -------------------
    begin                : Sat Jul 20 2002
    copyright            : (C) 2002 by Scott Wheeler
    email                : wheeler@kde.org
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#include "siggenerator.h"
#include "siglistviewitem.h"

#include <kstandarddirs.h>
#include <kapplication.h>
#include <kconfig.h>
#include <kdebug.h>

#include <tqfile.h>
#include <tqdatetime.h>

SigGenerator::SigGenerator()
{
    TQString dir = KGlobal::dirs()->saveLocation("appdata");
    TQFile file(dir + "sigs.sigml");

    if(file.open(IO_ReadOnly) && doc.setContent(&file)) {
	signatures = doc.elementsByTagName("signature");
	file.close();
    }

    KConfig *config = KGlobal::config();
    {
	KConfigGroupSaver saver(config, "Settings");
	header = config->readEntry("Header");
	footer = config->readEntry("Footer");
    }
}

SigGenerator::~SigGenerator()
{

}


TQString SigGenerator::random() const
{
    if(signatures.count() <= 0)
	return(TQString::null);

    int i = KApplication::random() % signatures.count();
    TQString text;
    SigListViewItem::nodeToText(signatures.item(i), text);
    
    return attachStandard(text);
}

TQString SigGenerator::daily() const
{
    if(signatures.count() <= 0)
	return(TQString::null);

    TQDate date;
    int i = date.dayOfYear() % signatures.count();
    TQString text;
    SigListViewItem::nodeToText(signatures.item(i), text);
    return attachStandard(text);
}

TQString SigGenerator::attachStandard(const TQString &text) const
{
    TQString s = text;

    if(!header.isEmpty())
	s = header + "\n" + s;
    if(!footer.isEmpty())
	s = s + "\n" + footer + "\n";

    return s;
}