From 6696964e4bb1159038fdce157110172407a63a43 Mon Sep 17 00:00:00 2001 From: faith Date: Fri, 6 Dec 2024 13:22:25 +0800 Subject: [PATCH] fix nested QJsonObject --- src/qt_gui/compatibility_info.cpp | 12 ++++++------ src/qt_gui/game_list_frame.cpp | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/qt_gui/compatibility_info.cpp b/src/qt_gui/compatibility_info.cpp index 6999e7aa3..e432ec9b2 100644 --- a/src/qt_gui/compatibility_info.cpp +++ b/src/qt_gui/compatibility_info.cpp @@ -19,7 +19,7 @@ CompatibilityInfoClass::~CompatibilityInfoClass() = default; void CompatibilityInfoClass::UpdateCompatibilityDatabase(QWidget* parent) { QFileInfo check_file(m_compatibility_filename); - const auto modified_delta = check_file.lastModified() - QDateTime::currentDateTime(); + const auto modified_delta = QDateTime::currentDateTime() - check_file.lastModified(); if (check_file.exists() && check_file.isFile() && std::chrono::duration_cast(modified_delta).count() < 60) { if (LoadCompatibilityFile()) @@ -192,11 +192,9 @@ void CompatibilityInfoClass::ExtractCompatibilityInfo(QByteArray response) { } } - QJsonValueRef compatibility_object_ref = m_compatibility_database[title_id]; + // QJson does not support editing nested objects directly.. - if (compatibility_object_ref.isNull()) { - compatibility_object_ref = QJsonObject({}); - } + QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject(); QJsonObject compatibility_data{ {{"status", compatibility_status}, @@ -205,7 +203,9 @@ void CompatibilityInfoClass::ExtractCompatibilityInfo(QByteArray response) { ? "unknown" : issue_obj["milestone"].toObject()["title"].toString()}}}; - compatibility_object_ref.toObject().insert(current_os, compatibility_data); + compatibility_obj[current_os] = compatibility_data; + + m_compatibility_database[title_id] = compatibility_obj; } } diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp index bbf5c63ef..10b33116c 100644 --- a/src/qt_gui/game_list_frame.cpp +++ b/src/qt_gui/game_list_frame.cpp @@ -23,7 +23,7 @@ GameListFrame::GameListFrame(std::shared_ptr game_info_get, this->verticalScrollBar()->installEventFilter(this); this->verticalScrollBar()->setSingleStep(20); this->horizontalScrollBar()->setSingleStep(20); - this->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); + this->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); this->verticalHeader()->setVisible(false); this->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); this->horizontalHeader()->setHighlightSections(false); @@ -45,8 +45,8 @@ GameListFrame::GameListFrame(std::shared_ptr game_info_get, this->setHorizontalHeaderLabels(headers); this->horizontalHeader()->setSortIndicatorShown(true); this->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); - this->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Fixed); this->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Fixed); + this->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Fixed); PopulateGameList(); connect(this, &QTableWidget::currentCellChanged, this, &GameListFrame::onCurrentCellChanged); @@ -255,7 +255,7 @@ void GameListFrame::SetCompatibilityItem(int row, int column, CompatibilityEntry QLabel* label = new QLabel(m_compat_info->CompatStatusToString.at(entry.status), widget); - label->setStyleSheet("color: white; font-size: 16px; font-weight: bold;"); + label->setStyleSheet("color: white; font-size: 12px; font-weight: bold;"); // Create shadow effect QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); @@ -266,8 +266,8 @@ void GameListFrame::SetCompatibilityItem(int row, int column, CompatibilityEntry label->setGraphicsEffect(shadowEffect); // Apply shadow effect to the QLabel QLabel* version_label = - new QLabel(QString("%1, (%2)").arg(entry.last_tested.toString(), entry.version), widget); - version_label->setStyleSheet("color: white; font-size: 12px;"); + new QLabel(QString("%1, (%2)").arg(entry.last_tested.toString("yyyy-MM-dd"), entry.version), widget); + version_label->setStyleSheet("color: white; font-size: 10px;"); layout->addWidget(dotLabel, 0, 0, -1, 1); layout->addWidget(label, 0, 1, 1, 1);