Merge pull request #947 from lioncash/encoding

game_list: Use QString::fromStdString() where applicable instead of c_str()
master
bunnei 2018-08-06 22:02:01 +07:00 committed by GitHub
commit 0c3c91e41c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 13 deletions

@ -258,18 +258,20 @@ void GameList::AddEntry(const QList<QStandardItem*>& entry_items) {
void GameList::ValidateEntry(const QModelIndex& item) { void GameList::ValidateEntry(const QModelIndex& item) {
// We don't care about the individual QStandardItem that was selected, but its row. // We don't care about the individual QStandardItem that was selected, but its row.
int row = item_model->itemFromIndex(item)->row(); const int row = item_model->itemFromIndex(item)->row();
QStandardItem* child_file = item_model->invisibleRootItem()->child(row, COLUMN_NAME); const QStandardItem* child_file = item_model->invisibleRootItem()->child(row, COLUMN_NAME);
QString file_path = child_file->data(GameListItemPath::FullPathRole).toString(); const QString file_path = child_file->data(GameListItemPath::FullPathRole).toString();
if (file_path.isEmpty()) if (file_path.isEmpty())
return; return;
std::string std_file_path(file_path.toStdString());
if (!FileUtil::Exists(std_file_path)) if (!QFileInfo::exists(file_path))
return; return;
if (FileUtil::IsDirectory(std_file_path)) {
QDir dir(std_file_path.c_str()); const QFileInfo file_info{file_path};
QStringList matching_main = dir.entryList(QStringList("main"), QDir::Files); if (file_info.isDir()) {
const QDir dir{file_path};
const QStringList matching_main = dir.entryList(QStringList("main"), QDir::Files);
if (matching_main.size() == 1) { if (matching_main.size() == 1) {
emit GameChosen(dir.path() + DIR_SEP + matching_main[0]); emit GameChosen(dir.path() + DIR_SEP + matching_main[0]);
} }
@ -368,21 +370,23 @@ void GameList::LoadInterfaceLayout() {
const QStringList GameList::supported_file_extensions = {"nso", "nro", "nca", "xci"}; const QStringList GameList::supported_file_extensions = {"nso", "nro", "nca", "xci"};
static bool HasSupportedFileExtension(const std::string& file_name) { static bool HasSupportedFileExtension(const std::string& file_name) {
QFileInfo file = QFileInfo(file_name.c_str()); const QFileInfo file = QFileInfo(QString::fromStdString(file_name));
return GameList::supported_file_extensions.contains(file.suffix(), Qt::CaseInsensitive); return GameList::supported_file_extensions.contains(file.suffix(), Qt::CaseInsensitive);
} }
static bool IsExtractedNCAMain(const std::string& file_name) { static bool IsExtractedNCAMain(const std::string& file_name) {
return QFileInfo(file_name.c_str()).fileName() == "main"; return QFileInfo(QString::fromStdString(file_name)).fileName() == "main";
} }
static QString FormatGameName(const std::string& physical_name) { static QString FormatGameName(const std::string& physical_name) {
QFileInfo file_info(physical_name.c_str()); const QString physical_name_as_qstring = QString::fromStdString(physical_name);
const QFileInfo file_info(physical_name_as_qstring);
if (IsExtractedNCAMain(physical_name)) { if (IsExtractedNCAMain(physical_name)) {
return file_info.dir().path(); return file_info.dir().path();
} else {
return QString::fromStdString(physical_name);
} }
return physical_name_as_qstring;
} }
void GameList::RefreshGameDirectory() { void GameList::RefreshGameDirectory() {