diff --git a/SavegameData.cpp b/SavegameData.cpp index d2bb280..9fb376f 100755 --- a/SavegameData.cpp +++ b/SavegameData.cpp @@ -22,7 +22,7 @@ #include #include -SavegameData::SavegameData(QString fileName, QObject *parent) : QObject(parent), savegameFileName(fileName) +SavegameData::SavegameData(const QString &fileName, QObject *parent) : QObject(parent), savegameFileName(fileName) { // PARSE INT INIT - DO NOT CHANGE THIS VALUES savegameHeaderLength = 260; @@ -41,7 +41,7 @@ bool SavegameData::readingSavegame() QFile *saveFile = new QFile(savegameFileName); if (!saveFile->open(QFile::ReadOnly)) { - lastStep = "1;/1,OpenFile," + convertDrawStringForLog(savegameFileName); + lastStep = "1;/1,OpenFile," + StringParser::convertDrawStringForLog(savegameFileName); saveFile->deleteLater(); delete saveFile; return false; @@ -50,7 +50,7 @@ bool SavegameData::readingSavegame() // Reading Savegame Header if (!saveFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(savegameFileName) + ",1,NOHEADER"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(savegameFileName) + ",1,NOHEADER"; saveFile->close(); saveFile->deleteLater(); delete saveFile; @@ -71,7 +71,7 @@ bool SavegameData::readingSavegame() return savegameOk; } -QString SavegameData::getSavegameDataString(QByteArray savegameHeader) +QString SavegameData::getSavegameDataString(const QByteArray &savegameHeader) { QByteArray savegameBytes = savegameHeader.left(savegameHeaderLength); QList savegameBytesList = savegameBytes.split(char(0x01)); @@ -80,7 +80,7 @@ QString SavegameData::getSavegameDataString(QByteArray savegameHeader) return StringParser::parseTitleString(savegameBytes, savegameBytes.length()); } -bool SavegameData::readingSavegameFromFile(QString fileName) +bool SavegameData::readingSavegameFromFile(const QString &fileName) { if (fileName != "") { @@ -93,16 +93,6 @@ bool SavegameData::readingSavegameFromFile(QString fileName) } } -QString SavegameData::convertDrawStringForLog(QString inputStr) -{ - return inputStr.replace("&","&u;").replace(",","&c;"); -} - -QString SavegameData::convertLogStringForDraw(QString inputStr) -{ - return inputStr.replace("&c;",",").replace("&u;","&"); -} - bool SavegameData::isSavegameOk() { return savegameOk; diff --git a/SavegameData.h b/SavegameData.h index 47e7fa4..f8ae3b1 100755 --- a/SavegameData.h +++ b/SavegameData.h @@ -25,8 +25,8 @@ class SavegameData : public QObject { Q_OBJECT public: - explicit SavegameData(QString fileName = "", QObject *parent = 0); - bool readingSavegameFromFile(QString fileName); + explicit SavegameData(const QString &fileName = "", QObject *parent = 0); + bool readingSavegameFromFile(const QString &fileName); bool readingSavegame(); bool isSavegameOk(); QString getLastStep(); @@ -34,9 +34,7 @@ public: QString getSavegameFileName(); private: - QString getSavegameDataString(QByteArray savegameHeader); - QString convertDrawStringForLog(QString inputStr); - QString convertLogStringForDraw(QString inputStr); + QString getSavegameDataString(const QByteArray &savegameHeader); QString savegameFileName; QString savegameStr; QString lastStep; diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index 5413844..7501498 100755 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -20,13 +20,14 @@ #include "StringParser.h" #include #include +#include #include #include #include #include #include -SnapmaticPicture::SnapmaticPicture(QString fileName, QObject *parent) : QObject(parent), picFileName(fileName) +SnapmaticPicture::SnapmaticPicture(const QString &fileName, QObject *parent) : QObject(parent), picFileName(fileName) { // PARSE INT INIT - DO NOT CHANGE THIS VALUES snapmaticHeaderLength = 278; @@ -39,8 +40,12 @@ SnapmaticPicture::SnapmaticPicture(QString fileName, QObject *parent) : QObject( // INIT PIC cachePicture = QImage(0, 0, QImage::Format_RGB32); + picExportFileName = ""; pictureStr = ""; lastStep = ""; + sortStr = ""; + titlStr = ""; + descStr = ""; picOk = 0; // INIT JSON @@ -61,7 +66,7 @@ bool SnapmaticPicture::readingPicture() QFile *picFile = new QFile(picFileName); if (!picFile->open(QFile::ReadOnly)) { - lastStep = "1;/1,OpenFile," + convertDrawStringForLog(picFileName); + lastStep = "1;/1,OpenFile," + StringParser::convertDrawStringForLog(picFileName); picFile->deleteLater(); delete picFile; return false; @@ -70,7 +75,7 @@ bool SnapmaticPicture::readingPicture() // Reading Snapmatic Header if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",1,NOHEADER"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",1,NOHEADER"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -82,7 +87,7 @@ bool SnapmaticPicture::readingPicture() // Reading JPEG Header Line if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",2,NOHEADER"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",2,NOHEADER"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -94,7 +99,7 @@ bool SnapmaticPicture::readingPicture() jpegHeaderLine.remove(0, jpegHeaderLineDifStr); if (jpegHeaderLine.left(4) != "JPEG") { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",2,NOJPEG"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",2,NOJPEG"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -104,7 +109,7 @@ bool SnapmaticPicture::readingPicture() // Read JPEG Stream if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",2,NOPIC"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",2,NOPIC"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -116,7 +121,7 @@ bool SnapmaticPicture::readingPicture() // Read JSON Stream if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,NOJSON"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",3,NOJSON"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -124,7 +129,7 @@ bool SnapmaticPicture::readingPicture() } else if (picFile->read(4) != "JSON") { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,CTJSON"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",3,CTJSON"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -136,7 +141,7 @@ bool SnapmaticPicture::readingPicture() if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",4,NOTITL"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",4,NOTITL"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -144,7 +149,7 @@ bool SnapmaticPicture::readingPicture() } else if (picFile->read(4) != "TITL") { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",4,CTTITL"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",4,CTTITL"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -155,7 +160,7 @@ bool SnapmaticPicture::readingPicture() if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",5,NODESC"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",5,NODESC"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -163,7 +168,7 @@ bool SnapmaticPicture::readingPicture() } else if (picFile->read(4) != "DESC") { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",5,CTDESC"; + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",5,CTDESC"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -172,13 +177,15 @@ bool SnapmaticPicture::readingPicture() QByteArray descRawContent = picFile->read(tideStreamLength); descStr = getSnapmaticTIDEString(descRawContent); + parseSnapmaticExportAndSortString(); + picFile->close(); picFile->deleteLater(); delete picFile; return picOk; } -QString SnapmaticPicture::getSnapmaticPictureString(QByteArray snapmaticHeader) +QString SnapmaticPicture::getSnapmaticPictureString(const QByteArray &snapmaticHeader) { QByteArray snapmaticBytes = snapmaticHeader.left(snapmaticUsefulLength); QList snapmaticBytesList = snapmaticBytes.split(char(0x01)); @@ -187,7 +194,7 @@ QString SnapmaticPicture::getSnapmaticPictureString(QByteArray snapmaticHeader) return StringParser::parseTitleString(snapmaticBytes, snapmaticBytes.length()); } -QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes) +QString SnapmaticPicture::getSnapmaticJSONString(const QByteArray &jsonBytes) { QByteArray jsonUsefulBytes = jsonBytes; jsonUsefulBytes.replace((char)0x00, ""); @@ -195,7 +202,7 @@ QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes) return QString::fromUtf8(jsonUsefulBytes).trimmed(); } -QString SnapmaticPicture::getSnapmaticTIDEString(QByteArray tideBytes) +QString SnapmaticPicture::getSnapmaticTIDEString(const QByteArray &tideBytes) { QByteArray tideUsefulBytes = tideBytes; tideUsefulBytes.remove(0,4); @@ -203,7 +210,37 @@ QString SnapmaticPicture::getSnapmaticTIDEString(QByteArray tideBytes) return QString::fromUtf8(tideUsefulBytesList.at(0)).trimmed(); } -bool SnapmaticPicture::readingPictureFromFile(QString fileName) +void SnapmaticPicture::parseSnapmaticExportAndSortString() +{ + QStringList pictureStrList = pictureStr.split(" - "); + if (pictureStrList.length() <= 2) + { + QString dtStr = pictureStrList.at(1); + QStringList dtStrList = dtStr.split(" "); + if (dtStrList.length() <= 2) + { + QString dayStr; + QString yearStr; + QString monthStr; + QString dateStr = dtStrList.at(0); + QString timeStr = dtStrList.at(1); + timeStr.replace(":",""); + QStringList dateStrList = dateStr.split("/"); + if (dateStrList.length() <= 3) + { + dayStr = dateStrList.at(1); + yearStr = dateStrList.at(2); + monthStr = dateStrList.at(0); + } + QString cmpPicTitl = titlStr; + cmpPicTitl.replace(" ", "_"); + sortStr = yearStr + monthStr + dayStr + timeStr; + picExportFileName = sortStr + "_" + cmpPicTitl + ".jpg"; + } + } +} + +bool SnapmaticPicture::readingPictureFromFile(const QString &fileName) { if (fileName != "") { @@ -216,16 +253,26 @@ bool SnapmaticPicture::readingPictureFromFile(QString fileName) } } -void SnapmaticPicture::setPicture(QImage picture) +void SnapmaticPicture::setPicture(const QImage &picture) { cachePicture = picture; } +QString SnapmaticPicture::getExportPictureFileName() +{ + return picExportFileName; +} + QString SnapmaticPicture::getPictureFileName() { return picFileName; } +QString SnapmaticPicture::getPictureSortStr() +{ + return sortStr; +} + QString SnapmaticPicture::getPictureDesc() { return descStr; @@ -251,16 +298,6 @@ QImage SnapmaticPicture::getPicture() return cachePicture; } -QString SnapmaticPicture::convertDrawStringForLog(QString inputStr) -{ - return inputStr.replace("&","&u;").replace(",","&c;"); -} - -QString SnapmaticPicture::convertLogStringForDraw(QString inputStr) -{ - return inputStr.replace("&c;",",").replace("&u;","&"); -} - bool SnapmaticPicture::isPicOk() { return picOk; diff --git a/SnapmaticPicture.h b/SnapmaticPicture.h index ab78469..5c148e3 100755 --- a/SnapmaticPicture.h +++ b/SnapmaticPicture.h @@ -29,17 +29,19 @@ class SnapmaticPicture : public QObject { Q_OBJECT public: - explicit SnapmaticPicture(QString fileName = "", QObject *parent = 0); - bool readingPictureFromFile(QString fileName); + explicit SnapmaticPicture(const QString &fileName = "", QObject *parent = 0); + bool readingPictureFromFile(const QString &fileName); bool readingPicture(); - void setPicture(QImage picture); + void setPicture(const QImage &picture); bool isPicOk(); QImage getPicture(); QString getLastStep(); QString getPictureStr(); QString getPictureTitl(); QString getPictureDesc(); + QString getPictureSortStr(); QString getPictureFileName(); + QString getExportPictureFileName(); // JSON bool isJsonOk(); @@ -51,15 +53,16 @@ public: QStringList getPlayers(); private: - QString getSnapmaticPictureString(QByteArray snapmaticHeader); - QString getSnapmaticJSONString(QByteArray jsonBytes); - QString getSnapmaticTIDEString(QByteArray tideBytes); - QString convertDrawStringForLog(QString inputStr); - QString convertLogStringForDraw(QString inputStr); + QString getSnapmaticPictureString(const QByteArray &snapmaticHeader); + QString getSnapmaticJSONString(const QByteArray &jsonBytes); + QString getSnapmaticTIDEString(const QByteArray &tideBytes); + void parseSnapmaticExportAndSortString(); QImage cachePicture; + QString picExportFileName; QString picFileName; QString pictureStr; QString lastStep; + QString sortStr; QString titlStr; QString descStr; bool picOk; diff --git a/StringParser.cpp b/StringParser.cpp index 7297fe8..033a114 100755 --- a/StringParser.cpp +++ b/StringParser.cpp @@ -16,21 +16,33 @@ * along with this program. If not, see . *****************************************************************************/ +#include "StringParser.h" #include #include #include #include -#include "StringParser.h" StringParser::StringParser() { } -QString StringParser::parseTitleString(QByteArray commitBytes, int maxLength) +QString StringParser::parseTitleString(const QByteArray &commitBytes, int maxLength) { Q_UNUSED(maxLength) QString retStr = QTextCodec::codecForName("UTF-16LE")->toUnicode(commitBytes).trimmed(); retStr.remove(QChar((char)0x00)); return retStr; } + +QString StringParser::convertDrawStringForLog(const QString &inputStr) +{ + QString outputStr = inputStr; + return outputStr.replace("&","&u;").replace(",","&c;"); +} + +QString StringParser::convertLogStringForDraw(const QString &inputStr) +{ + QString outputStr = inputStr; + return outputStr.replace("&c;",",").replace("&u;","&"); +} diff --git a/StringParser.h b/StringParser.h index 5404f82..4578ece 100755 --- a/StringParser.h +++ b/StringParser.h @@ -26,7 +26,9 @@ class StringParser { public: StringParser(); - static QString parseTitleString(QByteArray commitBytes, int maxLength); + static QString parseTitleString(const QByteArray &commitBytes, int maxLength); + static QString convertDrawStringForLog(const QString &inputStr); + static QString convertLogStringForDraw(const QString &inputStr); }; #endif // STRINGPARSER_H diff --git a/UserInterface.cpp b/UserInterface.cpp index 51b98c7..b009d37 100755 --- a/UserInterface.cpp +++ b/UserInterface.cpp @@ -43,7 +43,6 @@ UserInterface::UserInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, D ui->menuProfile->setEnabled(false); defaultWindowTitle = this->windowTitle(); - this->setWindowIcon(QIcon(":/img/5sync.png")); this->setWindowTitle(defaultWindowTitle.arg(tr("Select profile"))); // init settings