完成获取应用列表、获取内置app列表
This commit is contained in:
@ -12,6 +12,7 @@
|
||||
#include <QPixmap>
|
||||
#include "mainwindowlayout.h"
|
||||
#include "globalvariables.h"
|
||||
#include "sqlitehelper.h"
|
||||
#ifdef _DEBUG
|
||||
#pragma comment(lib, "Qt5Svgd.lib")
|
||||
#pragma comment(lib, "Qt5Sqld.lib")
|
||||
@ -48,10 +49,16 @@ NavBar::NavBar(ConfigResponse *configResponse, MainScreen *mainScreen,QWidget *p
|
||||
setStyleSheet(style);*/
|
||||
//setStyleSheet("margin:0");
|
||||
setContentsMargins(0, 0, 0, 0);
|
||||
if (configResponse->succeed&&configResponse->buttons.empty()!=true) {
|
||||
getLogoFromInternet(configResponse);
|
||||
}
|
||||
else {
|
||||
ConfigResponse config_response;
|
||||
ConfigRequest config_request;
|
||||
config_request.sendRequest(&config_response);
|
||||
SQLiteHelper sqlite_helper;
|
||||
sqlite_helper.get_software(&buttonStructs, &config_response);
|
||||
if(config_response.succeed==true)
|
||||
{
|
||||
getLogoFromInternet(&config_response);
|
||||
}else
|
||||
{
|
||||
getLogoFromLocal();
|
||||
}
|
||||
layout2 = new QHBoxLayout;
|
||||
@ -143,68 +150,9 @@ void NavBar::getLogoFromInternet(ConfigResponse *configResponse) {
|
||||
logo = new QImage();
|
||||
logo->loadFromData(*buffer);
|
||||
buffer->clear();
|
||||
for (auto button : configResponse->buttons) {
|
||||
QUrl url_image(button.img);
|
||||
QNetworkRequest *request_image = new QNetworkRequest(url_image);
|
||||
reply = manager->get(*request_image);
|
||||
QTimer timer;
|
||||
timer.setInterval(5000);
|
||||
connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
|
||||
connect(&timer, &QTimer::timeout, this, &NavBar::cancelDownload);
|
||||
eventLoop.exec();
|
||||
timer.stop();
|
||||
if (!downloadSuccess) {
|
||||
break;
|
||||
}
|
||||
*buffer = reply->readAll();
|
||||
|
||||
QSvgRenderer *render_image = new QSvgRenderer(*buffer);
|
||||
|
||||
QImage *image = new QImage(200, 200, QImage::Format_ARGB32);
|
||||
QPainter painter_image(image);
|
||||
painter_image.setCompositionMode(QPainter::CompositionMode_Clear); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
painter_image.fillRect(rect(), Qt::transparent); // <20><><EFBFBD><EFBFBD><EFBFBD><CDB8>ɫ
|
||||
painter_image.setCompositionMode(QPainter::CompositionMode_SourceOver); // <20>ָ<EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||||
render_image->render(&painter_image);
|
||||
buffer->clear();
|
||||
reply->close();
|
||||
|
||||
QUrl url_image_cover(button.img_cover);
|
||||
QNetworkRequest *request_image_cover = new QNetworkRequest(url_image_cover);
|
||||
reply = manager->get(*request_image_cover);
|
||||
timer.setInterval(5000);
|
||||
connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
|
||||
connect(&timer, &QTimer::timeout, this, &NavBar::cancelDownload);
|
||||
if (!downloadSuccess) {
|
||||
break;
|
||||
}
|
||||
eventLoop.exec();
|
||||
*buffer = reply->readAll();
|
||||
qDebug() << *buffer;
|
||||
QSvgRenderer *render_image_cover = new QSvgRenderer(*buffer);
|
||||
QImage *image_cover = new QImage(200, 200, QImage::Format_ARGB32);
|
||||
QPainter painter_image_cover(image_cover);
|
||||
painter_image_cover.setCompositionMode(QPainter::CompositionMode_Clear); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
painter_image_cover.fillRect(rect(), Qt::transparent); // <20><><EFBFBD><EFBFBD><EFBFBD><CDB8>ɫ
|
||||
painter_image_cover.setCompositionMode(QPainter::CompositionMode_SourceOver); // <20>ָ<EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||||
render_image_cover->render(&painter_image_cover);
|
||||
buffer->clear();
|
||||
reply->close();
|
||||
|
||||
ButtonStruct buttonStruct;
|
||||
buttonStruct.image = image;
|
||||
buttonStruct.image_cover = image_cover;
|
||||
buttonStruct.text = button.title;
|
||||
buttonStruct.url = button.url;
|
||||
buttonStruct.background_color = configResponse->basic.backgroud_color;
|
||||
buttonStruct.text_color.setNamedColor(configResponse->basic.title_color);
|
||||
buttonStruct.text_cover_color.setNamedColor(configResponse->basic.title_cover_color);
|
||||
buttonStructs << buttonStruct;
|
||||
delete request_image;
|
||||
delete render_image;
|
||||
delete request_image_cover;
|
||||
delete render_image_cover;
|
||||
}
|
||||
}else
|
||||
{
|
||||
getLogoFromLocal();
|
||||
}
|
||||
delete manager;
|
||||
manager = nullptr;
|
||||
@ -242,16 +190,6 @@ void NavBar::getLogoFromLocal() {
|
||||
QString color= obj_root->value("basic").toObject().value("backgroud_color").toString();
|
||||
qColor.setNamedColor(color);
|
||||
QJsonArray *array = new QJsonArray;
|
||||
*array = obj_root->value("menu").toArray();
|
||||
for (auto obj : *array) {
|
||||
ButtonStruct buttonStruct;
|
||||
buttonStruct.text = obj.toObject().value("title").toString();
|
||||
buttonStruct.url = QString(BASE_URL)+obj.toObject().value("url").toString();
|
||||
buttonStruct.image = new QImage(obj.toObject().value("img").toString());
|
||||
buttonStruct.image_cover = new QImage(obj.toObject().value("img_cover").toString());
|
||||
buttonStructs << buttonStruct;
|
||||
}
|
||||
delete array;
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||
|
Reference in New Issue
Block a user