fix: use QDateTime instead of QTime to handle cross-day comparison

This commit is contained in:
Restia-Ashbell 2025-09-18 00:36:23 +08:00
parent 30b76780e5
commit 02587bbe96
3 changed files with 5 additions and 8 deletions

View File

@ -15,7 +15,6 @@
#ifndef MW_INTERFACE
#include <QTime>
#include <QTableWidgetItem>
#include <QKeyEvent>
#include <QSystemTrayIcon>
@ -182,7 +181,7 @@ private:
int icon_status = -1;
std::shared_ptr<Configs::ProxyEntity> running;
QString traffic_update_cache;
QTime last_test_time;
qint64 last_test_time = 0;
//
int proxy_last_order = -1;
bool select_mode = false;

View File

@ -1239,10 +1239,8 @@ void MainWindow::refresh_status(const QString &traffic_update) {
if (group != nullptr) group_name = group->name;
}
if (last_test_time.addSecs(2) < QTime::currentTime()) {
auto txt = running == nullptr ? tr("Not Running")
: QString("[%1] %2").arg(group_name, running->bean->DisplayName()).left(30);
ui->label_running->setText(txt);
if (QDateTime::currentSecsSinceEpoch() - last_test_time > 2) {
ui->label_running->setText(running ? QString("[%1] %2").arg(group_name, running->bean->DisplayName()).left(30) : tr("Not Running"));
}
//
auto display_socks = DisplayAddress(Configs::dataStore->inbound_address, Configs::dataStore->inbound_socks_port);

View File

@ -195,7 +195,7 @@ void MainWindow::stopTests() {
}
void MainWindow::url_test_current() {
last_test_time = QTime::currentTime();
last_test_time = QDateTime::currentSecsSinceEpoch();
ui->label_running->setText(tr("Testing"));
runOnNewThread([=,this] {
@ -208,7 +208,7 @@ void MainWindow::url_test_current() {
if (!rpcOK || result.results.empty()) return;
auto latency = result.results[0].latency_ms.value();
last_test_time = QTime::currentTime();
last_test_time = QDateTime::currentSecsSinceEpoch();
runOnUiThread([=,this] {
if (!result.results[0].error.value().empty()) {