Compare commits

...

6 commits

Author SHA1 Message Date
20de3627d5
fix manifest release year
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-15 09:19:24 +01:00
Syping
13b6d614fc gta5view 1.10.2 release
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
- fix crash bug and upload issue
2023-03-15 07:10:50 +01:00
Syping
d7b28c2468 fix Content Mode options and few other changes
All checks were successful
continuous-integration/drone/push Build is passing
- fix setupRadioButtons (Content Mode options)
- update integrated qtbase_de.qm from Qt 6.4
- bump copyright year and some version numbers (again)
2022-12-25 22:11:51 +01:00
Syping
5e6c4e6ad1 fix Qt 6.4 build and few other changes
All checks were successful
continuous-integration/drone/push Build is passing
- include QStringEncoder and QStringDecoder for Qt 6.4
- update integrated qtbase_de.qm from Qt 6.3
- fix macOS theme detection on Qt 6
- bump copyright year and some version numbers
- remove ZEC donation
- rework README.md
2022-08-21 21:39:19 +02:00
Syping
3cd6cc903d gta5view 1.10.1 release
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2021-06-17 06:14:35 +02:00
Syping
c42cc1dc26 Add Korean strings for Desktop and Metainfo files
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-28 15:21:07 +02:00
31 changed files with 784 additions and 733 deletions

View file

@ -24,7 +24,7 @@ BEGIN
VALUE "FileDescription", "gta5view"
VALUE "FileVersion", "MAJOR_VER.MINOR_VER.PATCH_VERSTR_BUILD_VER"
VALUE "InternalName", "gta5view"
VALUE "LegalCopyright", "Copyright © 2016-2021 Syping"
VALUE "LegalCopyright", "Copyright © 2016-2023 Syping"
VALUE "OriginalFilename", "gta5view.exe"
VALUE "ProductName", "gta5view"
VALUE "ProductVersion", "MAJOR_VER.MINOR_VER.PATCH_VERSTR_BUILD_VER"

View file

@ -1 +1 @@
btc:187NSQSPzdMpQDGhxZAuw4AhZ7LgoAPV7D,eth:0x19d71DfCa86104d37a13D3c5d419936421CDC569,ltc:LKr6yvBoMMGmcxViS8Kc1A2sDjVSWTXn4m,xmr:43TB3ZMP5nk1pu5EQXRGPzdTKvmFEBGgccX3tNhRknLLiUYQ7z7dNedVHEA6WrWdByZv1isvFmjSGhCF7ddx3eRxFdm5Fzz,zec:t1SpfDKj6qGZFwyRdzJBw9w2PTj8rUixZGh
btc:187NSQSPzdMpQDGhxZAuw4AhZ7LgoAPV7D,eth:0x19d71DfCa86104d37a13D3c5d419936421CDC569,ltc:LKr6yvBoMMGmcxViS8Kc1A2sDjVSWTXn4m,xmr:43TB3ZMP5nk1pu5EQXRGPzdTKvmFEBGgccX3tNhRknLLiUYQ7z7dNedVHEA6WrWdByZv1isvFmjSGhCF7ddx3eRxFdm5Fzz

View file

@ -4,8 +4,8 @@
!define APP_EXT ".g5e"
!define COMP_NAME "Syping"
!define WEB_SITE "https://gta5view.syping.de/"
!define VERSION "1.10.0.0"
!define COPYRIGHT "Copyright © 2016-2021 Syping"
!define VERSION "1.10.2.0"
!define COPYRIGHT "Copyright © 2016-2022 Syping"
!define DESCRIPTION "Open Source Snapmatic and Savegame viewer/editor for GTA V"
!define INSTALLER_NAME "gta5view_setup.exe"
!define MAIN_APP_EXE "gta5view.exe"

View file

@ -1,6 +1,6 @@
app-id: de.syping.gta5view
runtime: org.kde.Platform
runtime-version: '5.15'
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
command: gta5view
finish-args:

View file

@ -5,7 +5,7 @@ language: cpp
services:
- docker
env:
global:
- BUILD_TYPE=REL
@ -22,22 +22,12 @@ matrix:
- BUILD_SCRIPT=windows_docker.sh
- QT_SELECT=qt5-x86_64-w64-mingw32
- RELEASE_LABEL="Windows 64-Bit Portable"
- env:
- BUILD_SCRIPT=windows_docker.sh
- QT_SELECT=qt5-x86_64-w64-mingw32
- RELEASE_LABEL="Windows 64-Bit Portable for gta5-mods"
- PACKAGE_CODE=gta5-mods
- env:
- BUILD_SCRIPT=windows_docker.sh
- QT_SELECT=qt5-x86_64-w64-mingw32
- RELEASE_LABEL="Windows 64-Bit Portable for gtainside"
- PACKAGE_CODE=gtainside
- env:
- BUILD_SCRIPT=wininstall_docker.sh
- QT_SELECT=qt5-x86_64-w64-mingw32
- RELEASE_LABEL="Windows 64-Bit Installer"
- os: osx
osx_image: xcode10.3
osx_image: xcode14.2
env:
- BUILD_SCRIPT=osx_ci.sh
- RELEASE_LABEL="Mac OS X 64-Bit Disk Image"

