mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-20 19:57:45 +00:00
Only fetch the news once
This commit is contained in:
parent
30d2791810
commit
703f66a8d6
1 changed files with 47 additions and 48 deletions
|
@ -202,9 +202,54 @@ LauncherWindow::LauncherWindow(LauncherCore& core, QWidget* parent) : QMainWindo
|
||||||
|
|
||||||
reloadControls();
|
reloadControls();
|
||||||
|
|
||||||
getHeadline(core, [this](Headline headline) {
|
getHeadline(core, [&](Headline headline) {
|
||||||
this->headline = headline;
|
this->headline = headline;
|
||||||
reloadControls();
|
|
||||||
|
if(!headline.banner.empty()) {
|
||||||
|
auto request = QNetworkRequest(headline.banner[0].bannerImage);
|
||||||
|
core.buildRequest(request);
|
||||||
|
|
||||||
|
auto reply = core.mgr->get(request);
|
||||||
|
connect(reply, &QNetworkReply::finished, [=] {
|
||||||
|
QPixmap pixmap;
|
||||||
|
pixmap.loadFromData(reply->readAll());
|
||||||
|
bannerImageView->setPixmap(pixmap);
|
||||||
|
});
|
||||||
|
|
||||||
|
QTreeWidgetItem* newsItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("News"));
|
||||||
|
for(auto news : headline.news) {
|
||||||
|
QTreeWidgetItem* item = new QTreeWidgetItem();
|
||||||
|
item->setText(0, news.title);
|
||||||
|
item->setText(1, QLocale().toString(news.date, QLocale::ShortFormat));
|
||||||
|
item->setData(0, Qt::UserRole, news.url);
|
||||||
|
|
||||||
|
newsItem->addChild(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
QTreeWidgetItem* pinnedItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("Pinned"));
|
||||||
|
for(auto pinned : headline.pinned) {
|
||||||
|
QTreeWidgetItem* item = new QTreeWidgetItem();
|
||||||
|
item->setText(0, pinned.title);
|
||||||
|
item->setText(1, QLocale().toString(pinned.date, QLocale::ShortFormat));
|
||||||
|
item->setData(0, Qt::UserRole, pinned.url);
|
||||||
|
|
||||||
|
pinnedItem->addChild(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
QTreeWidgetItem* topicsItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("Topics"));
|
||||||
|
for(auto news : headline.topics) {
|
||||||
|
QTreeWidgetItem* item = new QTreeWidgetItem();
|
||||||
|
item->setText(0, news.title);
|
||||||
|
item->setText(1, QLocale().toString(news.date, QLocale::ShortFormat));
|
||||||
|
item->setData(0, Qt::UserRole, news.url);
|
||||||
|
|
||||||
|
qInfo() << news.url;
|
||||||
|
|
||||||
|
topicsItem->addChild(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
newsListView->insertTopLevelItems(0, QList<QTreeWidgetItem*>({newsItem, pinnedItem, topicsItem}));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,52 +267,6 @@ void LauncherWindow::reloadControls() {
|
||||||
|
|
||||||
currentlyReloadingControls = true;
|
currentlyReloadingControls = true;
|
||||||
|
|
||||||
if(!headline.banner.empty()) {
|
|
||||||
auto request = QNetworkRequest(headline.banner[0].bannerImage);
|
|
||||||
core.buildRequest(request);
|
|
||||||
|
|
||||||
auto reply = core.mgr->get(request);
|
|
||||||
connect(reply, &QNetworkReply::finished, [=] {
|
|
||||||
QPixmap pixmap;
|
|
||||||
pixmap.loadFromData(reply->readAll());
|
|
||||||
bannerImageView->setPixmap(pixmap);
|
|
||||||
});
|
|
||||||
|
|
||||||
QTreeWidgetItem* newsItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("News"));
|
|
||||||
for(auto news : headline.news) {
|
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem();
|
|
||||||
item->setText(0, news.title);
|
|
||||||
item->setText(1, QLocale().toString(news.date, QLocale::ShortFormat));
|
|
||||||
item->setData(0, Qt::UserRole, news.url);
|
|
||||||
|
|
||||||
newsItem->addChild(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
QTreeWidgetItem* pinnedItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("Pinned"));
|
|
||||||
for(auto pinned : headline.pinned) {
|
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem();
|
|
||||||
item->setText(0, pinned.title);
|
|
||||||
item->setText(1, QLocale().toString(pinned.date, QLocale::ShortFormat));
|
|
||||||
item->setData(0, Qt::UserRole, pinned.url);
|
|
||||||
|
|
||||||
pinnedItem->addChild(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
QTreeWidgetItem* topicsItem = new QTreeWidgetItem((QTreeWidgetItem*)nullptr, QStringList("Topics"));
|
|
||||||
for(auto news : headline.topics) {
|
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem();
|
|
||||||
item->setText(0, news.title);
|
|
||||||
item->setText(1, QLocale().toString(news.date, QLocale::ShortFormat));
|
|
||||||
item->setData(0, Qt::UserRole, news.url);
|
|
||||||
|
|
||||||
qInfo() << news.url;
|
|
||||||
|
|
||||||
topicsItem->addChild(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
newsListView->insertTopLevelItems(0, QList<QTreeWidgetItem*>({newsItem, pinnedItem, topicsItem}));
|
|
||||||
}
|
|
||||||
|
|
||||||
const int oldIndex = profileSelect->currentIndex();
|
const int oldIndex = profileSelect->currentIndex();
|
||||||
|
|
||||||
profileSelect->clear();
|
profileSelect->clear();
|
||||||
|
|
Loading…
Add table
Reference in a new issue