15 qDebug() << __FUNCTION__;
26 qDebug() << __FUNCTION__;
50 return this->
hostURL.toString();
78 qDebug() << __FUNCTION__ << date;
79 QList<Evenement> listeEvenements;
87 if (dtStart.isValid() && dtEnd.isValid())
89 if(date >= dtStart.date() && date <= dtEnd.date())
91 listeEvenements.append(evt);
95 qDebug() << __FUNCTION__ << date <<
"nb evenements : " << listeEvenements.size();
97 return listeEvenements;
102 qDebug() << __FUNCTION__ <<
nom <<
hostURL <<
"local ?" <<
hostURL.isLocalFile();
106 QString filename =
hostURL.toString().remove(
"file:///");
107 qDebug() << __FUNCTION__ <<
nom <<
hostURL <<
"relative ?" << QUrl(filename).isRelative();
108 if (QUrl(filename).isRelative())
110 filename = filename.prepend(
"/");
112 filename = QUrl(filename).toString(QUrl::NormalizePathSegments);
113 qDebug() << __FUNCTION__ <<
nom << filename;
115 QFile file(filename);
119 if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
121 qDebug() << __FUNCTION__ <<
nom << filename << file.errorString();
122 emit
erreur(
"Erreur : impossible de lire le fichier !");
128 qDebug() << __FUNCTION__ <<
nom << filename <<
"Erreur : fichier introuvable !";
129 emit
erreur(
"Erreur : fichier introuvable !");
148 if (line.startsWith(
"X-WR-CALNAME"))
150 qDebug() << __FUNCTION__ <<
nom << line;
151 QString nomCalendrier = line.trimmed();
152 nomCalendrier.remove(
";LANGUAGE=fr", Qt::CaseInsensitive);
153 nomCalendrier.remove(
"X-WR-CALNAME:", Qt::CaseInsensitive);
154 qDebug() << __FUNCTION__ <<
nom << nomCalendrier;
155 this->
setNom(nomCalendrier);
156 emit
message(
"Calendrier : " + nomCalendrier);
174 qDebug() << __FUNCTION__ <<
nom;
182 QNetworkRequest requete;
184 requete.setRawHeader(
"User-Agent",
"CalendarClient_ICS");
185 requete.setRawHeader(
"Depth",
"0");
186 requete.setRawHeader(
"Prefer",
"return-minimal");
187 requete.setRawHeader(
"Content-Type",
"text/xml; charset=utf-8");
188 requete.setRawHeader(
"Content-Length",
"0");
190 QSslConfiguration configuration = requete.sslConfiguration();
191 configuration.setPeerVerifyMode(QSslSocket::VerifyNone);
192 requete.setSslConfiguration(configuration);
205 qDebug() << __FUNCTION__ <<
nom <<
"Erreur : réponse invalide !";
206 emit
erreur(
"Erreur : réponse invalide !");
221 qDebug() << __FUNCTION__ <<
nom <<
"Erreur !";
224 qDebug() << __FUNCTION__ <<
nom <<
"Requête terminée";
228 QBuffer buffer(
this);
231 buffer.open(QIODevice::ReadOnly);
235 QString ligne = buffer.readLine();
238 if (ligne.startsWith(
"X-WR-CALNAME"))
240 qDebug() << __FUNCTION__ <<
nom << ligne;
241 QString nomCalendrier = ligne.trimmed();
242 nomCalendrier.remove(
";LANGUAGE=fr", Qt::CaseInsensitive);
243 nomCalendrier.remove(
"X-WR-CALNAME:", Qt::CaseInsensitive);
244 qDebug() << __FUNCTION__ <<
nom << nomCalendrier;
245 this->
setNom(nomCalendrier);
246 emit
message(
"Calendrier : " + nomCalendrier);
251 while (!buffer.atEnd() && !trouve);
269 qDebug() << __FUNCTION__ <<
nom <<
"Erreur : réponse invalide !";
270 emit
erreur(
"Erreur : réponse invalide !");
278 while(ligne.isNull() ==
false)
280 if(ligne.contains(
"BEGIN:VEVENT") !=
false)
286 emit
message(QString::fromUtf8(
"Nb évènement(s) : ") + QString::number(
evenements.size()));
287 qDebug() << __FUNCTION__ <<
nom <<
"nb evenements : " <<
evenements.size();
297 qDebug() << __FUNCTION__ <<
nom;
300 while (!(ligne =
contenuCalendrier->readLine()).contains(QByteArray(
"END:VEVENT")))
302 ligne.remove(
";LANGUAGE=fr", Qt::CaseInsensitive);
303 const int delimiteur = ligne.indexOf(QLatin1Char(
':'));
304 const QString key = ligne.mid(0, delimiteur);
305 QString value = (ligne.mid(delimiteur + 1, -1).replace(
"\\n",
"\n"));
307 if (testEncodingString.contains(
"�") ==
false)
309 value = testEncodingString;
312 if (key.startsWith(QLatin1String(
"DTSTART")))
315 if (utcTime.isValid())
318 else if (key.startsWith(QLatin1String(
"DTEND")))
321 if (utcTime.isValid())
332 else if (key == QLatin1String(
"SUMMARY"))
336 else if (key == QLatin1String(
"LOCATION"))
340 else if (key == QLatin1String(
"UID"))
344 else if (key == QLatin1String(
"CATEGORIES"))
348 else if (key == QLatin1String(
"DESCRIPTION"))
366 qDebug() << __FUNCTION__ <<
nom <<
"Erreur : requête HTTP !" <<
networkReply->errorString();
371 qDebug() << __FUNCTION__ <<
nom <<
"Erreur : réponse invalide !";
372 emit
erreur(
"Erreur : réponse invalide !");
380 return ba.toBase64();
385 return QString::fromUtf8(str.toLocal8Bit().data());