View file

@ -38,7 +38,7 @@ if(APPLE)
res/gta5view.icns
)
set(MACOSX_BUNDLE_BUNDLE_NAME gta5view)
set(MACOSX_BUNDLE_BUNDLE_VERSION 1.10.0)
set(MACOSX_BUNDLE_BUNDLE_VERSION 1.10.2)
set(MACOSX_BUNDLE_ICON_FILE gta5view.icns)
set(MACOSX_BUNDLE_GUI_IDENTIFIER de.syping.gta5view)
set_source_files_properties(res/gta5view.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")

View file

@ -1,6 +1,6 @@
/*****************************************************************************
* gta5view Grand Theft Auto V Profile Viewer
* Copyright (C) 2017-2021 Syping
* Copyright (C) 2017-2022 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
@ -111,8 +111,12 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) :
ui->vlButtom->setSpacing(6 * screenRatio);
#ifndef Q_OS_MAC
ui->vlButtom->setContentsMargins(9 * screenRatio, 6 * screenRatio, 9 * screenRatio, 9 * screenRatio);
#else
#if QT_VERSION >= 0x060000
if (QApplication::style()->objectName() == "macos") {
#else
if (QApplication::style()->objectName() == "macintosh") {
#endif
ui->vlButtom->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio);
}
else {

View file

@ -282,6 +282,7 @@ void OptionsDialog::setupRadioButtons()
case 0:
case 20:
ui->rbModern->setChecked(true);
ui->cbDoubleclick->setChecked(false);
break;
case 1:
case 2:
@ -291,11 +292,12 @@ void OptionsDialog::setupRadioButtons()
break;
case 10:
ui->rbClassic->setChecked(true);
#if QT_VERSION >= 0x050800
Q_FALLTHROUGH();
#endif
ui->cbDoubleclick->setChecked(false);
break;
case 11:
ui->rbClassic->setChecked(true);
ui->cbDoubleclick->setChecked(true);
break;
}
}
}

View file

@ -839,7 +839,7 @@ void PictureDialog::editSnapmaticImage()
importDialog->exec();
if (importDialog->isImportAgreed()) {
const QByteArray previousPicture = smpic->getPictureStream();
bool success = smpic->setImage(importDialog->image());
bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer());
if (success) {
QString currentFilePath = smpic->getPictureFilePath();
QString originalFilePath = smpic->getOriginalPictureFilePath();

View file

@ -1,6 +1,6 @@
/*****************************************************************************
* gta5view Grand Theft Auto V Profile Viewer
* Copyright (C) 2016-2021 Syping
* Copyright (C) 2016-2022 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
@ -124,8 +124,12 @@ ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *cre
#ifndef Q_OS_MAC
ui->hlButtons->setSpacing(6 * screenRatio);
ui->hlButtons->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio);
#else
#if QT_VERSION >= 0x060000
if (QApplication::style()->objectName() == "macos") {
#else
if (QApplication::style()->objectName() == "macintosh") {
#endif
ui->hlButtons->setSpacing(6 * screenRatio);
ui->hlButtons->setContentsMargins(9 * screenRatio, 15 * screenRatio, 15 * screenRatio, 17 * screenRatio);
}
@ -283,8 +287,16 @@ void ProfileInterface::directoryChanged(const QString &path)
}
if (fileName.startsWith("PGTA5") && !fileName.endsWith(".bak")) {
t_snapmaticPics << fileName;
if (!snapmaticPics.contains(fileName)) {
n_snapmaticPics << fileName;
if (fileName.endsWith(".hidden")) {
const QString originalFileName = fileName.left(fileName.length() - 7);
if (!snapmaticPics.contains(fileName) && !snapmaticPics.contains(originalFileName)) {
n_snapmaticPics << fileName;
}
}
else {
if (!snapmaticPics.contains(fileName) && !snapmaticPics.contains(fileName % ".hidden")) {
n_snapmaticPics << fileName;
}
}
}
}
@ -1554,7 +1566,11 @@ void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged)
#ifdef Q_OS_MAC
// DPI calculation
qreal screenRatio = AppEnv::screenRatio();
#if QT_VERSION >= 0x060000
if (QApplication::style()->objectName() == "macos") {
#else
if (QApplication::style()->objectName() == "macintosh") {
#endif
ui->hlButtons->setSpacing(6 * screenRatio);
ui->hlButtons->setContentsMargins(9 * screenRatio, 15 * screenRatio, 15 * screenRatio, 17 * screenRatio);
}
@ -1792,12 +1808,11 @@ void ProfileInterface::on_saProfileContent_dropped(const QMimeData *mimeData)
void ProfileInterface::retranslateUi()
{
ui->retranslateUi(this);
QString appVersion = GTA5SYNC_APPVER;
#ifndef GTA5SYNC_BUILDTYPE_REL
QString appVersion = QApplication::applicationVersion();
const char* literalBuildType = GTA5SYNC_BUILDTYPE;
#ifdef GTA5SYNC_COMMIT
if (!appVersion.contains("-"))
if ((strcmp(literalBuildType, REL_BUILDTYPE) != 0) && !appVersion.contains("-"))
appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
#endif
#endif
ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
}

View file

@ -14,36 +14,32 @@ Open Source Snapmatic and Savegame viewer/editor for GTA V
#### Build gta5view for Windows
# Note: Install Docker Community Edition and Git before continuing
git clone https://gitlab.com/Syping/gta5view && cd gta5view
docker pull sypingauto/gta5view-build:1.10-static
docker run --rm -v ${PWD}:/gta5view -it sypingauto/gta5view-build:1.10-static
cd /gta5view && mkdir -p build && cd build
mingw64-qt-cmake ../
make -j $(nproc --all)
git clone https://gitlab.com/Syping/gta5view
docker run --rm -v "$PWD/gta5view:/gta5view" -it sypingauto/gta5view-build:1.10-static
mingw64-qt-cmake -B /gta5view/build /gta5view
cmake --build /gta5view/build
#### Build gta5view for Debian/Ubuntu
sudo apt-get install cmake git gcc g++ libqt5svg5-dev make qtbase5-dev qttranslations5-l10n
git clone https://gitlab.com/Syping/gta5view && cd gta5view
mkdir -p build && cd build
cmake ../
make -j $(nproc --all)
sudo make install
git clone https://gitlab.com/Syping/gta5view
cmake -B gta5view-build gta5view
cmake --build gta5view-build
sudo cmake --install gta5view-build
#### Build gta5view for Arch/Manjaro
sudo pacman -S cmake gcc git make qt5-base qt5-svg qt5-tools qt5-translations
git clone https://gitlab.com/Syping/gta5view && cd gta5view
mkdir -p build && cd build
cmake ../
make -j $(nproc --all)
sudo make install
git clone https://gitlab.com/Syping/gta5view
cmake -B gta5view-build gta5view
cmake --build gta5view-build
sudo cmake --install gta5view-build
#### Build gta5view for Fedora
#### Build gta5view for Fedora/RHEL
sudo dnf install cmake git gcc gcc-c++ make qt5-qtbase-devel qt5-qtsvg-devel qt5-qttranslations
git clone https://gitlab.com/Syping/gta5view && cd gta5view
mkdir -p build && cd build
cmake ../
make -j $(nproc --all)
sudo make install
git clone https://gitlab.com/Syping/gta5view
cmake -B gta5view-build gta5view
cmake --build gta5view-build
sudo cmake --install gta5view-build

View file

@ -1,6 +1,6 @@
/*****************************************************************************
* gta5view Grand Theft Auto V Profile Viewer
* Copyright (C) 2020-2021 Syping
* Copyright (C) 2020-2022 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
@ -22,12 +22,29 @@
#include <QFile>
#if QT_VERSION < 0x060000
#include <QTextCodec>
#else
#include <QStringEncoder>
#include <QStringDecoder>
#endif
#ifdef RAGEPHOTO_BENCHMARK
#include <QFileInfo>
#include <chrono>
#endif
inline quint32 joaatFromSI(const char *data, size_t size)
{
quint32 val = 0xE47AB81CUL;
for (size_t i = 0; i != size; i++) {
val += data[i];
val += (val << 10);
val ^= (val >> 6);
}
val += (val << 3);
val ^= (val >> 11);
val += (val << 15);
return val;
}
RagePhoto::RagePhoto()
{
p_photoFormat = PhotoFormat::Undefined;
@ -527,8 +544,15 @@ bool RagePhoto::setJsonData(const QByteArray &data)
QJsonDocument t_jsonDocument = QJsonDocument::fromJson(data);
if (t_jsonDocument.isNull())
return false;
p_jsonData = t_jsonDocument.toJson(QJsonDocument::Compact);
p_jsonObject = t_jsonDocument.object();
// serializer band-aid
QJsonObject t_jsonObject = p_jsonObject;
t_jsonObject["sign"] = "__gta5view.sign";
t_jsonDocument.setObject(t_jsonObject);
p_jsonData = t_jsonDocument.toJson(QJsonDocument::Compact);
char sign_char[24];
sprintf(sign_char, "%llu", (0x100000000000000ULL | joaatFromSI(p_photoData.constData(), p_photoData.size())));
p_jsonData.replace("\"__gta5view.sign\"", sign_char);
return true;
}
@ -552,6 +576,8 @@ bool RagePhoto::setPhotoData(const QByteArray &data)
if (size > p_photoBuffer)
return false;
p_photoData = data;
// serializer band-aid
setJsonData(p_jsonData);
return true;
}
@ -560,6 +586,8 @@ bool RagePhoto::setPhotoData(const char *data, int size)
if (static_cast<quint32>(size) > p_photoBuffer)
return false;
p_photoData = QByteArray(data, size);
// serializer band-aid
setJsonData(p_jsonData);
return true;
}
@ -637,6 +665,9 @@ QByteArray RagePhoto::save(PhotoFormat photoFormat)
void RagePhoto::save(QIODevice *ioDevice, PhotoFormat photoFormat)
{
// serializer band-aid
setJsonData(p_jsonData);
if (photoFormat == PhotoFormat::G5EX) {
char uInt32Buffer[4];
quint32 format = static_cast<quint32>(PhotoFormat::G5EX);

View file

@ -34,6 +34,8 @@
#if QT_VERSION < 0x060000
#include <QTextCodec>
#else
#include <QStringDecoder>
#endif
#if QT_VERSION >= 0x050000
@ -199,6 +201,7 @@ bool SnapmaticPicture::setImage(const QImage &picture, bool eXtendMode)
else {
#ifndef GTA5SYNC_DYNAMIC_PHOTOBUFFER
if (p_ragePhoto.photoBuffer() != jpegPicStreamLength)
p_ragePhoto.setPhotoData(QByteArray()); // avoid buffer set fail
p_ragePhoto.setPhotoBuffer(jpegPicStreamLength, true);
#endif
picByteArray = picByteArrayT;

View file

@ -357,7 +357,7 @@ void SnapmaticWidget::editSnapmaticImage()
importDialog->exec();
if (importDialog->isImportAgreed()) {
const QByteArray previousPicture = smpic->getPictureStream();
bool success = smpic->setImage(importDialog->image());
bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer());
if (success) {
QString currentFilePath = smpic->getPictureFilePath();
QString originalFilePath = smpic->getOriginalPictureFilePath();

View file

@ -73,7 +73,12 @@ UserInterface::UserInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, D
ui->menuProfile->setEnabled(false);
ui->actionSelect_profile->setEnabled(false);
ui->actionAbout_gta5sync->setIcon(IconLoader::loadingAppIcon());
#ifdef Q_OS_MAC
ui->actionAbout_gta5sync->setText(QApplication::translate("MAC_APPLICATION_MENU", "About %1").arg(GTA5SYNC_APPSTR));
ui->actionOptions->setText(QApplication::translate("MAC_APPLICATION_MENU", "Preferences..."));
#else
ui->actionAbout_gta5sync->setText(tr("&About %1").arg(GTA5SYNC_APPSTR));
#endif
ui->cmdClose->setToolTip(ui->cmdClose->toolTip().arg(GTA5SYNC_APPSTR));
defaultWindowTitle = tr("%2 - %1").arg("%1", GTA5SYNC_APPSTR);
@ -873,13 +878,17 @@ void UserInterface::retranslateUi()
donateAction->setText(tr("&Donate"));
#endif
#endif
#ifdef Q_OS_MAC
ui->actionAbout_gta5sync->setText(QApplication::translate("MAC_APPLICATION_MENU", "About %1").arg(GTA5SYNC_APPSTR));
ui->actionOptions->setText(QApplication::translate("MAC_APPLICATION_MENU", "Preferences..."));
#else
ui->actionAbout_gta5sync->setText(tr("&About %1").arg(GTA5SYNC_APPSTR));
QString appVersion = GTA5SYNC_APPVER;
#ifndef GTA5SYNC_BUILDTYPE_REL
#ifdef GTA5SYNC_COMMIT
if (!appVersion.contains("-"))
appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
#endif
QString appVersion = QApplication::applicationVersion();
const char* literalBuildType = GTA5SYNC_BUILDTYPE;
#ifdef GTA5SYNC_COMMIT
if ((strcmp(literalBuildType, REL_BUILDTYPE) != 0) && !appVersion.contains("-"))
appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
#endif
ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
if (profileOpen) {

View file

@ -47,11 +47,11 @@
#endif
#ifndef GTA5SYNC_COPYRIGHT
#define GTA5SYNC_COPYRIGHT "2016-2021"
#define GTA5SYNC_COPYRIGHT "2016-2023"
#endif
#ifndef GTA5SYNC_APPVER
#define GTA5SYNC_APPVER "1.10.0"
#define GTA5SYNC_APPVER "1.10.2"
#endif
#if __cplusplus

View file

@ -4,8 +4,8 @@ IDI_ICON1 ICON DISCARDABLE "5sync.ico"
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gta5view.exe.manifest"
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1, 10, 0, 0
PRODUCTVERSION 1, 10, 0, 0
FILEVERSION 1, 10, 2, 0
PRODUCTVERSION 1, 10, 2, 0
FILEFLAGSMASK 0x3fL
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
@ -22,12 +22,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Syping"
VALUE "FileDescription", "gta5view"
VALUE "FileVersion", "1.10.0"
VALUE "FileVersion", "1.10.2"
VALUE "InternalName", "gta5view"
VALUE "LegalCopyright", "Copyright © 2016-2021 Syping"
VALUE "LegalCopyright", "Copyright © 2016-2023 Syping"
VALUE "OriginalFilename", "gta5view.exe"
VALUE "ProductName", "gta5view"
VALUE "ProductVersion", "1.10.0"
VALUE "ProductVersion", "1.10.2"
END
END
END

View file

@ -3,6 +3,7 @@ Type=Application
Name=gta5view
Comment=Open and edit GTA V profiles
Comment[de]=GTA V Profile öffnen und bearbeiten
Comment[ko]=GTA V
Comment[ru]=Просмотрщик и редактор профилей GTA V
Comment[zh_TW]= GTA V
Categories=Qt;Utility;FileTools;

View file

@ -10,6 +10,7 @@
<summary>Open and edit GTA V profiles</summary>
<summary xml:lang="de">GTA V Profile öffnen und bearbeiten</summary>
<summary xml:lang="ko">GTA V 프로필을 열고 편집</summary>
<summary xml:lang="ru">Просмотрщик и редактор профилей GTA V</summary>
<summary xml:lang="zh-TW">打開與編輯 GTA V 個人檔案</summary>
@ -33,6 +34,8 @@
<developer_name>Syping</developer_name>
<releases>
<release date="2023-03-15" version="1.10.2"/>
<release date="2021-06-17" version="1.10.1"/>
<release date="2021-05-27" version="1.10.0"/>
<release date="2021-03-22" version="1.9.2"/>
<release date="2020-12-16" version="1.9.1"/>

View file

@ -8,8 +8,6 @@
<file>ltc.svgz</file>
<file>xmr.str</file>
<file>xmr.svgz</file>
<file>zec.str</file>
<file>zec.svgz</file>
</qresource>
<qresource prefix="/img">
<file>donate.svgz</file>

View file

@ -1341,7 +1341,7 @@ Press 1 for Default View</source>
<location filename="../ImportDialog.cpp" line="534"/>
<location filename="../ImportDialog.cpp" line="844"/>
<location filename="../ProfileInterface.cpp" line="563"/>
<location filename="../UserInterface.cpp" line="590"/>
<location filename="../UserInterface.cpp" line="595"/>
<source>All files (**)</source>
<translation type="unfinished"></translation>
</message>
@ -1386,26 +1386,26 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="559"/>
<location filename="../UserInterface.cpp" line="587"/>
<location filename="../UserInterface.cpp" line="592"/>
<source>GTA V Export (*.g5e)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="560"/>
<location filename="../UserInterface.cpp" line="588"/>
<location filename="../UserInterface.cpp" line="593"/>
<source>Savegames files (SGTA*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="561"/>
<location filename="../UserInterface.cpp" line="589"/>
<location filename="../UserInterface.cpp" line="594"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="583"/>
<location filename="../ProfileInterface.cpp" line="974"/>
<location filename="../UserInterface.cpp" line="669"/>
<location filename="../UserInterface.cpp" line="674"/>
<source>No valid file is selected</source>
<translation type="unfinished"></translation>
</message>
@ -1424,13 +1424,13 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="676"/>
<location filename="../UserInterface.cpp" line="625"/>
<location filename="../UserInterface.cpp" line="630"/>
<source>Failed to read Snapmatic picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="711"/>
<location filename="../UserInterface.cpp" line="639"/>
<location filename="../UserInterface.cpp" line="644"/>
<source>Failed to read Savegame file</source>
<translation type="unfinished"></translation>
</message>
@ -1539,20 +1539,20 @@ Press 1 for Default View</source>
<message>
<location filename="../ProfileInterface.cpp" line="1583"/>
<location filename="../ProfileInterface.cpp" line="1613"/>
<location filename="../ProfileInterface.cpp" line="2016"/>
<location filename="../ProfileInterface.cpp" line="2095"/>
<location filename="../ProfileInterface.cpp" line="2184"/>
<location filename="../ProfileInterface.cpp" line="2299"/>
<location filename="../ProfileInterface.cpp" line="2015"/>
<location filename="../ProfileInterface.cpp" line="2094"/>
<location filename="../ProfileInterface.cpp" line="2183"/>
<location filename="../ProfileInterface.cpp" line="2298"/>
<source>No Snapmatic pictures are selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1594"/>
<location filename="../ProfileInterface.cpp" line="1624"/>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2372"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<location filename="../ProfileInterface.cpp" line="2371"/>
<source>%1 failed with...
%2</source>
@ -1560,87 +1560,87 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2016"/>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2015"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<source>Qualify as Avatar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2027"/>
<location filename="../ProfileInterface.cpp" line="2120"/>
<location filename="../ProfileInterface.cpp" line="2235"/>
<location filename="../ProfileInterface.cpp" line="2330"/>
<location filename="../ProfileInterface.cpp" line="2026"/>
<location filename="../ProfileInterface.cpp" line="2119"/>
<location filename="../ProfileInterface.cpp" line="2234"/>
<location filename="../ProfileInterface.cpp" line="2329"/>
<source>Patch selected...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2028"/>
<location filename="../ProfileInterface.cpp" line="2046"/>
<location filename="../ProfileInterface.cpp" line="2121"/>
<location filename="../ProfileInterface.cpp" line="2139"/>
<location filename="../ProfileInterface.cpp" line="2236"/>
<location filename="../ProfileInterface.cpp" line="2254"/>
<location filename="../ProfileInterface.cpp" line="2331"/>
<location filename="../ProfileInterface.cpp" line="2349"/>
<location filename="../ProfileInterface.cpp" line="2027"/>
<location filename="../ProfileInterface.cpp" line="2045"/>
<location filename="../ProfileInterface.cpp" line="2120"/>
<location filename="../ProfileInterface.cpp" line="2138"/>
<location filename="../ProfileInterface.cpp" line="2235"/>
<location filename="../ProfileInterface.cpp" line="2253"/>
<location filename="../ProfileInterface.cpp" line="2330"/>
<location filename="../ProfileInterface.cpp" line="2348"/>
<source>Patch file %1 of %2 files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<source>Qualify</source>
<comment>%1 failed with...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2095"/>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2094"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<source>Change Players...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<source>Change Players</source>
<comment>%1 failed with...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2184"/>
<location filename="../ProfileInterface.cpp" line="2214"/>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2183"/>
<location filename="../ProfileInterface.cpp" line="2213"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<source>Change Crew...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2214"/>
<location filename="../ProfileInterface.cpp" line="2213"/>
<source>Failed to enter a valid Snapmatic Crew ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<source>Change Crew</source>
<comment>%1 failed with...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2299"/>
<location filename="../ProfileInterface.cpp" line="2313"/>
<location filename="../ProfileInterface.cpp" line="2372"/>
<location filename="../ProfileInterface.cpp" line="2298"/>
<location filename="../ProfileInterface.cpp" line="2312"/>
<location filename="../ProfileInterface.cpp" line="2371"/>
<source>Change Title...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2313"/>
<location filename="../ProfileInterface.cpp" line="2312"/>
<source>Failed to enter a valid Snapmatic title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2372"/>
<location filename="../ProfileInterface.cpp" line="2371"/>
<source>Change Title</source>
<comment>%1 failed with...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="586"/>
<location filename="../UserInterface.cpp" line="591"/>
<source>All profile files (*.g5e SGTA* PGTA*)</source>
<translation type="unfinished"></translation>
</message>
@ -1959,25 +1959,25 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2208"/>
<location filename="../ProfileInterface.cpp" line="2207"/>
<location filename="../SnapmaticEditor.cpp" line="403"/>
<source>Snapmatic Crew</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2208"/>
<location filename="../ProfileInterface.cpp" line="2207"/>
<location filename="../SnapmaticEditor.cpp" line="403"/>
<source>New Snapmatic crew:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2310"/>
<location filename="../ProfileInterface.cpp" line="2309"/>
<location filename="../SnapmaticEditor.cpp" line="379"/>
<source>Snapmatic Title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2310"/>
<location filename="../ProfileInterface.cpp" line="2309"/>
<location filename="../SnapmaticEditor.cpp" line="379"/>
<source>New Snapmatic title:</source>
<translation type="unfinished"></translation>
@ -2034,19 +2034,19 @@ Press 1 for Default View</source>
<name>SnapmaticPicture</name>
<message>
<location filename="../JsonEditorDialog.cpp" line="165"/>
<location filename="../SnapmaticPicture.cpp" line="344"/>
<location filename="../SnapmaticPicture.cpp" line="345"/>
<source>JSON is incomplete and malformed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../JsonEditorDialog.cpp" line="168"/>
<location filename="../SnapmaticPicture.cpp" line="347"/>
<location filename="../SnapmaticPicture.cpp" line="348"/>
<source>JSON is incomplete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../JsonEditorDialog.cpp" line="171"/>
<location filename="../SnapmaticPicture.cpp" line="350"/>
<location filename="../SnapmaticPicture.cpp" line="351"/>
<source>JSON is malformed</source>
<translation type="unfinished"></translation>
</message>
@ -2056,42 +2056,42 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="314"/>
<location filename="../SnapmaticPicture.cpp" line="315"/>
<source>open file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="326"/>
<location filename="../SnapmaticPicture.cpp" line="327"/>
<source>header not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="329"/>
<location filename="../SnapmaticPicture.cpp" line="330"/>
<source>header is malformed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="332"/>
<location filename="../SnapmaticPicture.cpp" line="333"/>
<source>picture not exists (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="335"/>
<location filename="../SnapmaticPicture.cpp" line="336"/>
<source>JSON not exists (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="338"/>
<location filename="../SnapmaticPicture.cpp" line="339"/>
<source>title not exists (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="341"/>
<location filename="../SnapmaticPicture.cpp" line="342"/>
<source>description not exists (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticPicture.cpp" line="352"/>
<location filename="../SnapmaticPicture.cpp" line="353"/>
<source>reading file %1 because of %2</source>
<comment>Example for %2: JSON is malformed error</comment>
<translation type="unfinished"></translation>
@ -2259,7 +2259,7 @@ Press 1 for Default View</source>
<name>UserInterface</name>
<message>
<location filename="../UserInterface.ui" line="20"/>
<location filename="../UserInterface.cpp" line="78"/>
<location filename="../UserInterface.cpp" line="83"/>
<source>%2 - %1</source>
<translation type="unfinished"></translation>
</message>
@ -2291,9 +2291,9 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.ui" line="153"/>
<location filename="../UserInterface.cpp" line="264"/>
<location filename="../UserInterface.cpp" line="288"/>
<location filename="../UserInterface.cpp" line="786"/>
<location filename="../UserInterface.cpp" line="269"/>
<location filename="../UserInterface.cpp" line="293"/>
<location filename="../UserInterface.cpp" line="791"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
@ -2329,8 +2329,8 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.ui" line="236"/>
<location filename="../UserInterface.cpp" line="76"/>
<location filename="../UserInterface.cpp" line="876"/>
<location filename="../UserInterface.cpp" line="80"/>
<location filename="../UserInterface.cpp" line="885"/>
<source>&amp;About %1</source>
<translation type="unfinished"></translation>
</message>
@ -2386,15 +2386,15 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.ui" line="319"/>
<location filename="../UserInterface.cpp" line="382"/>
<location filename="../UserInterface.cpp" line="387"/>
<source>Select &amp;GTA V Folder...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.ui" line="322"/>
<location filename="../OptionsDialog.cpp" line="704"/>
<location filename="../UserInterface.cpp" line="329"/>
<location filename="../UserInterface.cpp" line="844"/>
<location filename="../UserInterface.cpp" line="334"/>
<location filename="../UserInterface.cpp" line="849"/>
<source>Select GTA V Folder...</source>
<translation type="unfinished"></translation>
</message>
@ -2451,53 +2451,53 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="80"/>
<location filename="../UserInterface.cpp" line="445"/>
<location filename="../UserInterface.cpp" line="889"/>
<location filename="../UserInterface.cpp" line="85"/>
<location filename="../UserInterface.cpp" line="450"/>
<location filename="../UserInterface.cpp" line="898"/>
<source>Select Profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="168"/>
<location filename="../UserInterface.cpp" line="873"/>
<location filename="../UserInterface.cpp" line="173"/>
<location filename="../UserInterface.cpp" line="878"/>
<source>&amp;Donate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="181"/>
<location filename="../UserInterface.cpp" line="186"/>
<source>Donate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="189"/>
<location filename="../UserInterface.cpp" line="194"/>
<source>Donation methods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="256"/>
<location filename="../UserInterface.cpp" line="261"/>
<source>&amp;Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="583"/>
<location filename="../UserInterface.cpp" line="588"/>
<source>Open File...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="625"/>
<location filename="../UserInterface.cpp" line="639"/>
<location filename="../UserInterface.cpp" line="663"/>
<location filename="../UserInterface.cpp" line="669"/>
<location filename="../UserInterface.cpp" line="630"/>
<location filename="../UserInterface.cpp" line="644"/>
<location filename="../UserInterface.cpp" line="668"/>
<location filename="../UserInterface.cpp" line="674"/>
<source>Open File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="663"/>
<location filename="../UserInterface.cpp" line="668"/>
<source>Can&apos;t open %1 because of not valid file format</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="751"/>
<location filename="../UserInterface.cpp" line="756"/>
<source>%1 - Messages</source>
<translation type="unfinished"></translation>
</message>

View file

@ -1383,13 +1383,13 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="560"/>
<location filename="../UserInterface.cpp" line="588"/>
<location filename="../UserInterface.cpp" line="593"/>
<source>Savegames files (SGTA*)</source>
<translation>Spielstanddateien (SGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="561"/>
<location filename="../UserInterface.cpp" line="589"/>
<location filename="../UserInterface.cpp" line="594"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation>Snapmatic Bilder (PGTA*)</translation>
</message>
@ -1409,7 +1409,7 @@ Drücke 1 für Standardmodus</translation>
<location filename="../ImportDialog.cpp" line="534"/>
<location filename="../ImportDialog.cpp" line="844"/>
<location filename="../ProfileInterface.cpp" line="563"/>
<location filename="../UserInterface.cpp" line="590"/>
<location filename="../UserInterface.cpp" line="595"/>
<source>All files (**)</source>
<translation>Alle Dateien (**)</translation>
</message>
@ -1430,13 +1430,13 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="676"/>
<location filename="../UserInterface.cpp" line="625"/>
<location filename="../UserInterface.cpp" line="630"/>
<source>Failed to read Snapmatic picture</source>
<translation>Fehler beim Lesen vom Snapmatic Bild</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="711"/>
<location filename="../UserInterface.cpp" line="639"/>
<location filename="../UserInterface.cpp" line="644"/>
<source>Failed to read Savegame file</source>
<translation>Fehler beim Lesen von Spielstanddatei</translation>
</message>
@ -1477,7 +1477,7 @@ Drücke 1 für Standardmodus</translation>
<message>
<location filename="../ProfileInterface.cpp" line="583"/>
<location filename="../ProfileInterface.cpp" line="974"/>
<location filename="../UserInterface.cpp" line="669"/>
<location filename="../UserInterface.cpp" line="674"/>
<source>No valid file is selected</source>
<translation>Keine gültige Datei wurde ausgewählt</translation>
</message>
@ -1525,38 +1525,38 @@ Drücke 1 für Standardmodus</translation>
<translation>Nur GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2027"/>
<location filename="../ProfileInterface.cpp" line="2120"/>
<location filename="../ProfileInterface.cpp" line="2235"/>
<location filename="../ProfileInterface.cpp" line="2330"/>
<location filename="../ProfileInterface.cpp" line="2026"/>
<location filename="../ProfileInterface.cpp" line="2119"/>
<location filename="../ProfileInterface.cpp" line="2234"/>
<location filename="../ProfileInterface.cpp" line="2329"/>
<source>Patch selected...</source>
<translation>Auswahl patchen...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2028"/>
<location filename="../ProfileInterface.cpp" line="2046"/>
<location filename="../ProfileInterface.cpp" line="2121"/>
<location filename="../ProfileInterface.cpp" line="2139"/>
<location filename="../ProfileInterface.cpp" line="2236"/>
<location filename="../ProfileInterface.cpp" line="2254"/>
<location filename="../ProfileInterface.cpp" line="2331"/>
<location filename="../ProfileInterface.cpp" line="2349"/>
<location filename="../ProfileInterface.cpp" line="2027"/>
<location filename="../ProfileInterface.cpp" line="2045"/>
<location filename="../ProfileInterface.cpp" line="2120"/>
<location filename="../ProfileInterface.cpp" line="2138"/>
<location filename="../ProfileInterface.cpp" line="2235"/>
<location filename="../ProfileInterface.cpp" line="2253"/>
<location filename="../ProfileInterface.cpp" line="2330"/>
<location filename="../ProfileInterface.cpp" line="2348"/>
<source>Patch file %1 of %2 files</source>
<translation>Patche Datei %1 von %2 Dateien</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2016"/>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2015"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<source>Qualify as Avatar</source>
<translation>Als Avatar qualifizieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1583"/>
<location filename="../ProfileInterface.cpp" line="1613"/>
<location filename="../ProfileInterface.cpp" line="2016"/>
<location filename="../ProfileInterface.cpp" line="2095"/>
<location filename="../ProfileInterface.cpp" line="2184"/>
<location filename="../ProfileInterface.cpp" line="2299"/>
<location filename="../ProfileInterface.cpp" line="2015"/>
<location filename="../ProfileInterface.cpp" line="2094"/>
<location filename="../ProfileInterface.cpp" line="2183"/>
<location filename="../ProfileInterface.cpp" line="2298"/>
<source>No Snapmatic pictures are selected</source>
<translation>Keine Snapmatic Bilder sind ausgewählt</translation>
</message>
@ -1568,10 +1568,10 @@ Drücke 1 für Standardmodus</translation>
<message>
<location filename="../ProfileInterface.cpp" line="1594"/>
<location filename="../ProfileInterface.cpp" line="1624"/>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2372"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<location filename="../ProfileInterface.cpp" line="2371"/>
<source>%1 failed with...
%2</source>
@ -1586,55 +1586,55 @@ Drücke 1 für Standardmodus</translation>
<translation>Bereite Inhalt für Import vor...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2076"/>
<location filename="../ProfileInterface.cpp" line="2075"/>
<source>Qualify</source>
<comment>%1 failed with...</comment>
<translation>Qualifizieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2095"/>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2094"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<source>Change Players...</source>
<translation>Spieler ändern...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2165"/>
<location filename="../ProfileInterface.cpp" line="2164"/>
<source>Change Players</source>
<comment>%1 failed with...</comment>
<translation>Spieler ändern</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2184"/>
<location filename="../ProfileInterface.cpp" line="2214"/>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2183"/>
<location filename="../ProfileInterface.cpp" line="2213"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<source>Change Crew...</source>
<translation>Crew ändern...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2214"/>
<location filename="../ProfileInterface.cpp" line="2213"/>
<source>Failed to enter a valid Snapmatic Crew ID</source>
<translation>Fehlgeschlagen beim Eingeben von einer gültigen Crew ID</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="2280"/>
<location filename="../ProfileInterface.cpp" line="2279"/>
<source>Change Crew</source>