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; either
7 version 2 of the License, or (at your option) any later version.
9 #include "invitationmanager.h"
10 #include "invitationmanager.moc"
12 #include <KConfigGroup>
18 class InvitationManagerPrivate
21 InvitationManager instance
;
24 K_GLOBAL_STATIC(InvitationManagerPrivate
, invitationManagerPrivate
)
26 InvitationManager
* InvitationManager::self() {
27 return &invitationManagerPrivate
->instance
;
30 InvitationManager::InvitationManager()
34 QTimer
*refreshTimer
= new QTimer(this);
35 connect(refreshTimer
, SIGNAL(timeout()), SLOT(loadInvitations()));
36 refreshTimer
->start(1000*60);
40 InvitationManager::~InvitationManager()
45 void InvitationManager::invalidateOldInvitations() {
46 int invNum
= invitationList
.size();
49 if (!invitationList
[invNum
].isValid()) {
50 invitationList
.removeAt(invNum
);
57 void InvitationManager::loadInvitations()
59 int invNum
= invitationList
.size();
61 KSharedConfigPtr conf
= KGlobal::config();
62 KConfigGroup
invitationConfig(conf
, "Invitations");
63 int numInv
= invitationConfig
.readEntry("invitation_num",0);
65 invitationList
.clear();
66 for (int i
= 0; i
< numInv
; i
++) {
67 KConfigGroup
ic(conf
, QString("Invitation_%1").arg(i
));
68 invitationList
.append(Invitation(ic
));
71 invalidateOldInvitations();
72 if (numInv
!= invNum
) {
73 emit
invitationNumChanged(invitationList
.size());
78 Invitation
InvitationManager::addInvitation()
81 invitationList
.append(i
);
82 emit
invitationNumChanged(invitationList
.size());
87 const QList
< Invitation
> & InvitationManager::invitations()
89 return invitationList
;
92 void InvitationManager::saveInvitations()
94 KSharedConfigPtr conf
= KGlobal::config();
95 KConfigGroup
invitationConfig(conf
, "Invitations");
96 int invNum
= invitationList
.size();
97 invitationConfig
.writeEntry("invitation_num",invNum
);
98 for (int i
= 0; i
< invNum
; i
++) {
99 KConfigGroup
ic(conf
, QString("Invitation_%1").arg(i
));
100 invitationList
[i
].save(ic
);
105 int InvitationManager::activeInvitations()
107 invalidateOldInvitations();
108 return invitationList
.size();
111 void InvitationManager::removeInvitation(const Invitation
& inv
)
113 invitationList
.removeAll(inv
);
115 emit
invitationNumChanged(invitationList
.size());
118 void InvitationManager::removeAllInvitations()
120 invitationList
.clear();
122 emit
invitationNumChanged(invitationList
.size());