1 /* This file is part of the KDE project
2 Copyright (C) 2007 Alessandro Praduroux <pradu@pradu.it>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public
6 License as published by the Free Software Foundation; version 2
9 #include "invitationmanager.h"
10 #include "invitationmanager.moc"
12 #include <KStaticDeleter>
13 #include <KConfigGroup>
19 static KStaticDeleter
<InvitationManager
> sd
;
20 InvitationManager
* InvitationManager::_self
= 0;
21 InvitationManager
* InvitationManager::self() {
22 if (!_self
) sd
.setObject(_self
, new InvitationManager
);
26 InvitationManager::InvitationManager()
30 QTimer
*refreshTimer
= new QTimer(this);
31 connect(refreshTimer
, SIGNAL(timeout()), SLOT(loadInvitations()));
32 refreshTimer
->start(1000*60);
36 InvitationManager::~InvitationManager()
41 void InvitationManager::invalidateOldInvitations() {
42 int invNum
= invitationList
.size();
45 if (!invitationList
[invNum
].isValid()) {
46 invitationList
.removeAt(invNum
);
53 void InvitationManager::loadInvitations()
55 int invNum
= invitationList
.size();
57 KSharedConfigPtr conf
= KGlobal::config();
58 KConfigGroup
invitationConfig(conf
, "Invitations");
59 int numInv
= invitationConfig
.readEntry("invitation_num",0);
61 invitationList
.clear();
62 for (int i
= 0; i
< numInv
; i
++) {
63 KConfigGroup
ic(conf
, QString("Invitation_%1").arg(i
));
64 invitationList
.append(Invitation(ic
));
67 invalidateOldInvitations();
68 if (numInv
!= invNum
) {
69 emit
invitationNumChanged(invitationList
.size());
74 Invitation
InvitationManager::addInvitation()
77 invitationList
.append(i
);
78 emit
invitationNumChanged(invitationList
.size());
83 const QList
< Invitation
> & InvitationManager::invitations()
85 return invitationList
;
88 void InvitationManager::saveInvitations()
90 KSharedConfigPtr conf
= KGlobal::config();
91 KConfigGroup
invitationConfig(conf
, "Invitations");
92 int invNum
= invitationList
.size();
93 invitationConfig
.writeEntry("invitation_num",invNum
);
94 for (int i
= 0; i
< invNum
; i
++) {
95 KConfigGroup
ic(conf
, QString("Invitation_%1").arg(i
));
96 invitationList
[i
].save(ic
);
101 int InvitationManager::activeInvitations()
103 invalidateOldInvitations();
104 return invitationList
.size();
107 void InvitationManager::removeInvitation(const Invitation
& inv
)
109 invitationList
.removeAll(inv
);
110 emit
invitationNumChanged(invitationList
.size());