diff --git a/PictureDialog.cpp b/PictureDialog.cpp
index 08e42a8..9e7f5a7 100755
--- a/PictureDialog.cpp
+++ b/PictureDialog.cpp
@@ -149,6 +149,7 @@ void PictureDialog::on_cmdExport_clicked()
QSettings settings("Syping", "gta5sync");
settings.beginGroup("FileDialogs");
+fileDialogPreSave:
QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setViewMode(QFileDialog::Detail);
@@ -192,7 +193,6 @@ void PictureDialog::on_cmdExport_clicked()
fileDialog.setSidebarUrls(sidebarUrls);
fileDialog.restoreState(settings.value("ExportPicture","").toByteArray());
-fileDialogPreSave:
if (fileDialog.exec())
{
QStringList selectedFiles = fileDialog.selectedFiles();
diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp
index a3f7ff7..48eca49 100755
--- a/ProfileInterface.cpp
+++ b/ProfileInterface.cpp
@@ -1,317 +1,347 @@
-/*****************************************************************************
-* gta5sync GRAND THEFT AUTO V SYNC
-* Copyright (C) 2016 Syping
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see .
-*****************************************************************************/
-
-#include "ProfileInterface.h"
-#include "ui_ProfileInterface.h"
-#include "SnapmaticWidget.h"
-#include "DatabaseThread.h"
-#include "SavegameWidget.h"
-#include "StandardPaths.h"
-#include "ProfileLoader.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, DatabaseThread *threadDB, QWidget *parent) :
- QWidget(parent), profileDB(profileDB), crewDB(crewDB), threadDB(threadDB),
- ui(new Ui::ProfileInterface)
-{
- ui->setupUi(this);
- ui->cmdImport->setEnabled(false);
- ui->cmdCloseProfile->setEnabled(false);
- loadingStr = ui->labProfileLoading->text();
- profileFolder = "";
- profileLoader = 0;
- saSpacerItem = 0;
-
- QPalette palette;
- QColor baseColor = palette.base().color();
- ui->saProfile->setStyleSheet("QWidget#saProfileContent{background-color: rgb(" + QString::number(baseColor.red()) + "," + QString::number(baseColor.green()) + "," + QString::number(baseColor.blue()) + ")}");
-}
-
-ProfileInterface::~ProfileInterface()
-{
- foreach(SavegameData *savegame, savegames)
- {
- savegame->deleteLater();
- delete savegame;
- }
- foreach(SnapmaticPicture *picture, pictures)
- {
- pictures.removeAll(picture);
- picture->deleteLater();
- delete picture;
- }
- foreach(QWidget *widget, widgets)
- {
- widgets.removeAll(widget);
- widget->deleteLater();
- delete widget;
- }
- profileLoader->deleteLater();
- delete profileLoader;
- delete ui;
-}
-
-void ProfileInterface::setProfileFolder(QString folder, QString profile)
-{
- profileFolder = folder;
- profileName = profile;
-}
-
-void ProfileInterface::setupProfileInterface()
-{
- ui->labProfileLoading->setText(tr("Loading..."));
- profileLoader = new ProfileLoader(profileFolder, crewDB);
- QObject::connect(profileLoader, SIGNAL(savegameLoaded(SavegameData*, QString)), this, SLOT(on_savegameLoaded(SavegameData*, QString)));
- QObject::connect(profileLoader, SIGNAL(pictureLoaded(SnapmaticPicture*, QString)), this, SLOT(on_pictureLoaded(SnapmaticPicture*, QString)));
- QObject::connect(profileLoader, SIGNAL(loadingProgress(int,int)), this, SLOT(on_loadingProgress(int,int)));
- QObject::connect(profileLoader, SIGNAL(finished()), this, SLOT(on_profileLoaded()));
- profileLoader->start();
-}
-
-void ProfileInterface::on_savegameLoaded(SavegameData *savegame, QString savegamePath)
-{
- SavegameWidget *sgdWidget = new SavegameWidget();
- sgdWidget->setSavegameData(savegame, savegamePath);
- ui->vlSavegame->addWidget(sgdWidget);
- widgets.append(sgdWidget);
- savegames.append(savegame);
- QObject::connect(sgdWidget, SIGNAL(savegameDeleted()), this, SLOT(on_savegameDeleted()));
-}
-
-void ProfileInterface::on_pictureLoaded(SnapmaticPicture *picture, QString picturePath)
-{
- SnapmaticWidget *picWidget = new SnapmaticWidget(profileDB, threadDB);
- picWidget->setSnapmaticPicture(picture, picturePath);
- ui->vlSnapmatic->addWidget(picWidget);
- widgets.append(picWidget);
- pictures.append(picture);
- QObject::connect(picWidget, SIGNAL(pictureDeleted()), this, SLOT(on_pictureDeleted()));
-}
-
-void ProfileInterface::on_loadingProgress(int value, int maximum)
-{
- ui->pbPictureLoading->setMaximum(maximum);
- ui->pbPictureLoading->setValue(value);
- ui->labProfileLoading->setText(loadingStr.arg(QString::number(value), QString::number(maximum)));
-}
-
-void ProfileInterface::on_profileLoaded()
-{
- saSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
- ui->saProfileContent->layout()->addItem(saSpacerItem);
- ui->swProfile->setCurrentWidget(ui->pageProfile);
- ui->cmdCloseProfile->setEnabled(true);
- ui->cmdImport->setEnabled(true);
-}
-
-void ProfileInterface::on_savegameDeleted()
-{
- SavegameWidget *sgdWidget = (SavegameWidget*)sender();
- widgets.removeAll(sgdWidget);
- sgdWidget->deleteLater();
- delete sgdWidget;
-}
-
-void ProfileInterface::on_pictureDeleted()
-{
- SnapmaticWidget *picWidget = (SnapmaticWidget*)sender();
- widgets.removeAll(picWidget);
- picWidget->deleteLater();
- delete picWidget;
-}
-
-void ProfileInterface::on_cmdCloseProfile_clicked()
-{
- emit profileClosed();
-}
-
-void ProfileInterface::on_cmdImport_clicked()
-{
- QSettings settings("Syping", "gta5sync");
- settings.beginGroup("FileDialogs");
-
- QFileDialog fileDialog(this);
- fileDialog.setFileMode(QFileDialog::AnyFile);
- fileDialog.setViewMode(QFileDialog::Detail);
- fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
- fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
- fileDialog.setWindowTitle(tr("Import copy"));
- fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
-
- QStringList filters;
- filters << tr("All profile files (SGTA* PGTA*)");
- filters << tr("Savegames files (SGTA*)");
- filters << tr("Snapmatic pictures (PGTA*)");
- filters << tr("All files (**)");
- fileDialog.setNameFilters(filters);
-
- QList sidebarUrls = fileDialog.sidebarUrls();
- QDir dir;
-
- // Get Documents + Desktop Location
- QString documentsLocation = StandardPaths::documentsLocation();
- QString desktopLocation = StandardPaths::desktopLocation();
-
- // Add Desktop Location to Sidebar
- dir.setPath(desktopLocation);
- if (dir.exists())
- {
- sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
- }
-
- // Add Documents + GTA V Location to Sidebar
- dir.setPath(documentsLocation);
- if (dir.exists())
- {
- sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
- if (dir.cd("Rockstar Games/GTA V"))
- {
- sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
- }
- }
-
- fileDialog.setSidebarUrls(sidebarUrls);
- fileDialog.restoreState(settings.value("ImportCopy","").toByteArray());
-
-fileDialogPreOpen:
- if (fileDialog.exec())
- {
- QStringList selectedFiles = fileDialog.selectedFiles();
- if (selectedFiles.length() == 1)
- {
- QString selectedFile = selectedFiles.at(0);
- QFileInfo selectedFileInfo(selectedFile);
- QString selectedFileName = selectedFileInfo.fileName();
- if (QFile::exists(selectedFile))
- {
- if (selectedFileName.left(4) == "PGTA")
- {
- SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
- if (picture->readingPicture())
- {
- importSnapmaticPicture(picture, selectedFile);
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Snapmatic picture"));
- goto fileDialogPreOpen;
- }
- }
- else if (selectedFileName.left(4) == "SGTA")
- {
- SavegameData *savegame = new SavegameData(selectedFile);
- if (savegame->readingSavegame())
- {
- importSavegameData(savegame, selectedFile);
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Savegame file"));
- goto fileDialogPreOpen;
- }
- }
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
- goto fileDialogPreOpen;
- }
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
- goto fileDialogPreOpen;
- }
- }
-
- settings.setValue("ImportCopy", fileDialog.saveState());
- settings.endGroup();
-}
-
-bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString picPath)
-{
- QFileInfo picFileInfo(picPath);
- QString picFileName = picFileInfo.fileName();
- if (picFileName.left(4) != "PGTA")
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the file not begin with PGTA"));
- return false;
- }
- else if (QFile::copy(picPath, profileFolder + "/" + picFileName))
- {
- on_pictureLoaded(picture, profileFolder + "/" + picFileName);
- return true;
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the copy failed"));
- return false;
- }
-}
-
-bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPath)
-{
- QString sgdFileName;
- bool foundFree = 0;
- int currentSgd = 0;
-
- while (currentSgd < 15 && !foundFree)
- {
- QString sgdNumber = QString::number(currentSgd);
- if (sgdNumber.length() == 1)
- {
- sgdNumber.insert(0, "0");
- }
- sgdFileName = "SGTA00" + sgdNumber;
-
- if (!QFile::exists(profileFolder + "/" + sgdFileName))
- {
- foundFree = true;
- }
- currentSgd++;
- }
-
- if (foundFree)
- {
- if (QFile::copy(sgdPath, profileFolder + "/" + sgdFileName))
- {
- on_savegameLoaded(savegame, profileFolder + "/" + sgdFileName);
- return true;
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because the copy failed"));
- return false;
- }
- }
- else
- {
- QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because no free Savegame slot left"));
- return false;
- }
-}
+/*****************************************************************************
+* gta5sync GRAND THEFT AUTO V SYNC
+* Copyright (C) 2016 Syping
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see .
+*****************************************************************************/
+
+#include "ProfileInterface.h"
+#include "ui_ProfileInterface.h"
+#include "SnapmaticWidget.h"
+#include "DatabaseThread.h"
+#include "SavegameWidget.h"
+#include "StandardPaths.h"
+#include "ProfileLoader.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, DatabaseThread *threadDB, QWidget *parent) :
+ QWidget(parent), profileDB(profileDB), crewDB(crewDB), threadDB(threadDB),
+ ui(new Ui::ProfileInterface)
+{
+ ui->setupUi(this);
+ ui->cmdImport->setEnabled(false);
+ ui->cmdCloseProfile->setEnabled(false);
+ loadingStr = ui->labProfileLoading->text();
+ profileFolder = "";
+ profileLoader = 0;
+ saSpacerItem = 0;
+
+ QPalette palette;
+ QColor baseColor = palette.base().color();
+ ui->saProfile->setStyleSheet("QWidget#saProfileContent{background-color: rgb(" + QString::number(baseColor.red()) + "," + QString::number(baseColor.green()) + "," + QString::number(baseColor.blue()) + ")}");
+}
+
+ProfileInterface::~ProfileInterface()
+{
+ foreach(SavegameData *savegame, savegames)
+ {
+ savegame->deleteLater();
+ delete savegame;
+ }
+ foreach(SnapmaticPicture *picture, pictures)
+ {
+ pictures.removeAll(picture);
+ picture->deleteLater();
+ delete picture;
+ }
+ foreach(QWidget *widget, widgets)
+ {
+ widgets.removeAll(widget);
+ widget->deleteLater();
+ delete widget;
+ }
+ profileLoader->deleteLater();
+ delete profileLoader;
+ delete ui;
+}
+
+void ProfileInterface::setProfileFolder(QString folder, QString profile)
+{
+ profileFolder = folder;
+ profileName = profile;
+}
+
+void ProfileInterface::setupProfileInterface()
+{
+ ui->labProfileLoading->setText(tr("Loading..."));
+ profileLoader = new ProfileLoader(profileFolder, crewDB);
+ QObject::connect(profileLoader, SIGNAL(savegameLoaded(SavegameData*, QString)), this, SLOT(on_savegameLoaded(SavegameData*, QString)));
+ QObject::connect(profileLoader, SIGNAL(pictureLoaded(SnapmaticPicture*, QString)), this, SLOT(on_pictureLoaded(SnapmaticPicture*, QString)));
+ QObject::connect(profileLoader, SIGNAL(loadingProgress(int,int)), this, SLOT(on_loadingProgress(int,int)));
+ QObject::connect(profileLoader, SIGNAL(finished()), this, SLOT(on_profileLoaded()));
+ profileLoader->start();
+}
+
+void ProfileInterface::on_savegameLoaded(SavegameData *savegame, QString savegamePath)
+{
+ SavegameWidget *sgdWidget = new SavegameWidget();
+ sgdWidget->setSavegameData(savegame, savegamePath);
+ ui->vlSavegame->addWidget(sgdWidget);
+ widgets.append(sgdWidget);
+ savegames.append(savegame);
+ QObject::connect(sgdWidget, SIGNAL(savegameDeleted()), this, SLOT(on_savegameDeleted()));
+}
+
+void ProfileInterface::on_pictureLoaded(SnapmaticPicture *picture, QString picturePath)
+{
+ SnapmaticWidget *picWidget = new SnapmaticWidget(profileDB, threadDB);
+ picWidget->setSnapmaticPicture(picture, picturePath);
+ ui->vlSnapmatic->addWidget(picWidget);
+ widgets.append(picWidget);
+ pictures.append(picture);
+ QObject::connect(picWidget, SIGNAL(pictureDeleted()), this, SLOT(on_pictureDeleted()));
+}
+
+void ProfileInterface::on_loadingProgress(int value, int maximum)
+{
+ ui->pbPictureLoading->setMaximum(maximum);
+ ui->pbPictureLoading->setValue(value);
+ ui->labProfileLoading->setText(loadingStr.arg(QString::number(value), QString::number(maximum)));
+}
+
+void ProfileInterface::on_profileLoaded()
+{
+ saSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+ ui->saProfileContent->layout()->addItem(saSpacerItem);
+ ui->swProfile->setCurrentWidget(ui->pageProfile);
+ ui->cmdCloseProfile->setEnabled(true);
+ ui->cmdImport->setEnabled(true);
+}
+
+void ProfileInterface::on_savegameDeleted()
+{
+ SavegameWidget *sgdWidget = (SavegameWidget*)sender();
+ widgets.removeAll(sgdWidget);
+ sgdWidget->deleteLater();
+ delete sgdWidget;
+}
+
+void ProfileInterface::on_pictureDeleted()
+{
+ SnapmaticWidget *picWidget = (SnapmaticWidget*)sender();
+ widgets.removeAll(picWidget);
+ picWidget->deleteLater();
+ delete picWidget;
+}
+
+void ProfileInterface::on_cmdCloseProfile_clicked()
+{
+ emit profileClosed();
+}
+
+void ProfileInterface::on_cmdImport_clicked()
+{
+ QSettings settings("Syping", "gta5sync");
+ settings.beginGroup("FileDialogs");
+
+fileDialogPreOpen:
+ QFileDialog fileDialog(this);
+ fileDialog.setFileMode(QFileDialog::AnyFile);
+ fileDialog.setViewMode(QFileDialog::Detail);
+ fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
+ fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
+ fileDialog.setWindowTitle(tr("Import copy"));
+ fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
+
+ QStringList filters;
+ filters << tr("All profile files (SGTA* PGTA*)");
+ filters << tr("Savegames files (SGTA*)");
+ filters << tr("Snapmatic pictures (PGTA*)");
+ filters << tr("All files (**)");
+ fileDialog.setNameFilters(filters);
+
+ QList sidebarUrls = fileDialog.sidebarUrls();
+ QDir dir;
+
+ // Get Documents + Desktop Location
+ QString documentsLocation = StandardPaths::documentsLocation();
+ QString desktopLocation = StandardPaths::desktopLocation();
+
+ // Add Desktop Location to Sidebar
+ dir.setPath(desktopLocation);
+ if (dir.exists())
+ {
+ sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
+ }
+
+ // Add Documents + GTA V Location to Sidebar
+ dir.setPath(documentsLocation);
+ if (dir.exists())
+ {
+ sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
+ if (dir.cd("Rockstar Games/GTA V"))
+ {
+ sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
+ }
+ }
+
+ fileDialog.setSidebarUrls(sidebarUrls);
+ fileDialog.restoreState(settings.value("ImportCopy","").toByteArray());
+
+ if (fileDialog.exec())
+ {
+ QStringList selectedFiles = fileDialog.selectedFiles();
+ if (selectedFiles.length() == 1)
+ {
+ QString selectedFile = selectedFiles.at(0);
+ QFileInfo selectedFileInfo(selectedFile);
+ QString selectedFileName = selectedFileInfo.fileName();
+ if (QFile::exists(selectedFile))
+ {
+ if (selectedFileName.left(4) == "PGTA")
+ {
+ SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
+ if (picture->readingPicture())
+ {
+ importSnapmaticPicture(picture, selectedFile);
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Snapmatic picture"));
+ picture->deleteLater();
+ delete picture;
+ goto fileDialogPreOpen;
+ }
+ }
+ else if (selectedFileName.left(4) == "SGTA")
+ {
+ SavegameData *savegame = new SavegameData(selectedFile);
+ if (savegame->readingSavegame())
+ {
+ importSavegameData(savegame, selectedFile);
+ }
+ else
+ {
+ 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;
+ }
+ }
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
+ goto fileDialogPreOpen;
+ }
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
+ goto fileDialogPreOpen;
+ }
+ }
+
+ settings.setValue("ImportCopy", fileDialog.saveState());
+ settings.endGroup();
+}
+
+bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString picPath)
+{
+ QFileInfo picFileInfo(picPath);
+ QString picFileName = picFileInfo.fileName();
+ if (picFileName.left(4) != "PGTA")
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the file not begin with PGTA"));
+ return false;
+ }
+ else if (QFile::copy(picPath, profileFolder + "/" + picFileName))
+ {
+ on_pictureLoaded(picture, profileFolder + "/" + picFileName);
+ return true;
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the copy failed"));
+ return false;
+ }
+}
+
+bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPath)
+{
+ QString sgdFileName;
+ bool foundFree = 0;
+ int currentSgd = 0;
+
+ while (currentSgd < 15 && !foundFree)
+ {
+ QString sgdNumber = QString::number(currentSgd);
+ if (sgdNumber.length() == 1)
+ {
+ sgdNumber.insert(0, "0");
+ }
+ sgdFileName = "SGTA500" + sgdNumber;
+
+ if (!QFile::exists(profileFolder + "/" + sgdFileName))
+ {
+ foundFree = true;
+ }
+ currentSgd++;
+ }
+
+ if (foundFree)
+ {
+ if (QFile::copy(sgdPath, profileFolder + "/" + sgdFileName))
+ {
+ on_savegameLoaded(savegame, profileFolder + "/" + sgdFileName);
+ return true;
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because the copy failed"));
+ return false;
+ }
+ }
+ else
+ {
+ QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because no free Savegame slot left"));
+ return false;
+ }
+}
diff --git a/SavegameWidget.cpp b/SavegameWidget.cpp
index 58886c6..ca1066f 100755
--- a/SavegameWidget.cpp
+++ b/SavegameWidget.cpp
@@ -75,7 +75,8 @@ void SavegameWidget::on_cmdCopy_clicked()
QSettings settings("Syping", "gta5sync");
settings.beginGroup("FileDialogs");
- QFileInfo fileInfo(sgdPath);
+fileDialogPreSave:
+ QFileInfo sgdFileInfo(sgdPath);
QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setViewMode(QFileDialog::Detail);
@@ -118,8 +119,8 @@ void SavegameWidget::on_cmdCopy_clicked()
fileDialog.setSidebarUrls(sidebarUrls);
fileDialog.restoreState(settings.value("CopySavegame","").toByteArray());
+ fileDialog.selectFile(sgdFileInfo.fileName());
-fileDialogPreSave:
if (fileDialog.exec())
{
QStringList selectedFiles = fileDialog.selectedFiles();