mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-28 13:47:57 +03:00
Use supported disc image extensions list.
This commit is contained in:
parent
8f02b23b65
commit
4843758933
7 changed files with 51 additions and 7 deletions
|
@ -126,6 +126,8 @@ set(QT_SOURCES
|
|||
PreferenceDefs.h
|
||||
QStringUtils.cpp
|
||||
QStringUtils.h
|
||||
QtUtils.cpp
|
||||
QtUtils.h
|
||||
vfsmanagerdialog.cpp
|
||||
vfsmanagerdialog.h
|
||||
vfsmodel.cpp
|
||||
|
|
19
Source/ui_qt/QtUtils.cpp
Normal file
19
Source/ui_qt/QtUtils.cpp
Normal file
|
@ -0,0 +1,19 @@
|
|||
#include "QtUtils.h"
|
||||
#include "DiskUtils.h"
|
||||
#include <QStringList>
|
||||
|
||||
QString QtUtils::GetDiscImageFormatsFilter()
|
||||
{
|
||||
std::string fileFilter;
|
||||
const auto& extensions = DiskUtils::GetSupportedExtensions();
|
||||
for(auto extensionIterator = extensions.begin();
|
||||
extensionIterator != extensions.end(); extensionIterator++)
|
||||
{
|
||||
if(extensionIterator != extensions.begin())
|
||||
{
|
||||
fileFilter += " ";
|
||||
}
|
||||
fileFilter += "*" + *extensionIterator;
|
||||
}
|
||||
return QString::asprintf("Disc images(%s)", fileFilter.c_str());
|
||||
}
|
8
Source/ui_qt/QtUtils.h
Normal file
8
Source/ui_qt/QtUtils.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace QtUtils
|
||||
{
|
||||
QString GetDiscImageFormatsFilter();
|
||||
}
|
|
@ -17,6 +17,7 @@
|
|||
#include "http/HttpClientFactory.h"
|
||||
#include "string_format.h"
|
||||
#include "QStringUtils.h"
|
||||
#include "QtUtils.h"
|
||||
#include "ui_shared/BootablesProcesses.h"
|
||||
#include "ui_shared/BootablesDbClient.h"
|
||||
|
||||
|
@ -128,9 +129,14 @@ void BootableListDialog::showEvent(QShowEvent* ev)
|
|||
|
||||
void BootableListDialog::on_add_games_button_clicked()
|
||||
{
|
||||
QStringList filters;
|
||||
filters.push_back(QtUtils::GetDiscImageFormatsFilter());
|
||||
filters.push_back("ELF files (*.elf)");
|
||||
filters.push_back("All files (*)");
|
||||
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
dialog.setNameFilter(tr("All supported types(*.iso *.bin *.isz *.cso *.elf);;UltraISO Compressed Disk Images (*.isz);;CISO Compressed Disk Images (*.cso);;ELF files (*.elf);;All files (*.*)"));
|
||||
dialog.setNameFilters(filters);
|
||||
if(dialog.exec())
|
||||
{
|
||||
auto filePath = QStringToPath(dialog.selectedFiles().first()).parent_path();
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "S3FileBrowser.h"
|
||||
#include "ui_shared/BootablesProcesses.h"
|
||||
#include "ui_shared/StatsManager.h"
|
||||
#include "QtUtils.h"
|
||||
|
||||
#include "openglwindow.h"
|
||||
#include "GSH_OpenGLQt.h"
|
||||
|
@ -271,10 +272,14 @@ void MainWindow::outputWindow_resized()
|
|||
|
||||
void MainWindow::on_actionBoot_DiscImage_triggered()
|
||||
{
|
||||
QStringList filters;
|
||||
filters.push_back(QtUtils::GetDiscImageFormatsFilter());
|
||||
filters.push_back("All files (*)");
|
||||
|
||||
QFileDialog dialog(this);
|
||||
dialog.setDirectory(PathToQString(m_lastPath));
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
dialog.setNameFilter(tr("All supported types(*.iso *.bin *.isz *.cso);;UltraISO Compressed Disk Images (*.isz);;CISO Compressed Disk Images (*.cso);;All files (*.*)"));
|
||||
dialog.setNameFilters(filters);
|
||||
if(dialog.exec())
|
||||
{
|
||||
auto filePath = QStringToPath(dialog.selectedFiles().first());
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include "QStringUtils.h"
|
||||
#include "QtUtils.h"
|
||||
|
||||
VFSDiscSelectorDialog::VFSDiscSelectorDialog(fs::path path, CCdrom0Device::BINDINGTYPE m_nBindingType, QWidget* parent)
|
||||
: QDialog(parent)
|
||||
|
@ -33,9 +34,13 @@ VFSDiscSelectorDialog::~VFSDiscSelectorDialog()
|
|||
|
||||
void VFSDiscSelectorDialog::on_iso_browse_button_clicked()
|
||||
{
|
||||
QStringList filters;
|
||||
filters.push_back(QtUtils::GetDiscImageFormatsFilter());
|
||||
filters.push_back("All files (*)");
|
||||
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
dialog.setNameFilter(tr("All supported types(*.iso *.bin *.isz *.cso);;UltraISO Compressed Disk Images (*.isz);;CISO Compressed Disk Images (*.cso);;All files (*.*)"));
|
||||
dialog.setNameFilters(filters);
|
||||
if(dialog.exec())
|
||||
{
|
||||
m_path = QStringToPath(dialog.selectedFiles().first());
|
||||
|
|
|
@ -43,12 +43,11 @@ bool IsBootableExecutablePath(const fs::path& filePath)
|
|||
|
||||
bool IsBootableDiscImagePath(const fs::path& filePath)
|
||||
{
|
||||
const auto& supportedExtensions = DiskUtils::GetSupportedExtensions();
|
||||
auto extension = filePath.extension().string();
|
||||
std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
|
||||
return (extension == ".iso") ||
|
||||
(extension == ".isz") ||
|
||||
(extension == ".cso") ||
|
||||
(extension == ".bin");
|
||||
auto extensionIterator = supportedExtensions.find(extension);
|
||||
return extensionIterator != std::end(supportedExtensions);
|
||||
}
|
||||
|
||||
bool TryRegisteringBootable(const fs::path& path)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue