* do not add a KStandardAction manually to actionCollection()
[kdenetwork.git] / krfb / invitationmanager.cpp
blob697658da2e4d2cfcf5018afafef661bdb334f09b
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.
8 */
9 #include "invitationmanager.h"
10 #include "invitationmanager.moc"
12 #include <KConfigGroup>
13 #include <KConfig>
14 #include <KGlobal>
16 #include <QTimer>
18 class InvitationManagerPrivate
20 public:
21 InvitationManager instance;
24 K_GLOBAL_STATIC(InvitationManagerPrivate, invitationManagerPrivate)
26 InvitationManager * InvitationManager::self() {
27 return &invitationManagerPrivate->instance;
30 InvitationManager::InvitationManager()
32 loadInvitations();
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();
48 while(invNum--) {
49 if (!invitationList[invNum].isValid()) {
50 invitationList.removeAt(invNum);
53 saveInvitations();
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()
80 Invitation i;
81 invitationList.append(i);
82 emit invitationNumChanged(invitationList.size());
83 saveInvitations();
84 return i;
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);
102 conf->sync();
105 int InvitationManager::activeInvitations()
107 invalidateOldInvitations();
108 return invitationList.size();
111 void InvitationManager::removeInvitation(const Invitation & inv)
113 invitationList.removeAll(inv);
114 saveInvitations();
115 emit invitationNumChanged(invitationList.size());
118 void InvitationManager::removeAllInvitations()
120 invitationList.clear();
121 saveInvitations();
122 emit invitationNumChanged(invitationList.size());