diff --git a/AboutDialog.cpp b/AboutDialog.cpp
index 96d48cc..1fd6e0d 100755
--- a/AboutDialog.cpp
+++ b/AboutDialog.cpp
@@ -24,7 +24,6 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui(new Ui::AboutDialog)
{
ui->setupUi(this);
- this->setWindowIcon(QIcon(":/img/5sync.png"));
aboutStr = ui->labAbout->text();
ui->labAbout->setText(aboutStr.arg(qApp->applicationVersion(), QT_VERSION_STR, qVersion()));
}
diff --git a/AboutDialog.ui b/AboutDialog.ui
index 7191660..6712b60 100755
--- a/AboutDialog.ui
+++ b/AboutDialog.ui
@@ -56,7 +56,7 @@
-
- <span style=" font-weight:600;">gta5sync</span><br/><br/>A project for viewing and sync Grand Theft Auto 5 Snapmatic Pictures and Savegames<br/><br/>Project version: %1<br/>Compiled with Qt %2<br/>Running with Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
+ <span style=" font-weight:600;">gta5sync</span><br/><br/>A project for viewing and sync Grand Theft Auto 5 Snapmatic Pictures and Savegames<br/><br/>Project version: %1<br/>Compiled with Qt %2<br/>Running with Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
true
diff --git a/SavegameCopy.cpp b/SavegameCopy.cpp
new file mode 100755
index 0000000..59bde7b
--- /dev/null
+++ b/SavegameCopy.cpp
@@ -0,0 +1,98 @@
+/*****************************************************************************
+* 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 "SidebarGenerator.h"
+#include "SavegameWidget.h"
+#include "SavegameCopy.h"
+#include
+#include
+#include
+
+SavegameCopy::SavegameCopy()
+{
+
+}
+
+void SavegameCopy::CopySavegame(QWidget *parent, QString sgdPath)
+{
+ QSettings settings("Syping", "gta5sync");
+ settings.beginGroup("FileDialogs");
+
+fileDialogPreSave:
+ QFileInfo sgdFileInfo(sgdPath);
+ QFileDialog fileDialog(parent);
+ fileDialog.setFileMode(QFileDialog::AnyFile);
+ fileDialog.setViewMode(QFileDialog::Detail);
+ fileDialog.setAcceptMode(QFileDialog::AcceptSave);
+ fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
+ fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true);
+ fileDialog.setDefaultSuffix("");
+ fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
+ fileDialog.setWindowTitle(SavegameWidget::tr(("Copy savegame")));
+
+ QStringList filters;
+ filters << SavegameWidget::tr("Savegame files (SGTA*)");
+ filters << SavegameWidget::tr("All files (**)");
+ fileDialog.setNameFilters(filters);
+
+ QList sidebarUrls = SidebarGenerator::generateSidebarUrls(fileDialog.sidebarUrls());
+
+ fileDialog.setSidebarUrls(sidebarUrls);
+ fileDialog.restoreState(settings.value("CopySavegame","").toByteArray());
+ fileDialog.selectFile(sgdFileInfo.fileName());
+
+ if (fileDialog.exec())
+ {
+ QStringList selectedFiles = fileDialog.selectedFiles();
+ if (selectedFiles.length() == 1)
+ {
+ QString selectedFile = selectedFiles.at(0);
+
+ if (QFile::exists(selectedFile))
+ {
+ if (QMessageBox::Yes == QMessageBox::warning(parent, SavegameWidget::tr("Copy savegame"), SavegameWidget::tr("Overwrite %1 with current savegame?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes))
+ {
+ if (!QFile::remove(selectedFile))
+ {
+ QMessageBox::warning(parent, SavegameWidget::tr("Copy savegame"), SavegameWidget::tr("Failed to overwrite %1 with current savegame").arg("\""+selectedFile+"\""));
+ goto fileDialogPreSave;
+ }
+ }
+ else
+ {
+ goto fileDialogPreSave;
+ }
+ }
+
+ bool isCopied = QFile::copy(sgdPath, selectedFile);
+ if (!isCopied)
+ {
+ QMessageBox::warning(parent, SavegameWidget::tr("Copy savegame"), SavegameWidget::tr("Failed to copy current savegame"));
+ goto fileDialogPreSave;
+ }
+ }
+ else
+ {
+ QMessageBox::warning(parent, SavegameWidget::tr("Copy savegame"), SavegameWidget::tr("No valid file is selected"));
+ goto fileDialogPreSave;
+ }
+ }
+
+ settings.setValue("CopySavegame", fileDialog.saveState());
+ settings.endGroup();
+}
diff --git a/SavegameCopy.h b/SavegameCopy.h
new file mode 100755
index 0000000..68decee
--- /dev/null
+++ b/SavegameCopy.h
@@ -0,0 +1,31 @@
+/*****************************************************************************
+* 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 .
+*****************************************************************************/
+
+#ifndef SAVEGAMECOPY_H
+#define SAVEGAMECOPY_H
+
+#include
+
+class SavegameCopy
+{
+public:
+ SavegameCopy();
+ static void CopySavegame(QWidget *parent, QString sgdPath);
+};
+
+#endif // SAVEGAMECOPY_H
diff --git a/SavegameDialog.cpp b/SavegameDialog.cpp
index 6e75c26..213214d 100755
--- a/SavegameDialog.cpp
+++ b/SavegameDialog.cpp
@@ -1,6 +1,6 @@
#include "SavegameDialog.h"
#include "ui_SavegameDialog.h"
-
+#include "SavegameCopy.h"
#include
SavegameDialog::SavegameDialog(QWidget *parent) :
@@ -16,7 +16,7 @@ SavegameDialog::~SavegameDialog()
delete ui;
}
-void SavegameDialog::setSavegameData(SavegameData *savegame, bool readOk)
+void SavegameDialog::setSavegameData(SavegameData *savegame, QString savegamePath, bool readOk)
{
// Showing error if reading error
if (!readOk)
@@ -24,7 +24,7 @@ void SavegameDialog::setSavegameData(SavegameData *savegame, bool readOk)
QMessageBox::warning(this,tr("Savegame Viewer"),tr("Failed at %1").arg(savegame->getLastStep()));
return;
}
-
+ sgdPath = savegamePath;
ui->labSavegameText->setText(savegameLabStr.arg(savegame->getSavegameStr()));
}
@@ -32,3 +32,8 @@ void SavegameDialog::on_cmdClose_clicked()
{
this->close();
}
+
+void SavegameDialog::on_cmdCopy_clicked()
+{
+ SavegameCopy::CopySavegame(this, sgdPath);
+}
diff --git a/SavegameDialog.h b/SavegameDialog.h
index deec5e1..0b3a900 100755
--- a/SavegameDialog.h
+++ b/SavegameDialog.h
@@ -13,15 +13,17 @@ class SavegameDialog : public QDialog
Q_OBJECT
public:
explicit SavegameDialog(QWidget *parent = 0);
- void setSavegameData(SavegameData *savegame, bool readOk);
+ void setSavegameData(SavegameData *savegame, QString sgdPath, bool readOk);
~SavegameDialog();
private slots:
void on_cmdClose_clicked();
+ void on_cmdCopy_clicked();
private:
Ui::SavegameDialog *ui;
QString savegameLabStr;
+ QString sgdPath;
};
#endif // SAVEGAMEDIALOG_H
diff --git a/SavegameDialog.ui b/SavegameDialog.ui
index 162025d..cb8fd60 100755
--- a/SavegameDialog.ui
+++ b/SavegameDialog.ui
@@ -52,6 +52,13 @@
+ -
+
+
+ Copy
+
+
+
-
diff --git a/SavegameWidget.cpp b/SavegameWidget.cpp
index 7587cc5..f02b30a 100755
--- a/SavegameWidget.cpp
+++ b/SavegameWidget.cpp
@@ -19,8 +19,10 @@
#include "SavegameWidget.h"
#include "ui_SavegameWidget.h"
#include "SidebarGenerator.h"
+#include "SavegameDialog.h"
#include "StandardPaths.h"
#include "SavegameData.h"
+#include "SavegameCopy.h"
#include
#include
#include
@@ -51,6 +53,11 @@ void SavegameWidget::setSavegameData(SavegameData *savegame, QString savegamePat
sgdata = savegame;
}
+void SavegameWidget::on_cmdCopy_clicked()
+{
+ SavegameCopy::CopySavegame(this, sgdPath);
+}
+
void SavegameWidget::on_cmdDelete_clicked()
{
int uchoice = QMessageBox::question(this, tr("Delete savegame"), tr("Are you sure to delete %1 from your savegames?").arg("\""+sgdStr+"\""), QMessageBox::No | QMessageBox::Yes, QMessageBox::No);
@@ -71,71 +78,16 @@ void SavegameWidget::on_cmdDelete_clicked()
}
}
-void SavegameWidget::on_cmdCopy_clicked()
+void SavegameWidget::mouseDoubleClickEvent(QMouseEvent *ev)
{
- QSettings settings("Syping", "gta5sync");
- settings.beginGroup("FileDialogs");
+ QWidget::mouseDoubleClickEvent(ev);
-fileDialogPreSave:
- QFileInfo sgdFileInfo(sgdPath);
- QFileDialog fileDialog(this);
- fileDialog.setFileMode(QFileDialog::AnyFile);
- fileDialog.setViewMode(QFileDialog::Detail);
- fileDialog.setAcceptMode(QFileDialog::AcceptSave);
- fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
- fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true);
- fileDialog.setDefaultSuffix("");
- fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
- fileDialog.setWindowTitle(tr("Copy savegame"));
-
- QStringList filters;
- filters << tr("Savegame files (SGTA*)");
- filters << tr("All files (**)");
- fileDialog.setNameFilters(filters);
-
- QList sidebarUrls = SidebarGenerator::generateSidebarUrls(fileDialog.sidebarUrls());
-
- fileDialog.setSidebarUrls(sidebarUrls);
- fileDialog.restoreState(settings.value("CopySavegame","").toByteArray());
- fileDialog.selectFile(sgdFileInfo.fileName());
-
- if (fileDialog.exec())
- {
- QStringList selectedFiles = fileDialog.selectedFiles();
- if (selectedFiles.length() == 1)
- {
- QString selectedFile = selectedFiles.at(0);
-
- if (QFile::exists(selectedFile))
- {
- if (QMessageBox::Yes == QMessageBox::warning(this, tr("Copy savegame"), tr("Overwrite %1 with current savegame?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes))
- {
- if (!QFile::remove(selectedFile))
- {
- QMessageBox::warning(this, tr("Copy savegame"), tr("Failed to overwrite %1 with current savegame").arg("\""+selectedFile+"\""));
- goto fileDialogPreSave;
- }
- }
- else
- {
- goto fileDialogPreSave;
- }
- }
-
- bool isCopied = QFile::copy(sgdPath, selectedFile);
- if (!isCopied)
- {
- QMessageBox::warning(this, tr("Copy savegame"), tr("Failed to copy current savegame"));
- goto fileDialogPreSave;
- }
- }
- else
- {
- QMessageBox::warning(this, tr("Copy savegame"), tr("No valid file is selected"));
- goto fileDialogPreSave;
- }
- }
-
- settings.setValue("CopySavegame", fileDialog.saveState());
- settings.endGroup();
+ SavegameDialog *savegameDialog = new SavegameDialog(this);
+ savegameDialog->setWindowFlags(savegameDialog->windowFlags()^Qt::WindowContextHelpButtonHint);
+ savegameDialog->setSavegameData(sgdata, sgdPath, true);
+ savegameDialog->setModal(true);
+ savegameDialog->show();
+ savegameDialog->exec();
+ savegameDialog->deleteLater();
+ delete savegameDialog;
}
diff --git a/SavegameWidget.h b/SavegameWidget.h
index 2a232e0..60dc5cd 100755
--- a/SavegameWidget.h
+++ b/SavegameWidget.h
@@ -39,6 +39,9 @@ private slots:
void on_cmdDelete_clicked();
void on_cmdCopy_clicked();
+protected:
+ void mouseDoubleClickEvent(QMouseEvent *ev);
+
private:
Ui::SavegameWidget *ui;
SavegameData *sgdata;
diff --git a/UserInterface.cpp b/UserInterface.cpp
index cf93908..c649470 100755
--- a/UserInterface.cpp
+++ b/UserInterface.cpp
@@ -176,8 +176,8 @@ void UserInterface::openSelectProfile()
void UserInterface::on_actionAbout_gta5sync_triggered()
{
AboutDialog *aboutDialog = new AboutDialog(this);
- aboutDialog->setWindowIcon(this->windowIcon());
aboutDialog->setWindowFlags(aboutDialog->windowFlags()^Qt::WindowContextHelpButtonHint);
+ aboutDialog->setModal(true);
aboutDialog->show();
aboutDialog->exec();
aboutDialog->deleteLater();
diff --git a/gta5sync.pro b/gta5sync.pro
index 50a4df8..1f8c675 100755
--- a/gta5sync.pro
+++ b/gta5sync.pro
@@ -32,6 +32,7 @@ SOURCES += main.cpp \
ProfileDatabase.cpp \
ProfileInterface.cpp \
ProfileLoader.cpp \
+ SavegameCopy.cpp \
SavegameData.cpp \
SavegameDialog.cpp \
SavegameWidget.cpp \
@@ -52,6 +53,7 @@ HEADERS += \
ProfileDatabase.h \
ProfileInterface.h \
ProfileLoader.h \
+ SavegameCopy.h \
SavegameData.h \
SavegameDialog.h \
SavegameWidget.h \
@@ -74,7 +76,7 @@ FORMS += \
TRANSLATIONS += \
res/gta5sync_de.ts \
- res/lang/gta5sync_ru.ts
+ lang/gta5sync_ru.ts
RESOURCES += \
res/app.qrc
diff --git a/lang/gta5sync_ru.ts b/lang/gta5sync_ru.ts
index 88fb184..ef11abd 100755
--- a/lang/gta5sync_ru.ts
+++ b/lang/gta5sync_ru.ts
@@ -9,15 +9,19 @@
О программе gta5sync
-
- <span style=" font-weight:600;">gta5sync</span><br/><br/>Проект для просмотра и синхронизации фотографий Snapmatic и сохранений от Grand Theft Auto 5<br/><br/>Версия проекта: %1<br/>Скомпилировано с Qt %2<br/>Работает на Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync лицензирован по <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
+ <span style=" font-weight:600;">gta5sync</span><br/><br/>Проект для просмотра и синхронизации фотографий Snapmatic и сохранений от Grand Theft Auto 5<br/><br/>Версия проекта: %1<br/>Скомпилировано с Qt %2<br/>Работает на Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync лицензирован по <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
Закрыть
+
+
+
+
+
PictureDialog
@@ -27,7 +31,7 @@
%1 - Просмотрщик фотографий Snapmatic
-
+
-
-
-
-
-
-
+
+
+
+
+
+
Экспорт картинки
-
+
Экспорт
-
+
Копировать
-
-
+
+
Закрыть
-
-
+
+
Просмотрщик фотографий Snapmatic
-
-
+
+
Ошибка при %1
-
-
+
+
Игроков нет
-
-
+
+
Без группы
-
+
Картинка JPEG (*.jpg)
-
+
Картинка Portable Network Graphics (*.png)
-
-
+
+
Перезаписать %1 текущей картинкой Snapmatic?
-
-
+
+
Не удалось перезаписать %1 картинкой Snapmatic
-
+
Не удалось экспортировать текущую картинку Snapmatic
-
-
+
+
Выбранный файл неверен
-
-
-
-
-
+
+
+
+
+
Скопировать картинку
-
+
Картинки Snapmatic (PGTA*)
-
+
Все файлы (**)
-
+
Не удалось скопировать текущую картинку Snapmatic
@@ -259,6 +263,11 @@
+
+ Копировать
+
+
+
Закрыть
@@ -291,57 +300,56 @@
Удалить
-
-
+
+
Удалить сохранение
-
+
Вы уверены, что хотите удалить сохранение %1?
-
+
Не удалось удалить сохранение %1
-
-
-
-
-
+
+
+
+
Копировать сохранение
-
+
Файлы сохранений (SGTA*)
-
+
Все файлы (**)
-
+
Перезаписать %1 текущим сохранением?
-
+
Не удалось перезаписать %1 текущим сохранением
-
+
Не удалось скопировать текущее сохранение
-
+
Выбранный файл неверен
diff --git a/main.cpp b/main.cpp
index cf8f7dd..71583eb 100755
--- a/main.cpp
+++ b/main.cpp
@@ -411,7 +411,7 @@ int main(int argc, char *argv[])
bool readOk = savegame.readingSavegameFromFile(arg1);
savegameDialog->setWindowFlags(savegameDialog->windowFlags()^Qt::WindowContextHelpButtonHint);
savegameDialog->setWindowIcon(IconLoader::loadingAppIcon());
- savegameDialog->setSavegameData(&savegame, readOk);
+ savegameDialog->setSavegameData(&savegame, arg1, readOk);
if (!readOk) { return 1; }
diff --git a/res/gta5sync_de.qm b/res/gta5sync_de.qm
index db2baff..e333aa4 100755
Binary files a/res/gta5sync_de.qm and b/res/gta5sync_de.qm differ
diff --git a/res/gta5sync_de.ts b/res/gta5sync_de.ts
index 9f56ab5..fd0261c 100755
--- a/res/gta5sync_de.ts
+++ b/res/gta5sync_de.ts
@@ -8,16 +8,24 @@
Über gta5sync
-
-
+
+
+ Generiert von der Klasse
+
+
- <span style=" font-weight:600;">gta5sync</span><br/><br/>Ein Projekt zum ansehen und synchronisieren von Grand Theft Auto 5 Snapmatic Bilder und Spielständen<br/><br/>Projektversion: %1<br/>Gebaut mit Qt %2<br/>Läuft auf Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync is lizenziert unter <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
+ <span style=" font-weight:600;">gta5sync</span><br/><br/>Ein Projekt zum ansehen und synchronisieren von Grand Theft Auto 5 Snapmatic Bilder und Spielständen<br/><br/>Projektversion: %1<br/>Gebaut mit Qt %2<br/>Läuft auf Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync is lizenziert unter <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
Schließen
+
+
+
+ <span style=" font-weight:600;">gta5sync</span><br/><br/>Ein Projekt zum ansehen und synchronisieren von Grand Theft Auto 5 Snapmatic Bilder und Spielständen<br/><br/>Projektversion: %1<br/>Gebaut mit Qt %2<br/>Läuft auf Qt %3<br/><br/>Copyright © <a href="https://github.com/Syping/">Syping</a> 2016<br/>gta5sync is lizenziert unter <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a>
+
PictureDialog
@@ -41,7 +49,7 @@
<span style=" font-weight:600;">Crew ID: </span>%5
-
+
-
+
Exportieren
-
+
Kopieren
-
-
+
+
Schließen
-
-
+
+
Snapmatic Bildansicht
-
-
+
+
Fehlgeschlagen bei %1
-
-
+
+
Keine Spieler
-
-
+
+
Keine Crew
-
+
JPEG Bild (*.jpg)
-
+
Portable Network Graphics (*.png)
-
-
+
+
Überschreibe %1 mit aktuellen Snapmatic Bild?
-
-
+
+
Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild
-
+
Fehlgeschlagen beim Exportieren vom aktuellen Snapmatic Bild
-
-
-
-
-
+
+
+
+
+
Bild kopieren
-
+
Snapmatic Bilder (PGTA*)
-
+
Alle Dateien (**)
-
+
Fehlgeschlagen beim Kopieren vom Snapmatic Bild
@@ -151,12 +159,12 @@
JPEG Bild (*.jpg);;Portable Network Graphics (*.png)
-
-
-
-
-
-
+
+
+
+
+
+
Bild exportieren
@@ -169,8 +177,8 @@
Beim Speichern des Bildes ist ein Fehler aufgetreten
-
-
+
+
Keine gültige Datei wurde ausgewählt
@@ -298,6 +306,11 @@
+
+ Kopieren
+
+
+
Schließen
@@ -330,52 +343,51 @@
Löschen
-
-
+
+
Savegame löschen
-
+
Bist du sicher %1 von deinen Spielständen zu löschen?
-
+
Fehlgeschlagen beim Löschen %1 von deinen Spielständen
-
-
-
-
-
+
+
+
+
Spielstand kopieren
-
+
Spielstanddateien (SGTA*)
-
+
Alle Dateien (**)
-
+
Überschreibe %1 mit aktuellen Spielstand?
-
+
Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Spielstand
-
+
Fehlgeschlagen beim Kopieren vom Spielstand
@@ -384,7 +396,7 @@
Beim Kopieren vom Spielstand ist ein Fehler aufgetreten
-
+
Keine gültige Datei wurde ausgewählt