mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-05-22 01:07:15 +02:00
Use shared pointer to store server query task
Signed-off-by: iTrooz <hey@itrooz.fr>
This commit is contained in:
parent
1477d64400
commit
ba0bd5fd74
@ -455,7 +455,9 @@ class ServersModel : public QAbstractListModel {
|
|||||||
qDebug() << "Aborted previous server query task";
|
qDebug() << "Aborted previous server query task";
|
||||||
}
|
}
|
||||||
|
|
||||||
currentQueryTask = new ConcurrentTask("Query servers status", APPLICATION->settings()->get("NumberOfConcurrentTasks").toInt());
|
currentQueryTask = ConcurrentTask::Ptr(
|
||||||
|
new ConcurrentTask("Query servers status", APPLICATION->settings()->get("NumberOfConcurrentTasks").toInt())
|
||||||
|
);
|
||||||
int row = 0;
|
int row = 0;
|
||||||
for (Server &server : m_servers) {
|
for (Server &server : m_servers) {
|
||||||
// reset current players
|
// reset current players
|
||||||
@ -476,15 +478,9 @@ class ServersModel : public QAbstractListModel {
|
|||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// make task delete itself when done
|
// Destroy task when done
|
||||||
auto *c = currentQueryTask;
|
connect(currentQueryTask.get(), &ConcurrentTask::finished, this, [this]() {
|
||||||
connect(currentQueryTask, &ConcurrentTask::finished, [c]() {
|
currentQueryTask = nullptr;
|
||||||
c->deleteLater();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Also delete it from the model, if the model itself hasn't been deleted
|
|
||||||
connect(currentQueryTask, &ConcurrentTask::finished, this, [this, c]() {
|
|
||||||
if (c == currentQueryTask) currentQueryTask = nullptr;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
currentQueryTask->start();
|
currentQueryTask->start();
|
||||||
@ -577,7 +573,7 @@ class ServersModel : public QAbstractListModel {
|
|||||||
QList<Server> m_servers;
|
QList<Server> m_servers;
|
||||||
QFileSystemWatcher* m_watcher = nullptr;
|
QFileSystemWatcher* m_watcher = nullptr;
|
||||||
QTimer m_saveTimer;
|
QTimer m_saveTimer;
|
||||||
ConcurrentTask *currentQueryTask = nullptr;
|
ConcurrentTask::Ptr currentQueryTask = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
ServersPage::ServersPage(InstancePtr inst, QWidget* parent) : QMainWindow(parent), ui(new Ui::ServersPage)
|
ServersPage::ServersPage(InstancePtr inst, QWidget* parent) : QMainWindow(parent), ui(new Ui::ServersPage)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user