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++
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;
|
|
}
|