mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-24 20:35:01 +00:00
compatibility_data: Added compatibility related settings to GUI (#1855)
* compatibility_data: added compatibility related settings to gui * New game compatibility section in settings dialog * Context menu now has a compatibility section * Adjusted minimum size of updater section to 265 * update translations * revert to deprecated statechanged * fix display compatibility data option
This commit is contained in:
parent
a89c29c2ca
commit
d55e41a19e
11 changed files with 256 additions and 37 deletions
|
@ -11,6 +11,9 @@
|
|||
#include <QTreeWidgetItem>
|
||||
|
||||
#include "cheats_patches.h"
|
||||
#include "common/config.h"
|
||||
#include "common/version.h"
|
||||
#include "compatibility_info.h"
|
||||
#include "game_info.h"
|
||||
#include "trophy_viewer.h"
|
||||
|
||||
|
@ -27,8 +30,9 @@
|
|||
class GuiContextMenus : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
void RequestGameMenu(const QPoint& pos, QVector<GameInfo> m_games, QTableWidget* widget,
|
||||
bool isList) {
|
||||
void RequestGameMenu(const QPoint& pos, QVector<GameInfo> m_games,
|
||||
std::shared_ptr<CompatibilityInfoClass> m_compat_info,
|
||||
QTableWidget* widget, bool isList) {
|
||||
QPoint global_pos = widget->viewport()->mapToGlobal(pos);
|
||||
int itemID = 0;
|
||||
if (isList) {
|
||||
|
@ -91,6 +95,21 @@ public:
|
|||
|
||||
menu.addMenu(deleteMenu);
|
||||
|
||||
// Compatibility submenu.
|
||||
QMenu* compatibilityMenu = new QMenu(tr("Compatibility..."), widget);
|
||||
QAction* updateCompatibility = new QAction(tr("Update database"), widget);
|
||||
QAction* viewCompatibilityReport = new QAction(tr("View report"), widget);
|
||||
QAction* submitCompatibilityReport = new QAction(tr("Submit a report"), widget);
|
||||
|
||||
compatibilityMenu->addAction(updateCompatibility);
|
||||
compatibilityMenu->addAction(viewCompatibilityReport);
|
||||
compatibilityMenu->addAction(submitCompatibilityReport);
|
||||
|
||||
menu.addMenu(compatibilityMenu);
|
||||
|
||||
compatibilityMenu->setEnabled(Config::getCompatibilityEnabled());
|
||||
viewCompatibilityReport->setEnabled(!m_games[itemID].compatibility.url.isEmpty());
|
||||
|
||||
// Show menu.
|
||||
auto selected = menu.exec(global_pos);
|
||||
if (!selected) {
|
||||
|
@ -360,6 +379,31 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (selected == updateCompatibility) {
|
||||
m_compat_info->UpdateCompatibilityDatabase(widget, true);
|
||||
}
|
||||
|
||||
if (selected == viewCompatibilityReport) {
|
||||
if (!m_games[itemID].compatibility.url.isEmpty())
|
||||
QDesktopServices::openUrl(QUrl(m_games[itemID].compatibility.url));
|
||||
}
|
||||
|
||||
if (selected == submitCompatibilityReport) {
|
||||
QUrl url = QUrl("https://github.com/shadps4-emu/shadps4-game-compatibility/issues/new");
|
||||
QUrlQuery query;
|
||||
query.addQueryItem("template", QString("game_compatibility.yml"));
|
||||
query.addQueryItem(
|
||||
"title", QString("%1 - %2").arg(QString::fromStdString(m_games[itemID].serial),
|
||||
QString::fromStdString(m_games[itemID].name)));
|
||||
query.addQueryItem("game-name", QString::fromStdString(m_games[itemID].name));
|
||||
query.addQueryItem("game-code", QString::fromStdString(m_games[itemID].serial));
|
||||
query.addQueryItem("game-version", QString::fromStdString(m_games[itemID].version));
|
||||
query.addQueryItem("emulator-version", QString(Common::VERSION));
|
||||
url.setQuery(query);
|
||||
|
||||
QDesktopServices::openUrl(url);
|
||||
}
|
||||
}
|
||||
|
||||
int GetRowIndex(QTreeWidget* treeWidget, QTreeWidgetItem* item) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue