shadPS4/src/qt_gui/trophy_viewer.h
DanielSvoboda 16a68d78eb
Trophy Viewer - Select Game (#2678)
* Trophy Viewer - Select Game

* TR - Button in Utils +icon

TR - Button in Utils +icon
I also made a small correction to the game folder list, where the checkboxes were being filled in incorrectly.
2025-03-24 10:25:51 +02:00

80 lines
1.9 KiB
C++

// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <QApplication>
#include <QCheckBox>
#include <QComboBox>
#include <QDir>
#include <QDockWidget>
#include <QFileInfoList>
#include <QGraphicsBlurEffect>
#include <QHeaderView>
#include <QLabel>
#include <QMainWindow>
#include <QPair>
#include <QPushButton>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QVBoxLayout>
#include <QVector>
#include <QXmlStreamReader>
#include "common/types.h"
#include "core/file_format/trp.h"
struct TrophyGameInfo {
QString name;
QString trophyPath;
QString gameTrpPath;
};
class TrophyViewer : public QMainWindow {
Q_OBJECT
public:
explicit TrophyViewer(
QString trophyPath, QString gameTrpPath, QString gameName = "",
const QVector<TrophyGameInfo>& allTrophyGames = QVector<TrophyGameInfo>());
void updateTrophyInfo();
void updateTableFilters();
void onDockClosed();
void reopenLeftDock();
private slots:
void onGameSelectionChanged(int index);
private:
void PopulateTrophyWidget(QString title);
void SetTableItem(QTableWidget* parent, int row, int column, QString str);
QTabWidget* tabWidget = nullptr;
QStringList headers;
QString gameTrpPath_;
QString currentGameName_;
TRP trp;
QLabel* trophyInfoLabel;
QCheckBox* showEarnedCheck;
QCheckBox* showNotEarnedCheck;
QCheckBox* showHiddenCheck;
QComboBox* gameSelectionComboBox;
QPushButton* expandButton;
QDockWidget* trophyInfoDock;
QPushButton* reopenButton;
QVector<TrophyGameInfo> allTrophyGames_;
std::string GetTrpType(const QChar trp_) {
switch (trp_.toLatin1()) {
case 'B':
return "bronze.png";
case 'S':
return "silver.png";
case 'G':
return "gold.png";
case 'P':
return "platinum.png";
}
return "Unknown";
}
};