latest changes from gta5sync
This commit is contained in:
parent
ed559f3ce9
commit
e0d90ff7d0
19 changed files with 1179 additions and 823 deletions
|
@ -24,15 +24,15 @@ before_script:
|
|||
- echo "Grand Theft Auto V Snapmatic and Savegame viewer" > ./description-pak
|
||||
|
||||
script:
|
||||
- qmake -qt=5 "DEFINES+=GTA5SYNC_BUILDTYPE=\\\\\\\"Developer\\\\\\\"" "DEFINES+=GTA5SYNC_DAILYB=\\\\\\\"$PACKAGE_VERSION-dev4\\\\\\\"" ../gta5view.pro
|
||||
- qmake -qt=5 "DEFINES+=GTA5SYNC_BUILDTYPE=\\\\\\\"Developer\\\\\\\"" "DEFINES+=GTA5SYNC_DAILYB=\\\\\\\"$PACKAGE_VERSION-rc1\\\\\\\"" ../gta5view.pro
|
||||
- make -j 4
|
||||
- sudo checkinstall -D --default --nodoc --pkgname=gta5view --pkgversion=$PACKAGE_VERSION --pkgrelease=dev4 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5 --pakdir=../package
|
||||
- sudo checkinstall -D --default --nodoc --pkgname=gta5view --pkgversion=$PACKAGE_VERSION --pkgrelease=rc1 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5 --pakdir=../package
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: "o7VneEz1aHfdVwZvOZLfopf6uJWNrFsZaBvunTmXFzpmNFhlNS1qwqgMUkIA2yBRbZ3wIzVs4vfwIHv7W9yE/PqK+AYL+R8+AwKGrwlgT4HqJNuk6VM/LNJ6GwT/qkQuaoOVw29bUjmzzgIRdHmw53SlJv6Hh1VE8HphlTT//aex6nCfcFhUZ0BETdZDWz5FSHwL3NalUoqfKfQrJeky5RXzCyCANQC2tKt0bV46GaWIgWrDo2KCTNqPtRWWf5GDmnkXE5IYRMQ3mXvO9iYh0v5Y2jo4PiXGUiFUU6Z3aAWFAiPdGclrBO697cf3lCTzDMhuCETR153qFYsLShUlFf61ITAmCeHAWETjZDri0lmPONo3GoNB6alGfYEA51qw14kXakrTpICtTJj7gw/gtUYOabW6hrzmieNzMBIy62RikDPjyakFnuwW2qNHRlD65e0jYv+6nCpb6E+OV16Ysh1zhV2vTfpfzVmSuyu2J+ELqXD3OZCXRSPpDIih9UQ8335p8FBji6jHORcgym/TRgdgRmENibh8tLzWp+UjpWHuWfcpvZgOskjfwU0iDMCayMJ7tDpOhXHcAhDRnd6XRIiOJ5YZCzflj2nEwmt3YUd7DwXS/AU+WHOmcNQBjXBxF/FJa35XXcy3HKJM5TTKqtph3medo30us5yXHeG6NNg="
|
||||
file: "../package/gta5view_$PACKAGE_VERSION-dev4_amd64.deb"
|
||||
file: "../package/gta5view_$PACKAGE_VERSION-rc1_amd64.deb"
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
|
|
|
@ -35,17 +35,67 @@ AboutDialog::AboutDialog(QWidget *parent) :
|
|||
buildType.replace("_", " ");
|
||||
QString projectBuild = GTA5SYNC_BUILDDATETIME;
|
||||
QString buildStr = GTA5SYNC_BUILDSTRING;
|
||||
#ifdef GTA5SYNC_ENABLED
|
||||
QString projectDes = tr("A project for viewing and sync Grand Theft Auto V Snapmatic<br/>\nPictures and Savegames");
|
||||
|
||||
// Additional Content
|
||||
QString usingStr = tr("Using %1 %2", "Exp. Using libmyfuck");
|
||||
QString translatedByStr = tr("Translated by %1", "Exp. Translated by Syping");
|
||||
QString translatedByVal = tr("NAME_OF_TRANSLATOR", "Your Name (The person behind your screen looking at this text!)");
|
||||
QString translatorProfile = tr("TRANSLATOR_PROFILE", "mailto: http:// https:// Exp. https://github.com/Syping/");
|
||||
QString additionalContent = "";
|
||||
if (translatedByVal != "NAME_OF_TRANSLATOR")
|
||||
{
|
||||
if (translatorProfile != "TRANSLATOR_PROFILE")
|
||||
{
|
||||
additionalContent.append(translatedByStr.arg(QString("<a href=\"%1\">%2</a>").arg(translatorProfile, translatedByVal)));
|
||||
}
|
||||
else
|
||||
{
|
||||
additionalContent.append(translatedByStr.arg(translatedByVal));
|
||||
}
|
||||
}
|
||||
#ifdef WITH_LIBJPEGTURBO // DONT USE IT FOR NOW
|
||||
bool additionalContentClip = false;
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
additionalContentClip = true;
|
||||
additionalContent.append(" (");
|
||||
}
|
||||
additionalContent.append(usingStr.arg("libjpegturbo", WITH_LIBJPEGTURBO));
|
||||
if (additionalContentClip)
|
||||
{
|
||||
additionalContent.append(")");
|
||||
}
|
||||
#else
|
||||
QString projectDes = tr("A project for viewing Grand Theft Auto V Snapmatic<br/>\nPictures and Savegames");
|
||||
Q_UNUSED(usingStr)
|
||||
#endif
|
||||
|
||||
// Project Description
|
||||
#ifdef GTA5SYNC_ENABLED
|
||||
QString projectDes = tr("A project for viewing and sync Grand Theft Auto V Snapmatic<br/>\nPictures and Savegames");
|
||||
#else
|
||||
QString projectDes = tr("A project for viewing Grand Theft Auto V Snapmatic<br/>\nPictures and Savegames");
|
||||
#endif
|
||||
|
||||
// Copyright Description
|
||||
QString copyrightDes1 = tr("Copyright © <a href=\"%1\">%2</a> %3");
|
||||
copyrightDes1 = copyrightDes1.arg(GTA5SYNC_APPVENDORLINK, GTA5SYNC_APPVENDOR, GTA5SYNC_COPYRIGHT);
|
||||
QString copyrightDes2 = tr("%1 is licensed under <a href=\"https://www.gnu.org/licenses/gpl-3.0.html#content\">GNU GPLv3</a>");
|
||||
copyrightDes2 = copyrightDes2.arg(GTA5SYNC_APPSTR);
|
||||
QString copyrightDesA;
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
copyrightDesA = copyrightDes1 % "<br/>" % additionalContent % "<br/>" % copyrightDes2;
|
||||
}
|
||||
else
|
||||
{
|
||||
copyrightDesA = copyrightDes1 % "<br/>" % copyrightDes2;
|
||||
}
|
||||
|
||||
// Setup User Interface
|
||||
ui->setupUi(this);
|
||||
aboutStr = ui->labAbout->text();
|
||||
titleStr = this->windowTitle();
|
||||
ui->labAbout->setText(aboutStr.arg(appVersion % " (" % buildType % ")", buildStr, qVersion(), projectBuild, GTA5SYNC_APPVENDORLINK, GTA5SYNC_APPVENDOR, GTA5SYNC_COPYRIGHT, GTA5SYNC_APPSTR, projectDes));
|
||||
ui->labAbout->setText(aboutStr.arg(GTA5SYNC_APPSTR, projectDes, appVersion % " (" % buildType % ")", projectBuild, buildStr, qVersion(), copyrightDesA));
|
||||
this->setWindowTitle(titleStr.arg(GTA5SYNC_APPSTR));
|
||||
|
||||
if (QIcon::hasThemeIcon("dialog-close"))
|
||||
|
@ -55,7 +105,14 @@ AboutDialog::AboutDialog(QWidget *parent) :
|
|||
|
||||
// DPI calculation
|
||||
qreal screenRatio = AppEnv::screenRatio();
|
||||
resize(375 * screenRatio, 260 * screenRatio);
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
resize(375 * screenRatio, 270 * screenRatio);
|
||||
}
|
||||
else
|
||||
{
|
||||
resize(375 * screenRatio, 260 * screenRatio);
|
||||
}
|
||||
}
|
||||
|
||||
AboutDialog::~AboutDialog()
|
||||
|
|
|
@ -26,16 +26,16 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><span style=" font-weight:600;">%8</span><br/>
|
||||
<string><span style=" font-weight:600;">%1</span><br/>
|
||||
<br/>
|
||||
%9<br/>
|
||||
%2<br/>
|
||||
<br/>
|
||||
Project version: %1<br/>
|
||||
Project build: %4<br/>
|
||||
Compiled with Qt %2<br/>
|
||||
Running with Qt %3<br/>
|
||||
Version %3<br/>
|
||||
Created on %4<br/>
|
||||
Built with Qt %5<br/>
|
||||
Running with Qt %6<br/>
|
||||
<br/>
|
||||
Copyright &copy; <a href="%5">%6</a> %7<br/>%8 is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></string>
|
||||
%7</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
|
|
|
@ -518,27 +518,32 @@ void PictureDialog::renderPicture()
|
|||
{
|
||||
if (overlayEnabled)
|
||||
{
|
||||
QPixmap overlayAreaPixmap(960 * screenRatio, 536 * screenRatio);
|
||||
overlayAreaPixmap.fill(Qt::transparent);
|
||||
QPainter overlayAreaPainter(&overlayAreaPixmap);
|
||||
QPixmap shownImagePixmap(960 * screenRatio, 536 * screenRatio);
|
||||
shownImagePixmap.fill(Qt::transparent);
|
||||
QPainter shownImagePainter(&shownImagePixmap);
|
||||
if (screenRatio == 1)
|
||||
{
|
||||
overlayAreaPainter.drawImage(0, 0, snapmaticPicture);
|
||||
overlayAreaPainter.drawImage(3 * screenRatio, 3 * screenRatio, overlayTempImage);
|
||||
shownImagePainter.drawImage(0, 0, snapmaticPicture);
|
||||
shownImagePainter.drawImage(3 * screenRatio, 3 * screenRatio, overlayTempImage);
|
||||
}
|
||||
else
|
||||
{
|
||||
overlayAreaPainter.drawImage(0, 0, snapmaticPicture.scaledToHeight(536 * screenRatio, Qt::SmoothTransformation));
|
||||
overlayAreaPainter.drawImage(3 * screenRatio, 3 * screenRatio, overlayTempImage);
|
||||
shownImagePainter.drawImage(0, 0, snapmaticPicture.scaledToHeight(536 * screenRatio, Qt::SmoothTransformation));
|
||||
shownImagePainter.drawImage(3 * screenRatio, 3 * screenRatio, overlayTempImage);
|
||||
}
|
||||
overlayAreaPainter.end();
|
||||
ui->labPicture->setPixmap(overlayAreaPixmap);
|
||||
shownImagePainter.end();
|
||||
ui->labPicture->setPixmap(shownImagePixmap);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (screenRatio != 1)
|
||||
{
|
||||
ui->labPicture->setPixmap(QPixmap::fromImage(snapmaticPicture.scaledToHeight(536 * screenRatio, Qt::SmoothTransformation)));
|
||||
QPixmap shownImagePixmap(960 * screenRatio, 536 * screenRatio);
|
||||
shownImagePixmap.fill(Qt::transparent);
|
||||
QPainter shownImagePainter(&shownImagePixmap);
|
||||
shownImagePainter.drawImage(0, 0, snapmaticPicture.scaledToHeight(536 * screenRatio, Qt::SmoothTransformation));
|
||||
shownImagePainter.end();
|
||||
ui->labPicture->setPixmap(shownImagePixmap);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -502,7 +502,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple, int cu
|
|||
if (selectedFileName.left(4) == "PGTA" || selectedFileName.right(4) == ".g5e")
|
||||
{
|
||||
SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
|
||||
if (picture->readingPicture())
|
||||
if (picture->readingPicture(true, true, true))
|
||||
{
|
||||
bool success = importSnapmaticPicture(picture, notMultiple);
|
||||
if (!success) delete picture;
|
||||
|
@ -534,7 +534,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple, int cu
|
|||
else if(selectedFileName.right(4) == ".jpg" || selectedFileName.right(4) == ".png")
|
||||
{
|
||||
SnapmaticPicture *picture = new SnapmaticPicture(":/template/template.g5e");
|
||||
if (picture->readingPicture(true, false))
|
||||
if (picture->readingPicture(true, false, true, false))
|
||||
{
|
||||
if (!notMultiple)
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* gta5sync-spv Grand Theft Auto Snapmatic Picture Viewer
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -75,6 +75,7 @@ void SnapmaticPicture::reset()
|
|||
isCustomFormat = 0;
|
||||
pictureHead = "";
|
||||
pictureStr = "";
|
||||
lowRamMode = 0;
|
||||
lastStep = "";
|
||||
sortStr = "";
|
||||
titlStr = "";
|
||||
|
@ -89,7 +90,7 @@ void SnapmaticPicture::reset()
|
|||
localSpJson = {};
|
||||
}
|
||||
|
||||
bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_, bool fastLoad)
|
||||
bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_, bool fastLoad, bool lowRamMode_)
|
||||
{
|
||||
// Start opening file
|
||||
// lastStep is like currentStep
|
||||
|
@ -97,6 +98,8 @@ bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_, bo
|
|||
// Set boolean values
|
||||
writeEnabled = writeEnabled_;
|
||||
cacheEnabled = cacheEnabled_;
|
||||
lowRamMode = lowRamMode_;
|
||||
if (!writeEnabled) { lowRamMode = false; } // Low RAM Mode only works when writeEnabled is true
|
||||
|
||||
QFile *picFile = new QFile(picFilePath);
|
||||
picFileName = QFileInfo(picFilePath).fileName();
|
||||
|
@ -225,14 +228,14 @@ bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_, bo
|
|||
return false;
|
||||
}
|
||||
QByteArray jpegRawContent = picStream->read(jpegPicStreamLength);
|
||||
if (jpegRawContent.contains(QByteArray::fromHex("FFD9")))
|
||||
if (jpegRawContent.contains("\xFF\xD9"))
|
||||
{
|
||||
int jpegRawContentSizeT = jpegRawContent.indexOf(QByteArray::fromHex("FFD9")) + 2;
|
||||
int jpegRawContentSizeT = jpegRawContent.indexOf("\xFF\xD9") + 2;
|
||||
jpegRawContentSizeE = jpegRawContentSizeT;
|
||||
jpegRawContentSize = jpegRawContentSizeT;
|
||||
if (jpegRawContent.contains(QByteArray::fromHex("FF454F49")))
|
||||
if (jpegRawContent.contains("\xFF\x45\x4F\x49"))
|
||||
{
|
||||
jpegRawContentSizeT = jpegRawContent.indexOf(QByteArray::fromHex("FF454F49"));
|
||||
jpegRawContentSizeT = jpegRawContent.indexOf("\xFF\x45\x4F\x49");
|
||||
}
|
||||
jpegRawContent = jpegRawContent.left(jpegRawContentSize);
|
||||
jpegRawContentSize = jpegRawContentSizeT;
|
||||
|
@ -317,13 +320,14 @@ bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_, bo
|
|||
picStream->close();
|
||||
delete picStream;
|
||||
if (!writeEnabled) { rawPicContent.clear(); }
|
||||
else if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return picOk;
|
||||
}
|
||||
|
||||
QString SnapmaticPicture::getSnapmaticHeaderString(const QByteArray &snapmaticHeader)
|
||||
{
|
||||
QByteArray snapmaticBytes = snapmaticHeader.left(snapmaticUsefulLength);
|
||||
QList<QByteArray> snapmaticBytesList = snapmaticBytes.split(char(0x01));
|
||||
QList<QByteArray> snapmaticBytesList = snapmaticBytes.split('\x01');
|
||||
snapmaticBytes = snapmaticBytesList.at(1);
|
||||
snapmaticBytesList.clear();
|
||||
return StringParser::parseTitleString(snapmaticBytes, snapmaticBytes.length());
|
||||
|
@ -332,8 +336,8 @@ QString SnapmaticPicture::getSnapmaticHeaderString(const QByteArray &snapmaticHe
|
|||
QString SnapmaticPicture::getSnapmaticJSONString(const QByteArray &jsonBytes)
|
||||
{
|
||||
QByteArray jsonUsefulBytes = jsonBytes;
|
||||
jsonUsefulBytes.replace((char)0x00, "");
|
||||
jsonUsefulBytes.replace((char)0x0c, "");
|
||||
jsonUsefulBytes.replace('\x00', "");
|
||||
jsonUsefulBytes.replace('\x0c', "");
|
||||
return QString::fromUtf8(jsonUsefulBytes).trimmed();
|
||||
}
|
||||
|
||||
|
@ -341,7 +345,7 @@ QString SnapmaticPicture::getSnapmaticTIDEString(const QByteArray &tideBytes)
|
|||
{
|
||||
QByteArray tideUsefulBytes = tideBytes;
|
||||
tideUsefulBytes.remove(0,4);
|
||||
QList<QByteArray> tideUsefulBytesList = tideUsefulBytes.split(char(0x00));
|
||||
QList<QByteArray> tideUsefulBytesList = tideUsefulBytes.split('\x00');
|
||||
return QString::fromUtf8(tideUsefulBytesList.at(0)).trimmed();
|
||||
}
|
||||
|
||||
|
@ -365,12 +369,12 @@ void SnapmaticPicture::updateStrings()
|
|||
picExportFileName = sortStr + "_" + cmpPicTitl;
|
||||
}
|
||||
|
||||
bool SnapmaticPicture::readingPictureFromFile(const QString &fileName, bool writeEnabled_, bool cacheEnabled_, bool fastLoad)
|
||||
bool SnapmaticPicture::readingPictureFromFile(const QString &fileName, bool writeEnabled_, bool cacheEnabled_, bool fastLoad, bool lowRamMode_)
|
||||
{
|
||||
if (fileName != "")
|
||||
{
|
||||
picFilePath = fileName;
|
||||
return readingPicture(writeEnabled_, cacheEnabled_, fastLoad);
|
||||
return readingPicture(writeEnabled_, cacheEnabled_, fastLoad, lowRamMode_);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -414,25 +418,27 @@ bool SnapmaticPicture::setPictureStream(const QByteArray &picByteArray_) // clea
|
|||
{
|
||||
if (writeEnabled)
|
||||
{
|
||||
bool lvlEoi = false;
|
||||
bool customEOI = false;
|
||||
QByteArray picByteArray = picByteArray_;
|
||||
if (lowRamMode) { rawPicContent = qUncompress(rawPicContent); }
|
||||
QBuffer snapmaticStream(&rawPicContent);
|
||||
snapmaticStream.open(QIODevice::ReadWrite);
|
||||
if (!snapmaticStream.seek(jpegStreamEditorBegin)) return false;
|
||||
if (picByteArray.length() > jpegPicStreamLength) return false;
|
||||
if (picByteArray.length() < jpegRawContentSize && jpegRawContentSize + 4 < jpegPicStreamLength)
|
||||
{
|
||||
lvlEoi = true;
|
||||
customEOI = true;
|
||||
}
|
||||
while (picByteArray.length() != jpegPicStreamLength)
|
||||
{
|
||||
picByteArray.append((char)0x00);
|
||||
picByteArray += '\x00';
|
||||
}
|
||||
if (lvlEoi)
|
||||
if (customEOI)
|
||||
{
|
||||
picByteArray.replace(jpegRawContentSize, 4, QByteArray::fromHex("FF454F49"));
|
||||
picByteArray.replace(jpegRawContentSize, 4, "\xFF\x45\x4F\x49");
|
||||
}
|
||||
int result = snapmaticStream.write(picByteArray);
|
||||
snapmaticStream.close();
|
||||
if (result != 0)
|
||||
{
|
||||
if (cacheEnabled)
|
||||
|
@ -441,8 +447,10 @@ bool SnapmaticPicture::setPictureStream(const QByteArray &picByteArray_) // clea
|
|||
replacedPicture.loadFromData(picByteArray);
|
||||
cachePicture = replacedPicture;
|
||||
}
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return true;
|
||||
}
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
@ -453,6 +461,7 @@ bool SnapmaticPicture::setPictureTitl(const QString &newTitle_)
|
|||
if (writeEnabled)
|
||||
{
|
||||
QString newTitle = newTitle_;
|
||||
if (lowRamMode) { rawPicContent = qUncompress(rawPicContent); }
|
||||
QBuffer snapmaticStream(&rawPicContent);
|
||||
snapmaticStream.open(QIODevice::ReadWrite);
|
||||
if (!snapmaticStream.seek(titlStreamEditorBegin)) return false;
|
||||
|
@ -463,14 +472,17 @@ bool SnapmaticPicture::setPictureTitl(const QString &newTitle_)
|
|||
QByteArray newTitleArray = newTitle.toUtf8();
|
||||
while (newTitleArray.length() != titlStreamEditorLength)
|
||||
{
|
||||
newTitleArray.append((char)0x00);
|
||||
newTitleArray += '\x00';
|
||||
}
|
||||
int result = snapmaticStream.write(newTitleArray);
|
||||
snapmaticStream.close();
|
||||
if (result != 0)
|
||||
{
|
||||
titlStr = newTitle;
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return true;
|
||||
}
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
@ -533,6 +545,7 @@ QImage SnapmaticPicture::getImage()
|
|||
QImage tempPicture;
|
||||
QImage returnPicture(snapmaticResolution, QImage::Format_RGB888);
|
||||
|
||||
if (lowRamMode) { rawPicContent = qUncompress(rawPicContent); }
|
||||
QBuffer snapmaticStream(&rawPicContent);
|
||||
snapmaticStream.open(QIODevice::ReadOnly);
|
||||
if (snapmaticStream.seek(jpegStreamEditorBegin))
|
||||
|
@ -541,6 +554,7 @@ QImage SnapmaticPicture::getImage()
|
|||
returnOk = tempPicture.loadFromData(jpegRawContent, "JPEG");
|
||||
}
|
||||
snapmaticStream.close();
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
|
||||
if (returnOk)
|
||||
{
|
||||
|
@ -722,8 +736,9 @@ bool SnapmaticPicture::setSnapmaticProperties(SnapmaticProperties newSpJson)
|
|||
QByteArray jsonByteArray = newJsonStr.toUtf8();
|
||||
while (jsonByteArray.length() != jsonStreamEditorLength)
|
||||
{
|
||||
jsonByteArray.append((char)0x00);
|
||||
jsonByteArray += '\x00';
|
||||
}
|
||||
if (lowRamMode) { rawPicContent = qUncompress(rawPicContent); }
|
||||
QBuffer snapmaticStream(&rawPicContent);
|
||||
snapmaticStream.open(QIODevice::ReadWrite);
|
||||
if (!snapmaticStream.seek(jsonStreamEditorBegin))
|
||||
|
@ -737,8 +752,14 @@ bool SnapmaticPicture::setSnapmaticProperties(SnapmaticProperties newSpJson)
|
|||
{
|
||||
localSpJson = newSpJson;
|
||||
jsonStr = newJsonStr;
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lowRamMode) { rawPicContent = qCompress(rawPicContent, 9); }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -773,15 +794,24 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, const QString form
|
|||
{
|
||||
numberLength = "00";
|
||||
}
|
||||
picFile->write(QByteArray::fromHex("00")); // First Null Byte
|
||||
picFile->write("G5E"); // GTA 5 Export
|
||||
picFile->write(QByteArray::fromHex("1000")); // 2 byte GTA 5 Export Version
|
||||
picFile->write("LEN"); // Before Length
|
||||
picFile->write(QByteArray::fromHex(numberLength)); // Length in HEX before Compressed
|
||||
picFile->write("FIL"); // Before File Name
|
||||
picFile->write(stockFileNameUTF8); // File Name
|
||||
picFile->write("COM"); // Before Compressed
|
||||
picFile->write(qCompress(rawPicContent, 9)); // Compressed Snapmatic
|
||||
QByteArray g5eHeader;
|
||||
g5eHeader += '\x00'; // First Null Byte
|
||||
g5eHeader += "G5E"; // GTA 5 Export
|
||||
g5eHeader += '\x10'; g5eHeader += '\x00'; // 2 byte GTA 5 Export Version
|
||||
g5eHeader += "LEN"; // Before Length
|
||||
g5eHeader += QByteArray::fromHex(numberLength); // Length in HEX before Compressed
|
||||
g5eHeader += "FIL"; // Before File Name
|
||||
g5eHeader += stockFileNameUTF8; // File Name
|
||||
g5eHeader += "COM"; // Before Compressed
|
||||
picFile->write(g5eHeader);
|
||||
if (!lowRamMode)
|
||||
{
|
||||
picFile->write(qCompress(rawPicContent, 9)); // Compressed Snapmatic
|
||||
}
|
||||
else
|
||||
{
|
||||
picFile->write(rawPicContent);
|
||||
}
|
||||
picFile->close();
|
||||
delete picFile;
|
||||
}
|
||||
|
@ -805,7 +835,14 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, const QString form
|
|||
else
|
||||
{
|
||||
// Classic straight export
|
||||
picFile->write(rawPicContent);
|
||||
if (!lowRamMode)
|
||||
{
|
||||
picFile->write(rawPicContent);
|
||||
}
|
||||
else
|
||||
{
|
||||
picFile->write(qUncompress(rawPicContent));
|
||||
}
|
||||
picFile->close();
|
||||
delete picFile;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* gta5sync-spv Grand Theft Auto Snapmatic Picture Viewer
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -53,8 +53,8 @@ public:
|
|||
explicit SnapmaticPicture(const QString &fileName = "", QObject *parent = 0);
|
||||
~SnapmaticPicture();
|
||||
void reset();
|
||||
bool readingPictureFromFile(const QString &fileName, bool writeEnabled = true, bool cacheEnabled = false, bool fastLoad = false);
|
||||
bool readingPicture(bool writeEnabled = true, bool cacheEnabled = true, bool fastLoad = false);
|
||||
bool readingPictureFromFile(const QString &fileName, bool writeEnabled = true, bool cacheEnabled = false, bool fastLoad = true, bool lowRamMode = false);
|
||||
bool readingPicture(bool writeEnabled = true, bool cacheEnabled = false, bool fastLoad = true, bool lowRamMode = false);
|
||||
bool isPicOk();
|
||||
void clearCache();
|
||||
QImage getImage();
|
||||
|
@ -118,6 +118,7 @@ private:
|
|||
QString titlStr;
|
||||
QString descStr;
|
||||
bool picOk;
|
||||
bool lowRamMode;
|
||||
bool writeEnabled;
|
||||
bool cacheEnabled;
|
||||
bool isCustomFormat;
|
||||
|
|
4
config.h
4
config.h
|
@ -50,14 +50,14 @@
|
|||
|
||||
#ifndef GTA5SYNC_APPVER
|
||||
#ifndef GTA5SYNC_DAILYB
|
||||
#define GTA5SYNC_APPVER "1.4.0-dev4"
|
||||
#define GTA5SYNC_APPVER "1.4.0-rc1"
|
||||
#else
|
||||
#define GTA5SYNC_APPVER QString("%1").arg(GTA5SYNC_DAILYB)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef GTA5SYNC_BUILDTYPE
|
||||
#define GTA5SYNC_BUILDTYPE "Developer"
|
||||
#define GTA5SYNC_BUILDTYPE "Release Candidate"
|
||||
#endif
|
||||
|
||||
#ifndef GTA5SYNC_SHARE
|
||||
|
|
12
gta5view.pro
12
gta5view.pro
|
@ -107,20 +107,18 @@ FORMS += \
|
|||
TRANSLATIONS += \
|
||||
res/gta5sync_de.ts \
|
||||
res/gta5sync_fr.ts \
|
||||
lang/gta5sync_ru.ts
|
||||
res/gta5sync_ru.ts
|
||||
|
||||
RESOURCES += \
|
||||
res/app.qrc
|
||||
|
||||
DISTFILES += res/app.rc \
|
||||
res/gta5view.desktop \
|
||||
res/gta5sync.desktop \
|
||||
res/gta5sync_de.ts \
|
||||
res/gta5sync_fr.ts \
|
||||
res/gta5view.exe.manifest \
|
||||
res/gta5view.png \
|
||||
lang/qtbase_ru.qm \
|
||||
lang/gta5sync_ru.ts \
|
||||
lang/qt_ru.qm \
|
||||
res/gta5sync_ru.ts \
|
||||
res/gta5sync.exe.manifest \
|
||||
res/gta5sync.png \
|
||||
lang/README.txt
|
||||
|
||||
INCLUDEPATH += ./uimod
|
||||
|
|
Binary file not shown.
|
@ -7,8 +7,8 @@ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gta5view.exe.manifest"
|
|||
#include <windows.h>
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1, 4, 0, 4
|
||||
PRODUCTVERSION 1, 4, 0, 4
|
||||
FILEVERSION 1, 4, 0, 5
|
||||
PRODUCTVERSION 1, 4, 0, 5
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEFLAGS 0
|
||||
FILEOS VOS_NT_WINDOWS32
|
||||
|
@ -25,12 +25,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Syping"
|
||||
VALUE "FileDescription", "gta5view\0"
|
||||
VALUE "FileVersion", "1.4.0-dev4\0"
|
||||
VALUE "FileVersion", "1.4.0-rc1\0"
|
||||
VALUE "InternalName", "gta5view\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2016-2017 Syping\0"
|
||||
VALUE "OriginalFilename", "gta5view.exe\0"
|
||||
VALUE "ProductName", "gta5view\0"
|
||||
VALUE "ProductVersion", "1.4.0-dev4\0"
|
||||
VALUE "ProductVersion", "1.4.0-rc1\0"
|
||||
END
|
||||
END
|
||||
END
|
||||
|
|
Binary file not shown.
|
@ -60,6 +60,50 @@ Copyright &copy; <a href="https://github.com/Syping/">Syping
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.ui" line="29"/>
|
||||
<source><span style=" font-weight:600;">%1</span><br/>
|
||||
<br/>
|
||||
%2<br/>
|
||||
<br/>
|
||||
Version %3<br/>
|
||||
Created on %4<br/>
|
||||
Built with Qt %5<br/>
|
||||
Running with Qt %6<br/>
|
||||
<br/>
|
||||
%7</source>
|
||||
<translation><span style=" font-weight:600;">%1</span><br/>
|
||||
<br/>
|
||||
%2<br/>
|
||||
<br/>
|
||||
Version %3<br/>
|
||||
Erstellt am %4<br/>
|
||||
Gebaut mit Qt %5<br/>
|
||||
Läuft auf Qt %6<br/>
|
||||
<br/>
|
||||
%7</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><span style=" font-weight:600;">%1</span><br/>
|
||||
<br/>
|
||||
%2<br/>
|
||||
<br/>
|
||||
Version %3<br/>
|
||||
Created on %4<br/>
|
||||
Built with Qt %5<br/>
|
||||
Running with Qt %6<br/>
|
||||
%8<br/>
|
||||
%7</source>
|
||||
<translation type="vanished"><span style=" font-weight:600;">%1</span><br/>
|
||||
<br/>
|
||||
%2<br/>
|
||||
<br/>
|
||||
Version %3<br/>
|
||||
Erstellt am %4<br/>
|
||||
Gebaut mit Qt %5<br/>
|
||||
Läuft auf Qt %6<br/>
|
||||
%8<br/>
|
||||
%7</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><span style=" font-weight:600;">%8</span><br/>
|
||||
<br/>
|
||||
%9<br/>
|
||||
|
@ -70,7 +114,7 @@ Compiled with Qt %2<br/>
|
|||
Running with Qt %3<br/>
|
||||
<br/>
|
||||
Copyright &copy; <a href="%5">%6</a> %7<br/>%8 is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></source>
|
||||
<translation><span style=" font-weight:600;">%8</span><br/>
|
||||
<translation type="vanished"><span style=" font-weight:600;">%8</span><br/>
|
||||
<br/>
|
||||
%9<br/>
|
||||
<br/>
|
||||
|
@ -102,15 +146,61 @@ Copyright &copy; <a href="%5">%6</a> %7<br/>%8 i
|
|||
<source><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 &copy; <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></source>
|
||||
<translation type="obsolete"><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 &copy; <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></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Using %1 %2</source>
|
||||
<translation type="vanished">Verwendet %1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translated by %1</source>
|
||||
<translation type="vanished">Übersetzt von %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="40"/>
|
||||
<source>Using %1 %2</source>
|
||||
<comment>Exp. Using libmyfuck</comment>
|
||||
<translation>Verwendet %1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="41"/>
|
||||
<source>Translated by %1</source>
|
||||
<comment>Exp. Translated by Syping</comment>
|
||||
<translation>Übersetzt von %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="42"/>
|
||||
<source>NAME_OF_TRANSLATOR</source>
|
||||
<comment>Your Name (The person behind your screen looking at this text!)</comment>
|
||||
<translation>Syping</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="43"/>
|
||||
<source>TRANSLATOR_PROFILE</source>
|
||||
<comment>mailto: http:// https:// Exp. https://github.com/Syping/</comment>
|
||||
<translation>https://github.com/Syping/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="64"/>
|
||||
<source>A project for viewing Grand Theft Auto V Snapmatic<br/>
|
||||
Pictures and Savegames</source>
|
||||
<translation>Ein Projekt zum ansehen von Grand Theft Auto V<br/>
|
||||
Snapmatic Bilder und Spielständen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="38"/>
|
||||
<location filename="../AboutDialog.cpp" line="68"/>
|
||||
<source>Copyright &copy; <a href="%1">%2</a> %3</source>
|
||||
<translation>Copyright &copy; <a href="%1">%2</a> %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="70"/>
|
||||
<source>%1 is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></source>
|
||||
<translation>%1 ist lizenziert unter <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright &copy; <a href="%1">%2</a> %3<br/>%4 is licensed under <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></source>
|
||||
<translation type="vanished">Copyright &copy; <a href="%1">%2</a> %3<br/>%4 ist lizenziert unter <a href="https://www.gnu.org/licenses/gpl-3.0.html#content">GNU GPLv3</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../AboutDialog.cpp" line="62"/>
|
||||
<source>A project for viewing and sync Grand Theft Auto V Snapmatic<br/>
|
||||
Pictures and Savegames</source>
|
||||
<translation>Ein Projekt zum ansehen und synchronisieren von<br/>
|
||||
|
@ -435,26 +525,26 @@ Grand Theft Auto V Snapmatic Bilder und Spielständen</translation>
|
|||
<translation type="obsolete">%1 (%2 wenn verfügbar) [sys]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="129"/>
|
||||
<location filename="../OptionsDialog.cpp" line="133"/>
|
||||
<source>System</source>
|
||||
<comment>System like PC System</comment>
|
||||
<translation>System</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="129"/>
|
||||
<location filename="../OptionsDialog.cpp" line="133"/>
|
||||
<source>%1 (%2 if available)</source>
|
||||
<comment>System like PC System = %1, System Language like Deutsch = %2</comment>
|
||||
<translation>%1 (%2 wenn verfügbar)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="288"/>
|
||||
<location filename="../OptionsDialog.cpp" line="292"/>
|
||||
<location filename="../OptionsDialog.cpp" line="296"/>
|
||||
<source>%1</source>
|
||||
<comment>%1</comment>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="288"/>
|
||||
<location filename="../OptionsDialog.cpp" line="292"/>
|
||||
<source>The new Custom Folder will initialize after you restart %1.</source>
|
||||
<translation>Der eigene Ordner wird initialisiert sobald du %1 neugestartet hast.</translation>
|
||||
</message>
|
||||
|
@ -463,20 +553,20 @@ Grand Theft Auto V Snapmatic Bilder und Spielständen</translation>
|
|||
<translation type="vanished">Der eigene Ordner initialisiert sobald du %1 neugestartet hast.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="292"/>
|
||||
<location filename="../OptionsDialog.cpp" line="296"/>
|
||||
<source>The language change will take effect after you restart %1.</source>
|
||||
<translation>Die Änderung der Sprache nimmt Effekt sobald du %1 neugestartet hast.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="302"/>
|
||||
<location filename="../OptionsDialog.cpp" line="306"/>
|
||||
<source>No Profile</source>
|
||||
<comment>No Profile, as default</comment>
|
||||
<translation>Kein Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../OptionsDialog.cpp" line="310"/>
|
||||
<location filename="../OptionsDialog.cpp" line="314"/>
|
||||
<location filename="../OptionsDialog.cpp" line="316"/>
|
||||
<location filename="../OptionsDialog.cpp" line="318"/>
|
||||
<location filename="../OptionsDialog.cpp" line="320"/>
|
||||
<source>Profile: %1</source>
|
||||
<translation>Profil: %1</translation>
|
||||
</message>
|
||||
|
@ -573,17 +663,17 @@ Grand Theft Auto V Snapmatic Bilder und Spielständen</translation>
|
|||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="132"/>
|
||||
<location filename="../PictureDialog.cpp" line="141"/>
|
||||
<source>Export as &JPG picture...</source>
|
||||
<translation>Exportiere als &JPG Bild...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="133"/>
|
||||
<location filename="../PictureDialog.cpp" line="142"/>
|
||||
<source>Export as &GTA Snapmatic...</source>
|
||||
<translation>Exportiere als &GTA Snapmatic...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="347"/>
|
||||
<location filename="../PictureDialog.cpp" line="358"/>
|
||||
<source>Key 1 - Avatar Preview Mode
|
||||
Key 2 - Toggle Overlay
|
||||
Arrow Keys - Navigate</source>
|
||||
|
@ -592,19 +682,19 @@ Taste 2 - Overlay umschalten
|
|||
Pfeiltasten - Navigieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="406"/>
|
||||
<location filename="../PictureDialog.cpp" line="478"/>
|
||||
<location filename="../PictureDialog.cpp" line="417"/>
|
||||
<location filename="../PictureDialog.cpp" line="489"/>
|
||||
<source>Snapmatic Picture Viewer</source>
|
||||
<translation>Snapmatic Bildansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="406"/>
|
||||
<location filename="../PictureDialog.cpp" line="478"/>
|
||||
<location filename="../PictureDialog.cpp" line="417"/>
|
||||
<location filename="../PictureDialog.cpp" line="489"/>
|
||||
<source>Failed at %1</source>
|
||||
<translation>Fehlgeschlagen bei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="533"/>
|
||||
<location filename="../PictureDialog.cpp" line="572"/>
|
||||
<source>Avatar Preview Mode
|
||||
Press 1 for Default View</source>
|
||||
<translation>Avatar Vorschaumodus
|
||||
|
@ -641,19 +731,19 @@ Drücke A für Standardansicht</translation>
|
|||
<translation type="vanished">Avatar Vorschaumodus<br>Drücke A für Standardansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="467"/>
|
||||
<location filename="../PictureDialog.cpp" line="477"/>
|
||||
<location filename="../PictureDialog.cpp" line="478"/>
|
||||
<location filename="../PictureDialog.cpp" line="488"/>
|
||||
<source>No player</source>
|
||||
<translation>Keine Spieler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="470"/>
|
||||
<location filename="../PictureDialog.cpp" line="477"/>
|
||||
<location filename="../PictureDialog.cpp" line="481"/>
|
||||
<location filename="../PictureDialog.cpp" line="488"/>
|
||||
<source>No crew</source>
|
||||
<translation>Keine Crew</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../PictureDialog.cpp" line="477"/>
|
||||
<location filename="../PictureDialog.cpp" line="488"/>
|
||||
<source>Unknown Location</source>
|
||||
<translation>Unbekannter Standort</translation>
|
||||
</message>
|
||||
|
@ -800,27 +890,27 @@ Drücke A für Standardansicht</translation>
|
|||
<translation>Lade Datei %1 von %2 Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.ui" line="166"/>
|
||||
<location filename="../ProfileInterface.ui" line="169"/>
|
||||
<source>%1 %2</source>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.ui" line="192"/>
|
||||
<location filename="../ProfileInterface.ui" line="195"/>
|
||||
<source>Import exported file</source>
|
||||
<translation>Importiere exportierte Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.ui" line="195"/>
|
||||
<location filename="../ProfileInterface.ui" line="198"/>
|
||||
<source>&Import...</source>
|
||||
<translation>&Importieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.ui" line="211"/>
|
||||
<location filename="../ProfileInterface.ui" line="214"/>
|
||||
<source>Close profile</source>
|
||||
<translation>Profil schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.ui" line="214"/>
|
||||
<location filename="../ProfileInterface.ui" line="217"/>
|
||||
<source>&Close</source>
|
||||
<translation>S&chließen</translation>
|
||||
</message>
|
||||
|
@ -841,29 +931,29 @@ Drücke A für Standardansicht</translation>
|
|||
<translation type="obsolete">Profil schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="108"/>
|
||||
<location filename="../ProfileInterface.cpp" line="114"/>
|
||||
<source>Loading...</source>
|
||||
<translation>Lade...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="384"/>
|
||||
<location filename="../ProfileInterface.cpp" line="421"/>
|
||||
<location filename="../ProfileInterface.cpp" line="390"/>
|
||||
<location filename="../ProfileInterface.cpp" line="427"/>
|
||||
<source>Import...</source>
|
||||
<translation>Importieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="385"/>
|
||||
<location filename="../ProfileInterface.cpp" line="475"/>
|
||||
<location filename="../ProfileInterface.cpp" line="480"/>
|
||||
<location filename="../ProfileInterface.cpp" line="507"/>
|
||||
<location filename="../ProfileInterface.cpp" line="523"/>
|
||||
<location filename="../ProfileInterface.cpp" line="673"/>
|
||||
<location filename="../ProfileInterface.cpp" line="678"/>
|
||||
<location filename="../ProfileInterface.cpp" line="696"/>
|
||||
<location filename="../ProfileInterface.cpp" line="701"/>
|
||||
<location filename="../ProfileInterface.cpp" line="712"/>
|
||||
<location filename="../ProfileInterface.cpp" line="749"/>
|
||||
<location filename="../ProfileInterface.cpp" line="391"/>
|
||||
<location filename="../ProfileInterface.cpp" line="481"/>
|
||||
<location filename="../ProfileInterface.cpp" line="486"/>
|
||||
<location filename="../ProfileInterface.cpp" line="513"/>
|
||||
<location filename="../ProfileInterface.cpp" line="529"/>
|
||||
<location filename="../ProfileInterface.cpp" line="679"/>
|
||||
<location filename="../ProfileInterface.cpp" line="684"/>
|
||||
<location filename="../ProfileInterface.cpp" line="702"/>
|
||||
<location filename="../ProfileInterface.cpp" line="707"/>
|
||||
<location filename="../ProfileInterface.cpp" line="718"/>
|
||||
<location filename="../ProfileInterface.cpp" line="755"/>
|
||||
<location filename="../ProfileInterface.cpp" line="761"/>
|
||||
<source>Import</source>
|
||||
<translation>Importieren</translation>
|
||||
</message>
|
||||
|
@ -872,41 +962,41 @@ Drücke A für Standardansicht</translation>
|
|||
<translation type="vanished">Alle Profildateien (SGTA* PGTA*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="388"/>
|
||||
<location filename="../ProfileInterface.cpp" line="394"/>
|
||||
<source>Importable files (*.g5e *.jpg *.png SGTA* PGTA*)</source>
|
||||
<translation>Importfähige Dateien (*.g5e *.jpg *.png SGTA* PGTA*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="390"/>
|
||||
<location filename="../UserInterface.cpp" line="344"/>
|
||||
<location filename="../ProfileInterface.cpp" line="396"/>
|
||||
<location filename="../UserInterface.cpp" line="351"/>
|
||||
<source>Savegames files (SGTA*)</source>
|
||||
<translation>Spielstanddateien (SGTA*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="391"/>
|
||||
<location filename="../UserInterface.cpp" line="345"/>
|
||||
<location filename="../ProfileInterface.cpp" line="397"/>
|
||||
<location filename="../UserInterface.cpp" line="352"/>
|
||||
<source>Snapmatic pictures (PGTA*)</source>
|
||||
<translation>Snapmatic Bilder (PGTA*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="392"/>
|
||||
<location filename="../ProfileInterface.cpp" line="398"/>
|
||||
<source>All image files (*.jpg *.png)</source>
|
||||
<translation>Alle Bilddateien (*.jpg *.png)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="393"/>
|
||||
<location filename="../UserInterface.cpp" line="346"/>
|
||||
<location filename="../ProfileInterface.cpp" line="399"/>
|
||||
<location filename="../UserInterface.cpp" line="353"/>
|
||||
<source>All files (**)</source>
|
||||
<translation>Alle Dateien (**)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="422"/>
|
||||
<location filename="../ProfileInterface.cpp" line="437"/>
|
||||
<location filename="../ProfileInterface.cpp" line="428"/>
|
||||
<location filename="../ProfileInterface.cpp" line="443"/>
|
||||
<source>Import file %1 of %2 files</source>
|
||||
<translation>Importiere Datei %1 von %2 Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="475"/>
|
||||
<location filename="../ProfileInterface.cpp" line="481"/>
|
||||
<source>Import failed with...
|
||||
|
||||
%1</source>
|
||||
|
@ -915,46 +1005,46 @@ Drücke A für Standardansicht</translation>
|
|||
%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="507"/>
|
||||
<location filename="../UserInterface.cpp" line="386"/>
|
||||
<location filename="../ProfileInterface.cpp" line="513"/>
|
||||
<location filename="../UserInterface.cpp" line="393"/>
|
||||
<source>Failed to read Snapmatic picture</source>
|
||||
<translation>Fehler beim Lesen vom Snapmatic Bild</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="523"/>
|
||||
<location filename="../UserInterface.cpp" line="402"/>
|
||||
<location filename="../ProfileInterface.cpp" line="529"/>
|
||||
<location filename="../UserInterface.cpp" line="409"/>
|
||||
<source>Failed to read Savegame file</source>
|
||||
<translation>Fehler beim Lesen von Spielstanddatei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="673"/>
|
||||
<location filename="../ProfileInterface.cpp" line="679"/>
|
||||
<source>Can't import %1 because of not valid file format</source>
|
||||
<translation>Kann %1 nicht importieren weil das Dateiformat nicht gültig ist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="696"/>
|
||||
<location filename="../ProfileInterface.cpp" line="702"/>
|
||||
<source>Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e</source>
|
||||
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA oder endet mit .g5e</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="701"/>
|
||||
<location filename="../ProfileInterface.cpp" line="707"/>
|
||||
<source>Failed to import the Snapmatic picture, the picture is already in the game</source>
|
||||
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, dieses Bild ist bereits im Spiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="856"/>
|
||||
<location filename="../ProfileInterface.cpp" line="862"/>
|
||||
<source>%1Export Snapmatic pictures%2<br><br>JPG pictures make it possible to open the picture with a Image Viewer<br>GTA Snapmatic make it possible to import the picture into the game<br><br>Export as:</source>
|
||||
<translation>%1Exportiere Snapmatic Bilder%2<br><br>JPG Bilder machen es möglich sie mit ein Bildansicht Programm zu öffnen<br>Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren<br><br>Exportieren als:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="480"/>
|
||||
<location filename="../ProfileInterface.cpp" line="678"/>
|
||||
<location filename="../UserInterface.cpp" line="434"/>
|
||||
<location filename="../ProfileInterface.cpp" line="486"/>
|
||||
<location filename="../ProfileInterface.cpp" line="684"/>
|
||||
<location filename="../UserInterface.cpp" line="441"/>
|
||||
<source>No valid file is selected</source>
|
||||
<translation>Keine gültige Datei wurde ausgewählt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="61"/>
|
||||
<location filename="../ProfileInterface.cpp" line="62"/>
|
||||
<source>Enabled pictures: %1 of %2</source>
|
||||
<translation>Aktivierte Bilder: %1 von %2</translation>
|
||||
</message>
|
||||
|
@ -963,35 +1053,35 @@ Drücke A für Standardansicht</translation>
|
|||
<translation type="vanished">Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="712"/>
|
||||
<location filename="../ProfileInterface.cpp" line="718"/>
|
||||
<source>Failed to import the Snapmatic picture, can't copy the file into profile</source>
|
||||
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, kann Snapmatic Bild nicht ins Profil kopieren </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="749"/>
|
||||
<location filename="../ProfileInterface.cpp" line="755"/>
|
||||
<source>Failed to import the Savegame, can't copy the file into profile</source>
|
||||
<translation>Fehlgeschlagen beim Importieren vom Spielstand, kann Spielstanddatei nicht ins Profil kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="755"/>
|
||||
<location filename="../ProfileInterface.cpp" line="761"/>
|
||||
<source>Failed to import the Savegame, no Savegame slot is left</source>
|
||||
<translation>Fehlgeschlagen beim Importieren vom Spielstand, kein Spielstandslot mehr frei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="841"/>
|
||||
<location filename="../ProfileInterface.cpp" line="859"/>
|
||||
<location filename="../ProfileInterface.cpp" line="847"/>
|
||||
<location filename="../ProfileInterface.cpp" line="865"/>
|
||||
<source>JPG pictures and GTA Snapmatic</source>
|
||||
<translation>JPG Bilder und GTA Snapmatic</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="842"/>
|
||||
<location filename="../ProfileInterface.cpp" line="864"/>
|
||||
<location filename="../ProfileInterface.cpp" line="848"/>
|
||||
<location filename="../ProfileInterface.cpp" line="870"/>
|
||||
<source>JPG pictures only</source>
|
||||
<translation>Nur JPG Bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="843"/>
|
||||
<location filename="../ProfileInterface.cpp" line="868"/>
|
||||
<location filename="../ProfileInterface.cpp" line="849"/>
|
||||
<location filename="../ProfileInterface.cpp" line="874"/>
|
||||
<source>GTA Snapmatic only</source>
|
||||
<translation>Nur GTA Snapmatic</translation>
|
||||
</message>
|
||||
|
@ -1010,25 +1100,25 @@ Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren
|
|||
Exportieren als:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="953"/>
|
||||
<location filename="../ProfileInterface.cpp" line="995"/>
|
||||
<location filename="../ProfileInterface.cpp" line="959"/>
|
||||
<location filename="../ProfileInterface.cpp" line="1001"/>
|
||||
<source>No Snapmatic pictures or Savegames files are selected</source>
|
||||
<translation>Keine Snapmatic Bilder oder Spielstände ausgewählt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="961"/>
|
||||
<location filename="../ProfileInterface.cpp" line="989"/>
|
||||
<location filename="../ProfileInterface.cpp" line="967"/>
|
||||
<location filename="../ProfileInterface.cpp" line="995"/>
|
||||
<location filename="../ProfileInterface.cpp" line="1001"/>
|
||||
<source>Remove selected</source>
|
||||
<translation>Auswahl löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="961"/>
|
||||
<location filename="../ProfileInterface.cpp" line="967"/>
|
||||
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
|
||||
<translation>Möchtest du wirklich die ausgewählten Snapmatic Bilder und Spielstanddateien löschen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="989"/>
|
||||
<location filename="../ProfileInterface.cpp" line="995"/>
|
||||
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
|
||||
<translation>Fehlgeschlagen beim kompletten entfernen der ausgewählten Snapmatic Bilder und/oder der Spielstanddateien</translation>
|
||||
</message>
|
||||
|
@ -1049,10 +1139,10 @@ Exportieren als:</translation>
|
|||
<translation type="obsolete">Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="818"/>
|
||||
<location filename="../ProfileInterface.cpp" line="856"/>
|
||||
<location filename="../ProfileInterface.cpp" line="933"/>
|
||||
<location filename="../ProfileInterface.cpp" line="953"/>
|
||||
<location filename="../ProfileInterface.cpp" line="824"/>
|
||||
<location filename="../ProfileInterface.cpp" line="862"/>
|
||||
<location filename="../ProfileInterface.cpp" line="939"/>
|
||||
<location filename="../ProfileInterface.cpp" line="959"/>
|
||||
<source>Export selected</source>
|
||||
<translation>Auswahl exportieren</translation>
|
||||
</message>
|
||||
|
@ -1073,12 +1163,12 @@ Exportieren als:</translation>
|
|||
<translation type="obsolete">Wie sollen wir mit den Snapmatic Bilder umgehen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="899"/>
|
||||
<location filename="../ProfileInterface.cpp" line="905"/>
|
||||
<source>Export selected...</source>
|
||||
<translation>Auswahl exportieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="900"/>
|
||||
<location filename="../ProfileInterface.cpp" line="906"/>
|
||||
<source>Initializing export...</source>
|
||||
<translation>Initialisiere Export...</translation>
|
||||
</message>
|
||||
|
@ -1087,7 +1177,7 @@ Exportieren als:</translation>
|
|||
<translation type="obsolete">Initialisierung...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="933"/>
|
||||
<location filename="../ProfileInterface.cpp" line="939"/>
|
||||
<source>Export failed with...
|
||||
|
||||
%1</source>
|
||||
|
@ -1117,13 +1207,13 @@ Exportieren als:</translation>
|
|||
<translation>Exportiere Datei %1 von %2 Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../UserInterface.cpp" line="342"/>
|
||||
<location filename="../UserInterface.cpp" line="349"/>
|
||||
<source>All profile files (*.g5e SGTA* PGTA*)</source>
|
||||
<translation>Alle Profildateien (*.g5e SGTA* PGTA*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ProfileInterface.cpp" line="389"/>
|
||||
<location filename="../UserInterface.cpp" line="343"/>
|
||||
<location filename="../ProfileInterface.cpp" line="395"/>
|
||||
<location filename="../UserInterface.cpp" line="350"/>
|
||||
<source>GTA V Export (*.g5e)</source>
|
||||
<translation>GTA V Export (*.g5e)</translation>
|
||||
</message>
|
||||
|
@ -1145,7 +1235,7 @@ Exportieren als:</translation>
|
|||
<name>SavegameDialog</name>
|
||||
<message>
|
||||
<location filename="../SavegameDialog.ui" line="14"/>
|
||||
<location filename="../SavegameDialog.cpp" line="33"/>
|
||||
<location filename="../SavegameDialog.cpp" line="38"/>
|
||||
<source>Savegame Viewer</source>
|
||||
<translation>Spielstandanzeiger</translation>
|
||||
</message>
|
||||
|
@ -1177,7 +1267,7 @@ Exportieren als:</translation>
|
|||
<translation type="obsolete">Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../SavegameDialog.cpp" line="33"/>
|
||||
<location filename="../SavegameDialog.cpp" line="38"/>
|
||||
<source>Failed at %1</source>
|
||||
<translation>Fehlgeschlagen bei %1</translation>
|
||||
</message>
|
||||
|
@ -1204,12 +1294,12 @@ Exportieren als:</translation>
|
|||
<translation type="vanished">SPIELSTAND - %1<br>%2< |