mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 08:21:29 +12:00
Qt: add more Qt blockingMapped workarounds
This probably won't fix anything, but better be safe than sorry
This commit is contained in:
parent
7f7bd961e2
commit
f4d0261387
2 changed files with 12 additions and 11 deletions
|
@ -273,7 +273,8 @@ void save_manager_dialog::UpdateList()
|
||||||
return icon;
|
return icon;
|
||||||
};
|
};
|
||||||
|
|
||||||
const QList<QPixmap> icons = QtConcurrent::blockingMapped<QList<QPixmap>>(indices, get_icon);
|
// NOTE: Due to a Qt bug in Qt 5.15.2, QtConcurrent::blockingMapped has a high risk of deadlocking. So let's just use QtConcurrent::mapped.
|
||||||
|
const QList<QPixmap> icons = QtConcurrent::mapped(indices, get_icon).results();
|
||||||
|
|
||||||
for (int i = 0; i < icons.count(); ++i)
|
for (int i = 0; i < icons.count(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -370,7 +371,8 @@ void save_manager_dialog::UpdateIcons()
|
||||||
return GetResizedIcon(i);
|
return GetResizedIcon(i);
|
||||||
};
|
};
|
||||||
|
|
||||||
QList<QPixmap> scaled = QtConcurrent::blockingMapped<QList<QPixmap>>(indices, get_scaled);
|
// NOTE: Due to a Qt bug in Qt 5.15.2, QtConcurrent::blockingMapped has a high risk of deadlocking. So let's just use QtConcurrent::mapped.
|
||||||
|
const QList<QPixmap> scaled = QtConcurrent::mapped(indices, get_scaled).results();
|
||||||
|
|
||||||
for (int i = 0; i < m_list->rowCount() && i < scaled.count(); ++i)
|
for (int i = 0; i < m_list->rowCount() && i < scaled.count(); ++i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -513,7 +513,8 @@ void trophy_manager_dialog::ResizeGameIcons()
|
||||||
return GetResizedGameIcon(i);
|
return GetResizedGameIcon(i);
|
||||||
};
|
};
|
||||||
|
|
||||||
QList<QPixmap> scaled = QtConcurrent::blockingMapped<QList<QPixmap>>(indices, get_scaled);
|
// NOTE: Due to a Qt bug in Qt 5.15.2, QtConcurrent::blockingMapped has a high risk of deadlocking. So let's just use QtConcurrent::mapped.
|
||||||
|
const QList<QPixmap> scaled = QtConcurrent::mapped(indices, get_scaled).results();
|
||||||
|
|
||||||
for (int i = 0; i < m_game_table->rowCount() && i < scaled.count(); ++i)
|
for (int i = 0; i < m_game_table->rowCount() && i < scaled.count(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -578,17 +579,14 @@ void trophy_manager_dialog::ResizeTrophyIcons()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// NOTE: Due to a Qt bug, QtConcurrent::blockingMapped has a high risk of deadlocking
|
// NOTE: Due to a Qt bug in Qt 5.15.2, QtConcurrent::blockingMapped has a high risk of deadlocking. So let's just use QtConcurrent::mapped.
|
||||||
// during the QPixmap operations in get_scaled. So let's just use QtConcurrent::mapped.
|
const QList<QPixmap> scaled = QtConcurrent::mapped(trophy_ids, get_scaled).results();
|
||||||
QFutureWatcher<QPixmap> watcher;
|
|
||||||
watcher.setFuture(QtConcurrent::mapped(trophy_ids, get_scaled));
|
|
||||||
watcher.waitForFinished();
|
|
||||||
|
|
||||||
for (int i = 0; i < m_trophy_table->rowCount() && i < watcher.future().resultCount(); ++i)
|
for (int i = 0; i < m_trophy_table->rowCount() && i < scaled.count(); ++i)
|
||||||
{
|
{
|
||||||
QTableWidgetItem* icon_item = m_trophy_table->item(i, TrophyColumns::Icon);
|
QTableWidgetItem* icon_item = m_trophy_table->item(i, TrophyColumns::Icon);
|
||||||
if (icon_item)
|
if (icon_item)
|
||||||
icon_item->setData(Qt::DecorationRole, watcher.future().resultAt(i));
|
icon_item->setData(Qt::DecorationRole, scaled.at(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ReadjustTrophyTable();
|
ReadjustTrophyTable();
|
||||||
|
@ -747,7 +745,8 @@ void trophy_manager_dialog::PopulateGameTable()
|
||||||
return icon;
|
return icon;
|
||||||
};
|
};
|
||||||
|
|
||||||
QList<QPixmap> icons = QtConcurrent::blockingMapped<QList<QPixmap>>(indices, get_icon);
|
// NOTE: Due to a Qt bug in Qt 5.15.2, QtConcurrent::blockingMapped has a high risk of deadlocking. So let's just use QtConcurrent::mapped.
|
||||||
|
const QList<QPixmap> icons = QtConcurrent::mapped(indices, get_icon).results();
|
||||||
|
|
||||||
for (int i = 0; i < indices.count(); ++i)
|
for (int i = 0; i < indices.count(); ++i)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue