mirror of
https://gitlab.com/suyu-emu/suyu.git
synced 2024-03-15 23:15:44 +00:00
Merge pull request #10999 from Morph1984/fix-install-progress
main: Fix install progress calculation
This commit is contained in:
commit
45ea712d39
|
@ -178,6 +178,8 @@ constexpr int default_mouse_hide_timeout = 2500;
|
||||||
constexpr int default_mouse_center_timeout = 10;
|
constexpr int default_mouse_center_timeout = 10;
|
||||||
constexpr int default_input_update_timeout = 1;
|
constexpr int default_input_update_timeout = 1;
|
||||||
|
|
||||||
|
constexpr size_t CopyBufferSize = 1_MiB;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "Callouts" are one-time instructional messages shown to the user. In the config settings, there
|
* "Callouts" are one-time instructional messages shown to the user. In the config settings, there
|
||||||
* is a bitfield "callout_flags" options, used to track if a message has already been shown to the
|
* is a bitfield "callout_flags" options, used to track if a message has already been shown to the
|
||||||
|
@ -2929,10 +2931,10 @@ void GMainWindow::OnMenuInstallToNAND() {
|
||||||
|
|
||||||
int remaining = filenames.size();
|
int remaining = filenames.size();
|
||||||
|
|
||||||
// This would only overflow above 2^43 bytes (8.796 TB)
|
// This would only overflow above 2^51 bytes (2.252 PB)
|
||||||
int total_size = 0;
|
int total_size = 0;
|
||||||
for (const QString& file : files) {
|
for (const QString& file : files) {
|
||||||
total_size += static_cast<int>(QFile(file).size() / 0x1000);
|
total_size += static_cast<int>(QFile(file).size() / CopyBufferSize);
|
||||||
}
|
}
|
||||||
if (total_size < 0) {
|
if (total_size < 0) {
|
||||||
LOG_CRITICAL(Frontend, "Attempting to install too many files, aborting.");
|
LOG_CRITICAL(Frontend, "Attempting to install too many files, aborting.");
|
||||||
|
@ -3032,7 +3034,7 @@ InstallResult GMainWindow::InstallNSPXCI(const QString& filename) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<u8> buffer(1_MiB);
|
std::vector<u8> buffer(CopyBufferSize);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
|
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
|
||||||
if (install_progress->wasCanceled()) {
|
if (install_progress->wasCanceled()) {
|
||||||
|
@ -3088,7 +3090,7 @@ InstallResult GMainWindow::InstallNCA(const QString& filename) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::array<u8, 0x1000> buffer{};
|
std::vector<u8> buffer(CopyBufferSize);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
|
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
|
||||||
if (install_progress->wasCanceled()) {
|
if (install_progress->wasCanceled()) {
|
||||||
|
|
Loading…
Reference in a new issue