import and export open dialog bug fix

This commit is contained in:
Rafael 2016-03-29 11:22:41 +02:00
parent 6506f56d00
commit 4c1e407cf3
3 changed files with 351 additions and 320 deletions

View file

@ -149,6 +149,7 @@ void PictureDialog::on_cmdExport_clicked()
QSettings settings("Syping", "gta5sync"); QSettings settings("Syping", "gta5sync");
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
fileDialogPreSave:
QFileDialog fileDialog(this); QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setViewMode(QFileDialog::Detail);
@ -192,7 +193,6 @@ void PictureDialog::on_cmdExport_clicked()
fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setSidebarUrls(sidebarUrls);
fileDialog.restoreState(settings.value("ExportPicture","").toByteArray()); fileDialog.restoreState(settings.value("ExportPicture","").toByteArray());
fileDialogPreSave:
if (fileDialog.exec()) if (fileDialog.exec())
{ {
QStringList selectedFiles = fileDialog.selectedFiles(); QStringList selectedFiles = fileDialog.selectedFiles();

View file

@ -155,6 +155,7 @@ void ProfileInterface::on_cmdImport_clicked()
QSettings settings("Syping", "gta5sync"); QSettings settings("Syping", "gta5sync");
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
fileDialogPreOpen:
QFileDialog fileDialog(this); QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setViewMode(QFileDialog::Detail);
@ -198,7 +199,6 @@ void ProfileInterface::on_cmdImport_clicked()
fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setSidebarUrls(sidebarUrls);
fileDialog.restoreState(settings.value("ImportCopy","").toByteArray()); fileDialog.restoreState(settings.value("ImportCopy","").toByteArray());
fileDialogPreOpen:
if (fileDialog.exec()) if (fileDialog.exec())
{ {
QStringList selectedFiles = fileDialog.selectedFiles(); QStringList selectedFiles = fileDialog.selectedFiles();
@ -219,6 +219,8 @@ fileDialogPreOpen:
else else
{ {
QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Snapmatic picture")); QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Snapmatic picture"));
picture->deleteLater();
delete picture;
goto fileDialogPreOpen; goto fileDialogPreOpen;
} }
} }
@ -232,6 +234,34 @@ fileDialogPreOpen:
else else
{ {
QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Savegame file")); QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Savegame file"));
savegame->deleteLater();
delete savegame;
goto fileDialogPreOpen;
}
}
else
{
SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
SavegameData *savegame = new SavegameData(selectedFile);
if (picture->readingPicture())
{
importSnapmaticPicture(picture, selectedFile);
savegame->deleteLater();
delete savegame;
}
else if (savegame->readingSavegame())
{
importSavegameData(savegame, selectedFile);
picture->deleteLater();
delete picture;
}
else
{
savegame->deleteLater();
picture->deleteLater();
delete savegame;
delete picture;
QMessageBox::warning(this, tr("Import copy"), tr("Can't import %1 because of not valid file format").arg("\""+selectedFileName+"\""));
goto fileDialogPreOpen; goto fileDialogPreOpen;
} }
} }
@ -287,7 +317,7 @@ bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPat
{ {
sgdNumber.insert(0, "0"); sgdNumber.insert(0, "0");
} }
sgdFileName = "SGTA00" + sgdNumber; sgdFileName = "SGTA500" + sgdNumber;
if (!QFile::exists(profileFolder + "/" + sgdFileName)) if (!QFile::exists(profileFolder + "/" + sgdFileName))
{ {

View file

@ -75,7 +75,8 @@ void SavegameWidget::on_cmdCopy_clicked()
QSettings settings("Syping", "gta5sync"); QSettings settings("Syping", "gta5sync");
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
QFileInfo fileInfo(sgdPath); fileDialogPreSave:
QFileInfo sgdFileInfo(sgdPath);
QFileDialog fileDialog(this); QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setViewMode(QFileDialog::Detail);
@ -118,8 +119,8 @@ void SavegameWidget::on_cmdCopy_clicked()
fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setSidebarUrls(sidebarUrls);
fileDialog.restoreState(settings.value("CopySavegame","").toByteArray()); fileDialog.restoreState(settings.value("CopySavegame","").toByteArray());
fileDialog.selectFile(sgdFileInfo.fileName());
fileDialogPreSave:
if (fileDialog.exec()) if (fileDialog.exec())
{ {
QStringList selectedFiles = fileDialog.selectedFiles(); QStringList selectedFiles = fileDialog.selectedFiles();