Skip to content
Snippets Groups Projects

QDS-11424 Update user projects automatically

Merged Burak Hançerli requested to merge QDS-11424/update-user-projects-automatically into master
7 files
+ 188
2
Compare changes
  • Side-by-side
  • Inline
Files
7
+ 58
1
@@ -72,7 +72,54 @@ void Backend::initialize()
updateUserProjectList();
}
qDebug("Initialization complete");
// Check if updateInBackground is enabled
updateInBackground(settings.value("system/updateInBackground").toBool());
qDebug() << "Initialization complete";
}
void Backend::updateInBackground(const bool &enabled)
{
QSettings().setValue("system/updateInBackground", enabled);
if (enabled) {
qDebug() << "Update in background is enabled";
m_backgroundTimer.setInterval(1000 * 10);
connect(&m_backgroundTimer, &QTimer::timeout, this, [&] {
qDebug() << "Checking for updates in background";
if (m_userHash.isEmpty())
return;
m_serviceConnector.reset(new ServiceConnector);
QJsonArray projectList = m_serviceConnector->fetchUserProjectList(m_userHash);
if (projectList.isEmpty())
return;
qDebug() << "New projects available. Updating project list";
updateUserProjectList();
});
m_backgroundTimer.start();
} else {
qDebug() << "Update in background is disabled";
m_backgroundTimer.stop();
}
}
void Backend::cacheDemoProjects(const bool &enabled)
{
QSettings().setValue("system/cacheDemoProjects", enabled);
if (enabled) {
qDebug() << "Caching demo projects is enabled";
} else {
qDebug() << "Caching demo projects is disabled";
}
}
void Backend::cacheUserProjects(const bool &enabled)
{
QSettings().setValue("system/cacheUserProjects", enabled);
if (enabled) {
qDebug() << "Caching user projects is enabled";
} else {
qDebug() << "Caching user projects is disabled";
}
}
void Backend::updatePopup(const QString &text, bool indeterminate)
@@ -322,6 +369,16 @@ void Backend::updateUserProjectList()
m_serviceConnector.reset(new ServiceConnector);
QJsonArray projectList = m_serviceConnector->fetchUserProjectList(m_userHash);
if (projectList.isEmpty()) {
qCritical("Could not fetch available project list");
return;
}
if (projectList == m_projectListArray) {
qDebug("No new projects available");
return;
}
m_projectListArray = projectList;
m_projectList.clear();
qDebug("List of available projects fetched:");
for (const auto &project : projectList) {
Loading