You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
817 B
C++

#include "cfont.h"
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QEventLoop>
#include <QFontDatabase>
// cFont::cFont() {}
cFont::cFont(QUrl url) {
QNetworkAccessManager networkManager;
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkReply* reply = networkManager.get(request);
QEventLoop loop;
QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
loop.exec();
QByteArray data = reply->readAll();
delete reply;
int id = QFontDatabase::addApplicationFontFromData(data);
if(id < 0)
return;
QStringList loaded = QFontDatabase::applicationFontFamilies(id);
bool ret = this->fromString(loaded[0]);
if(!ret)
return;
}