latest changes from gta5sync
This commit is contained in:
parent
69777a0263
commit
0069bb0b95
128 changed files with 20971 additions and 15661 deletions
27
.gitattributes
vendored
Normal file
27
.gitattributes
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto eol=lf
|
||||
|
||||
# Development files
|
||||
*.cpp text eol=lf
|
||||
*.h text eol=lf
|
||||
*.ui text eol=lf
|
||||
*.qrc text eol=lf
|
||||
|
||||
# Development resources
|
||||
*.ini text eol=lf
|
||||
|
||||
# Linux development files
|
||||
*.desktop text eol=lf
|
||||
|
||||
# Windows development files
|
||||
*.rc text eol=crlf
|
||||
*.exe.manifest text eol=crlf
|
||||
|
||||
# Binary files
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.qm binary
|
||||
*.ico binary
|
||||
*.icns binary
|
||||
*.xcf binary
|
||||
*.g5e binary
|
27
.travis.yml
27
.travis.yml
|
@ -4,7 +4,7 @@ sudo: required
|
|||
language: cpp
|
||||
|
||||
env:
|
||||
- PACKAGE_VERSION="1.4.0"
|
||||
- PACKAGE_VERSION="1.5.0"
|
||||
|
||||
before_install:
|
||||
- test -n $CC && unset CC
|
||||
|
@ -12,27 +12,42 @@ before_install:
|
|||
|
||||
install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq checkinstall dpkg-dev g++ gcc qtbase5-dev qt5-qmake
|
||||
- sudo apt-get install -qq checkinstall dpkg-dev g++ gcc qtbase5-dev qt5-qmake qttranslations5-l10n libqt4-dev
|
||||
|
||||
before_script:
|
||||
- export INSTALL_ROOT=/usr
|
||||
- if [ `git name-rev --tags --name-only $(git rev-parse HEAD)` == "undefined" ]; then export APPLICATION_VERSION="$PACKAGE_VERSION.$TRAVIS_BUILD_NUMBER"; else export APPLICATION_VERSION=`git name-rev --tags --name-only $(git rev-parse HEAD)`; fi
|
||||
- echo "gta5view build version is $APPLICATION_VERSION"
|
||||
- mkdir build
|
||||
- mkdir package
|
||||
- chmod -x res/gta5sync_*.qm res/gta5view.desktop res/gta5view.png
|
||||
- cd build
|
||||
- mkdir qt4
|
||||
- cd qt4
|
||||
- echo "Grand Theft Auto V Snapmatic and Savegame viewer" > ./description-pak
|
||||
- cd ..
|
||||
- mkdir qt5
|
||||
- cd qt5
|
||||
- echo "Grand Theft Auto V Snapmatic and Savegame viewer" > ./description-pak
|
||||
- cd ..
|
||||
|
||||
script:
|
||||
- qmake -qt=5 "DEFINES+=GTA5SYNC_BUILDTYPE=\\\\\\\"Release\\\\\\\"" "DEFINES+=GTA5SYNC_DAILYB=\\\\\\\"$APPLICATION_VERSION\\\\\\\"" ../gta5view.pro
|
||||
- cd qt5
|
||||
- qmake -qt=5 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$APPLICATION_VERSION\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
|
||||
- make -j 4
|
||||
- sudo checkinstall -D --default --nodoc --pkgname=gta5view --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5 --pakdir=../package
|
||||
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view-qt4 --replaces=gta5view-qt4 --pakdir=../../package
|
||||
- cd ..
|
||||
- cd qt4
|
||||
- qmake -qt=4 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$APPLICATION_VERSION\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
|
||||
- make -j 4
|
||||
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt4 --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqtcore4,libqtgui4,libqt4-network,qtcore4-l10n --conflicts=gta5view --replaces=gta5view --pakdir=../../package
|
||||
- cd ..
|
||||
|
||||
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_$APPLICATION_VERSION-travis1_amd64.deb"
|
||||
file_glob: true
|
||||
file: "../package/gta5view*.deb"
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
|
|
246
AboutDialog.cpp
246
AboutDialog.cpp
|
@ -1,121 +1,125 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <QStringBuilder>
|
||||
#include "AboutDialog.h"
|
||||
#include "ui_AboutDialog.h"
|
||||
#include "AppEnv.h"
|
||||
#include "config.h"
|
||||
|
||||
AboutDialog::AboutDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::AboutDialog)
|
||||
{
|
||||
// Set Window Flags
|
||||
setWindowFlags(windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||
|
||||
// Build Strings
|
||||
QString appVersion = qApp->applicationVersion();
|
||||
QString buildType = GTA5SYNC_BUILDTYPE;
|
||||
buildType.replace("_", " ");
|
||||
QString projectBuild = GTA5SYNC_BUILDDATETIME;
|
||||
QString buildStr = GTA5SYNC_BUILDSTRING;
|
||||
|
||||
// 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
|
||||
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(GTA5SYNC_APPSTR, projectDes, appVersion % " (" % buildType % ")", projectBuild, buildStr, qVersion(), copyrightDesA));
|
||||
this->setWindowTitle(titleStr.arg(GTA5SYNC_APPSTR));
|
||||
|
||||
if (QIcon::hasThemeIcon("dialog-close"))
|
||||
{
|
||||
ui->cmdClose->setIcon(QIcon::fromTheme("dialog-close"));
|
||||
}
|
||||
|
||||
// DPI calculation
|
||||
qreal screenRatio = AppEnv::screenRatio();
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
resize(375 * screenRatio, 270 * screenRatio);
|
||||
}
|
||||
else
|
||||
{
|
||||
resize(375 * screenRatio, 260 * screenRatio);
|
||||
}
|
||||
}
|
||||
|
||||
AboutDialog::~AboutDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <QStringBuilder>
|
||||
#include "AboutDialog.h"
|
||||
#include "ui_AboutDialog.h"
|
||||
#include "AppEnv.h"
|
||||
#include "config.h"
|
||||
|
||||
AboutDialog::AboutDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::AboutDialog)
|
||||
{
|
||||
// Set Window Flags
|
||||
setWindowFlags(windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||
|
||||
// Build Strings
|
||||
QString appVersion = qApp->applicationVersion();
|
||||
QString buildType = tr(GTA5SYNC_BUILDTYPE);
|
||||
buildType.replace("_", " ");
|
||||
QString projectBuild = GTA5SYNC_BUILDDATETIME;
|
||||
QString buildStr = GTA5SYNC_BUILDSTRING;
|
||||
|
||||
// Translator Comments
|
||||
//: Using specific library, example Using libmyfuck
|
||||
QString usingStr = tr("Using %1 %2");
|
||||
//: Translated by translator, example Translated by Syping
|
||||
QString translatedByStr = tr("Translated by %1");
|
||||
//: Enter your name there
|
||||
QString translatedByVal = tr("NAME_OF_TRANSLATOR");
|
||||
//: Enter your proilfe there, example a GitHub profile, E-Mail with "mailto: afucker@sumfuck.com" or a webpage
|
||||
QString translatorProfile = tr("TRANSLATOR_PROFILE");
|
||||
QString additionalContent = "";
|
||||
if (translatedByVal != "NAME_OF_TRANSLATOR")
|
||||
{
|
||||
if (translatorProfile != "TRANSLATOR_PROFILE")
|
||||
{
|
||||
additionalContent += translatedByStr.arg(QString("<a href=\"%1\">%2</a>").arg(translatorProfile, translatedByVal));
|
||||
}
|
||||
else
|
||||
{
|
||||
additionalContent += translatedByStr.arg(translatedByVal);
|
||||
}
|
||||
}
|
||||
#ifdef WITH_LIBJPEGTURBO // DONT USE IT FOR NOW
|
||||
bool additionalContentClip = false;
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
additionalContentClip = true;
|
||||
additionalContent += " (";
|
||||
}
|
||||
additionalContent += usingStr.arg("libjpegturbo", WITH_LIBJPEGTURBO);
|
||||
if (additionalContentClip)
|
||||
{
|
||||
additionalContent += ")";
|
||||
}
|
||||
#else
|
||||
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(GTA5SYNC_APPSTR, projectDes, appVersion % " (" % buildType % ")", projectBuild, buildStr, qVersion(), copyrightDesA));
|
||||
this->setWindowTitle(titleStr.arg(GTA5SYNC_APPSTR));
|
||||
|
||||
if (QIcon::hasThemeIcon("dialog-close"))
|
||||
{
|
||||
ui->cmdClose->setIcon(QIcon::fromTheme("dialog-close"));
|
||||
}
|
||||
|
||||
// DPI calculation
|
||||
qreal screenRatio = AppEnv::screenRatio();
|
||||
if (!additionalContent.isEmpty())
|
||||
{
|
||||
resize(375 * screenRatio, 270 * screenRatio);
|
||||
}
|
||||
else
|
||||
{
|
||||
resize(375 * screenRatio, 260 * screenRatio);
|
||||
}
|
||||
}
|
||||
|
||||
AboutDialog::~AboutDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef ABOUTDIALOG_H
|
||||
#define ABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class AboutDialog;
|
||||
}
|
||||
|
||||
class AboutDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AboutDialog(QWidget *parent = 0);
|
||||
~AboutDialog();
|
||||
|
||||
private slots:
|
||||
|
||||
private:
|
||||
Ui::AboutDialog *ui;
|
||||
QString aboutStr;
|
||||
QString titleStr;
|
||||
};
|
||||
|
||||
#endif // ABOUTDIALOG_H
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef ABOUTDIALOG_H
|
||||
#define ABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class AboutDialog;
|
||||
}
|
||||
|
||||
class AboutDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AboutDialog(QWidget *parent = 0);
|
||||
~AboutDialog();
|
||||
|
||||
private slots:
|
||||
|
||||
private:
|
||||
Ui::AboutDialog *ui;
|
||||
QString aboutStr;
|
||||
QString titleStr;
|
||||
};
|
||||
|
||||
#endif // ABOUTDIALOG_H
|
||||
|
|
204
AboutDialog.ui
204
AboutDialog.ui
|
@ -1,102 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>AboutDialog</class>
|
||||
<widget class="QDialog" name="AboutDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>375</width>
|
||||
<height>260</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>About %1</string>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vlAbout">
|
||||
<item>
|
||||
<widget class="QLabel" name="labAbout">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><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</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlButtons">
|
||||
<item>
|
||||
<spacer name="hsButtons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdClose">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>cmdClose</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>AboutDialog</receiver>
|
||||
<slot>close()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>327</x>
|
||||
<y>228</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>187</x>
|
||||
<y>124</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>AboutDialog</class>
|
||||
<widget class="QDialog" name="AboutDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>375</width>
|
||||
<height>260</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>About %1</string>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vlAbout">
|
||||
<item>
|
||||
<widget class="QLabel" name="labAbout">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><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</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlButtons">
|
||||
<item>
|
||||
<spacer name="hsButtons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdClose">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>cmdClose</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>AboutDialog</receiver>
|
||||
<slot>close()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>327</x>
|
||||
<y>228</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>187</x>
|
||||
<y>124</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
|
|
333
AppEnv.cpp
333
AppEnv.cpp
|
@ -1,155 +1,178 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "AppEnv.h"
|
||||
#include "StringParser.h"
|
||||
#include "StandardPaths.h"
|
||||
#include <QtGlobal>
|
||||
#include <QDesktopWidget>
|
||||
#include <QApplication>
|
||||
#include <QSettings>
|
||||
#include <QScreen>
|
||||
#include <QDebug>
|
||||
#include <QRect>
|
||||
#include <QDir>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
AppEnv::AppEnv()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Folder Stuff
|
||||
|
||||
QString AppEnv::getGameFolder(bool *ok)
|
||||
{
|
||||
QDir dir;
|
||||
QString GTAV_FOLDER = QString::fromUtf8(qgetenv("GTAV_FOLDER"));
|
||||
if (GTAV_FOLDER != "")
|
||||
{
|
||||
dir.setPath(GTAV_FOLDER);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != NULL) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
QString GTAV_defaultFolder = StandardPaths::documentsLocation() + QDir::separator() + "Rockstar Games" + QDir::separator() + "GTA V";
|
||||
QString GTAV_returnFolder = GTAV_defaultFolder;
|
||||
|
||||
QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
|
||||
settings.beginGroup("dir");
|
||||
bool forceDir = settings.value("force", false).toBool();
|
||||
GTAV_returnFolder = settings.value("dir", GTAV_defaultFolder).toString();
|
||||
settings.endGroup();
|
||||
|
||||
if (forceDir)
|
||||
{
|
||||
dir.setPath(GTAV_returnFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
dir.setPath(GTAV_defaultFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
|
||||
if (!forceDir)
|
||||
{
|
||||
dir.setPath(GTAV_returnFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
if (ok != 0) *ok = false;
|
||||
return "";
|
||||
}
|
||||
|
||||
bool AppEnv::setGameFolder(QString gameFolder)
|
||||
{
|
||||
QDir dir;
|
||||
dir.setPath(gameFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QString AppEnv::getLangFolder()
|
||||
{
|
||||
return StringParser::convertBuildedString(QString::fromUtf8(GTA5SYNC_LANG));
|
||||
}
|
||||
|
||||
QString AppEnv::getPluginsFolder()
|
||||
{
|
||||
return StringParser::convertBuildedString(QString::fromUtf8(GTA5SYNC_PLUG));
|
||||
}
|
||||
|
||||
// Web Stuff
|
||||
|
||||
QByteArray AppEnv::getUserAgent()
|
||||
{
|
||||
return QString("Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 %1/%2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER).toUtf8();
|
||||
}
|
||||
|
||||
// QUrl AppEnv::getCrewFetchingUrl(QString crewID)
|
||||
// {
|
||||
// return QUrl(QString("https://socialclub.rockstargames.com/reference/crewfeed/%1").arg(crewID));
|
||||
// }
|
||||
|
||||
QUrl AppEnv::getCrewFetchingUrl(QString crewID)
|
||||
{
|
||||
return QUrl(QString("https://socialclub.rockstargames.com/crew/%1/%1").arg(crewID));
|
||||
}
|
||||
|
||||
QUrl AppEnv::getPlayerFetchingUrl(QString crewID, QString pageNumber)
|
||||
{
|
||||
return QUrl(QString("https://socialclub.rockstargames.com/crewsapi/GetMembersList?crewId=%1&pageNumber=%2").arg(crewID, pageNumber));
|
||||
}
|
||||
|
||||
qreal AppEnv::screenRatio()
|
||||
{
|
||||
#if QT_VERSION >= 0x050000
|
||||
qreal dpi = QGuiApplication::primaryScreen()->logicalDotsPerInch();
|
||||
#else
|
||||
qreal dpi = qApp->desktop()->logicalDpiX();
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
return (dpi / 72);
|
||||
#else
|
||||
return (dpi / 96);
|
||||
#endif
|
||||
}
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "AppEnv.h"
|
||||
#include "StringParser.h"
|
||||
#include "StandardPaths.h"
|
||||
#include <QtGlobal>
|
||||
#include <QStringBuilder>
|
||||
#include <QDesktopWidget>
|
||||
#include <QApplication>
|
||||
#include <QSettings>
|
||||
#include <QScreen>
|
||||
#include <QDebug>
|
||||
#include <QRect>
|
||||
#include <QDir>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
AppEnv::AppEnv()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Folder Stuff
|
||||
|
||||
QString AppEnv::getGameFolder(bool *ok)
|
||||
{
|
||||
QDir dir;
|
||||
QString GTAV_FOLDER = QString::fromUtf8(qgetenv("GTAV_FOLDER"));
|
||||
if (GTAV_FOLDER != "")
|
||||
{
|
||||
dir.setPath(GTAV_FOLDER);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != NULL) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
QString GTAV_defaultFolder = StandardPaths::documentsLocation() % QDir::separator() % "Rockstar Games" % QDir::separator() % "GTA V";
|
||||
QString GTAV_returnFolder = GTAV_defaultFolder;
|
||||
|
||||
QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
|
||||
settings.beginGroup("dir");
|
||||
bool forceDir = settings.value("force", false).toBool();
|
||||
GTAV_returnFolder = settings.value("dir", GTAV_defaultFolder).toString();
|
||||
settings.endGroup();
|
||||
|
||||
if (forceDir)
|
||||
{
|
||||
dir.setPath(GTAV_returnFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
dir.setPath(GTAV_defaultFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
|
||||
if (!forceDir)
|
||||
{
|
||||
dir.setPath(GTAV_returnFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
if (ok != 0) *ok = true;
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return dir.absolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
if (ok != 0) *ok = false;
|
||||
return "";
|
||||
}
|
||||
|
||||
bool AppEnv::setGameFolder(QString gameFolder)
|
||||
{
|
||||
QDir dir;
|
||||
dir.setPath(gameFolder);
|
||||
if (dir.exists())
|
||||
{
|
||||
qputenv("GTAV_FOLDER", dir.absolutePath().toUtf8());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QString AppEnv::getExLangFolder()
|
||||
{
|
||||
return StringParser::convertBuildedString(GTA5SYNC_LANG);
|
||||
}
|
||||
|
||||
QString AppEnv::getInLangFolder()
|
||||
{
|
||||
#ifdef GTA5SYNC_QCONF
|
||||
#ifdef GTA5SYNC_INLANG
|
||||
return StringParser::convertBuildedString(GTA5SYNC_INLANG);
|
||||
#else
|
||||
return StringParser::convertBuildedString(GTA5SYNC_SHARE % QLatin1String("SEPARATOR:APPNAME:SEPARATOR:translations"));
|
||||
#endif
|
||||
#else
|
||||
#ifdef GTA5SYNC_INLANG
|
||||
return StringParser::convertBuildedString(GTA5SYNC_INLANG);
|
||||
#else
|
||||
return QString(":/tr");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
QString AppEnv::getPluginsFolder()
|
||||
{
|
||||
return StringParser::convertBuildedString(GTA5SYNC_PLUG);
|
||||
}
|
||||
|
||||
// Web Stuff
|
||||
|
||||
QByteArray AppEnv::getUserAgent()
|
||||
{
|
||||
return QString("Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 %1/%2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER).toUtf8();
|
||||
}
|
||||
|
||||
// QUrl AppEnv::getCrewFetchingUrl(QString crewID)
|
||||
// {
|
||||
// return QUrl(QString("https://socialclub.rockstargames.com/reference/crewfeed/%1").arg(crewID));
|
||||
// }
|
||||
|
||||
QUrl AppEnv::getCrewFetchingUrl(QString crewID)
|
||||
{
|
||||
return QUrl(QString("https://socialclub.rockstargames.com/crew/%1/%1").arg(crewID));
|
||||
}
|
||||
|
||||
QUrl AppEnv::getPlayerFetchingUrl(QString crewID, QString pageNumber)
|
||||
{
|
||||
return QUrl(QString("https://socialclub.rockstargames.com/crewsapi/GetMembersList?crewId=%1&pageNumber=%2").arg(crewID, pageNumber));
|
||||
}
|
||||
|
||||
QUrl AppEnv::getPlayerFetchingUrl(QString crewID, int pageNumber)
|
||||
{
|
||||
return getPlayerFetchingUrl(crewID, QString::number(pageNumber));
|
||||
}
|
||||
|
||||
qreal AppEnv::screenRatio()
|
||||
{
|
||||
#if QT_VERSION >= 0x050000
|
||||
qreal dpi = QGuiApplication::primaryScreen()->logicalDotsPerInch();
|
||||
#else
|
||||
qreal dpi = qApp->desktop()->logicalDpiX();
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
return (dpi / 72);
|
||||
#else
|
||||
return (dpi / 96);
|
||||
#endif
|
||||
}
|
||||
|
|
92
AppEnv.h
92
AppEnv.h
|
@ -1,45 +1,47 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef APPENV_H
|
||||
#define APPENV_H
|
||||
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
class AppEnv
|
||||
{
|
||||
public:
|
||||
AppEnv();
|
||||
|
||||
// Folder Stuff
|
||||
static QString getGameFolder(bool *ok = 0);
|
||||
static bool setGameFolder(QString gameFolder);
|
||||
static QString getLangFolder();
|
||||
static QString getPluginsFolder();
|
||||
|
||||
// Web Stuff
|
||||
static QByteArray getUserAgent();
|
||||
static QUrl getCrewFetchingUrl(QString crewID);
|
||||
static QUrl getPlayerFetchingUrl(QString crewID, QString pageNumber);
|
||||
|
||||
// Screen Stuff
|
||||
static qreal screenRatio();
|
||||
};
|
||||
|
||||
#endif // APPENV_H
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef APPENV_H
|
||||
#define APPENV_H
|
||||
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
class AppEnv
|
||||
{
|
||||
public:
|
||||
AppEnv();
|
||||
|
||||
// Folder Stuff
|
||||
static QString getGameFolder(bool *ok = 0);
|
||||
static bool setGameFolder(QString gameFolder);
|
||||
static QString getExLangFolder();
|
||||
static QString getInLangFolder();
|
||||
static QString getPluginsFolder();
|
||||
|
||||
// Web Stuff
|
||||
static QByteArray getUserAgent();
|
||||
static QUrl getCrewFetchingUrl(QString crewID);
|
||||
static QUrl getPlayerFetchingUrl(QString crewID, QString pageNumber);
|
||||
static QUrl getPlayerFetchingUrl(QString crewID, int pageNumber);
|
||||
|
||||
// Screen Stuff
|
||||
static qreal screenRatio();
|
||||
};
|
||||
|
||||
#endif // APPENV_H
|
||||
|
|
248
CrewDatabase.cpp
248
CrewDatabase.cpp
|
@ -1,83 +1,165 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "StandardPaths.h"
|
||||
#include "CrewDatabase.h"
|
||||
#include "config.h"
|
||||
#include <QFile>
|
||||
#include <QDir>
|
||||
|
||||
CrewDatabase::CrewDatabase(QObject *parent) : QObject(parent)
|
||||
{
|
||||
QDir dir;
|
||||
dir.mkpath(StandardPaths::dataLocation());
|
||||
dir.setPath(StandardPaths::dataLocation());
|
||||
QString dirPath = dir.absolutePath();
|
||||
QString defaultConfPath = dirPath + QDir::separator() + "crews.ini";
|
||||
|
||||
QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
|
||||
confPathSettings.beginGroup("Database");
|
||||
QString confPathFile = confPathSettings.value("Crews", defaultConfPath).toString();
|
||||
confPathSettings.endGroup();
|
||||
|
||||
crewDB = new QSettings(confPathFile, QSettings::IniFormat);
|
||||
crewDB->beginGroup("Crews");
|
||||
}
|
||||
|
||||
CrewDatabase::~CrewDatabase()
|
||||
{
|
||||
crewDB->endGroup();
|
||||
delete crewDB;
|
||||
}
|
||||
|
||||
QStringList CrewDatabase::getCrews()
|
||||
{
|
||||
QStringList compatibleCrewList = crewDB->childKeys();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("CrewList");
|
||||
QStringList crewIDs = crewDB->value("IDs", QStringList()).toStringList();
|
||||
crewIDs.append(compatibleCrewList);
|
||||
crewIDs.removeDuplicates();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("Crews");
|
||||
return crewIDs;
|
||||
}
|
||||
|
||||
QString CrewDatabase::getCrewName(int crewID)
|
||||
{
|
||||
QString crewStr = crewDB->value(QString::number(crewID), crewID).toString();
|
||||
if (crewID == 0) crewStr = tr("No Crew", "");
|
||||
return crewStr;
|
||||
}
|
||||
|
||||
void CrewDatabase::setCrewName(int crewID, QString crewName)
|
||||
{
|
||||
crewDB->setValue(QString::number(crewID), crewName);
|
||||
}
|
||||
|
||||
void CrewDatabase::addCrew(int crewID)
|
||||
{
|
||||
QStringList crews = getCrews();
|
||||
crews.append(QString::number(crewID));
|
||||
crews.removeDuplicates();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("CrewList");
|
||||
crewDB->setValue("IDs", crews);
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("Crews");
|
||||
}
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "StandardPaths.h"
|
||||
#include "CrewDatabase.h"
|
||||
#include "config.h"
|
||||
#include <QStringBuilder>
|
||||
#include <QMutexLocker>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QDir>
|
||||
|
||||
CrewDatabase::CrewDatabase(QObject *parent) : QObject(parent)
|
||||
{
|
||||
QDir dir;
|
||||
dir.mkpath(StandardPaths::dataLocation());
|
||||
dir.setPath(StandardPaths::dataLocation());
|
||||
QString dirPath = dir.absolutePath();
|
||||
QString defaultConfPath = dirPath % QDir::separator() % "crews.ini";
|
||||
|
||||
QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
|
||||
confPathSettings.beginGroup("Database");
|
||||
QString confPathFile = confPathSettings.value("Crews", defaultConfPath).toString();
|
||||
confPathSettings.endGroup();
|
||||
|
||||
crewDB = new QSettings(confPathFile, QSettings::IniFormat);
|
||||
crewDB->beginGroup("Crews");
|
||||
|
||||
addProcess = false;
|
||||
}
|
||||
|
||||
CrewDatabase::~CrewDatabase()
|
||||
{
|
||||
crewDB->endGroup();
|
||||
delete crewDB;
|
||||
}
|
||||
|
||||
QStringList CrewDatabase::getCrews()
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "getCrews";
|
||||
#endif
|
||||
return getCrews_p();
|
||||
}
|
||||
|
||||
QStringList CrewDatabase::getCrews_p()
|
||||
{
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "getCrews_p";
|
||||
#endif
|
||||
QStringList compatibleCrewList = getCompatibleCrews_p();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("CrewList");
|
||||
QStringList crewIDs = crewDB->value("IDs", QStringList()).toStringList();
|
||||
crewIDs += compatibleCrewList;
|
||||
crewIDs.removeDuplicates();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("Crews");
|
||||
return crewIDs;
|
||||
}
|
||||
|
||||
QStringList CrewDatabase::getCompatibleCrews()
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "getCompatibleCrews";
|
||||
#endif
|
||||
return getCompatibleCrews_p();
|
||||
}
|
||||
|
||||
QStringList CrewDatabase::getCompatibleCrews_p()
|
||||
{
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "getCompatibleCrews_p";
|
||||
#endif
|
||||
return crewDB->childKeys();
|
||||
}
|
||||
|
||||
QString CrewDatabase::getCrewName(int crewID)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "getCrewName" << crewID;
|
||||
#endif
|
||||
QString crewStr = crewDB->value(QString::number(crewID), crewID).toString();
|
||||
if (crewID == 0) crewStr = tr("No Crew", "");
|
||||
return crewStr;
|
||||
}
|
||||
|
||||
void CrewDatabase::setCrewName(int crewID, QString crewName)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "setCrewName" << crewID << crewName;
|
||||
#endif
|
||||
crewDB->setValue(QString::number(crewID), crewName);
|
||||
}
|
||||
|
||||
void CrewDatabase::addCrew(int crewID)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "addCrew" << crewID;
|
||||
#endif
|
||||
QStringList crews = getCrews_p();
|
||||
crews += QString::number(crewID);
|
||||
crews.removeDuplicates();
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("CrewList");
|
||||
crewDB->setValue("IDs", crews);
|
||||
crewDB->endGroup();
|
||||
crewDB->beginGroup("Crews");
|
||||
}
|
||||
|
||||
bool CrewDatabase::isCompatibleCrew(QString crewNID)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "isCompatibleCrew" << crewNID;
|
||||
#endif
|
||||
return crewDB->contains(crewNID);
|
||||
}
|
||||
|
||||
bool CrewDatabase::isCompatibleCrew(int crewID)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "isCompatibleCrew" << crewID;
|
||||
#endif
|
||||
return crewDB->contains(QString::number(crewID));
|
||||
}
|
||||
|
||||
void CrewDatabase::setAddingCrews(bool addingCrews)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "setAddingCrews" << addingCrews;
|
||||
#endif
|
||||
addProcess = addingCrews;
|
||||
}
|
||||
|
||||
bool CrewDatabase::isAddingCrews()
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "isAddingCrews";
|
||||
#endif
|
||||
return addProcess;
|
||||
}
|
||||
|
|
|
@ -1,43 +1,53 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CREWDATABASE_H
|
||||
#define CREWDATABASE_H
|
||||
|
||||
#include <QSettings>
|
||||
#include <QObject>
|
||||
#include <QMap>
|
||||
|
||||
class CrewDatabase : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CrewDatabase(QObject *parent = 0);
|
||||
void setCrewName(int crewID, QString crewName);
|
||||
QString getCrewName(int crewID);
|
||||
QStringList getCrews();
|
||||
~CrewDatabase();
|
||||
|
||||
private:
|
||||
QSettings *crewDB;
|
||||
|
||||
public slots:
|
||||
void addCrew(int crewID);
|
||||
};
|
||||
|
||||
#endif // CREWDATABASE_H
|
||||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CREWDATABASE_H
|
||||
#define CREWDATABASE_H
|
||||
|
||||
#include <QSettings>
|
||||
#include <QObject>
|
||||
#include <QMutex>
|
||||
#include <QMap>
|
||||
|
||||
class CrewDatabase : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CrewDatabase(QObject *parent = 0);
|
||||
QString getCrewName(int crewID);
|
||||
QStringList getCompatibleCrews();
|
||||
QStringList getCrews();
|
||||
void setAddingCrews(bool addingCrews);
|
||||
bool isCompatibleCrew(QString crewNID);
|
||||
bool isCompatibleCrew(int crewID);
|
||||
bool isAddingCrews();
|
||||
~CrewDatabase();
|
||||
|
||||
private:
|
||||
mutable QMutex mutex;
|
||||
bool addProcess;
|
||||
QSettings *crewDB;
|
||||
QStringList getCrews_p();
|
||||
QStringList getCompatibleCrews_p();
|
||||
|
||||
public slots:
|
||||
void setCrewName(int crewID, QString crewName);
|
||||
void addCrew(int crewID);
|
||||
};
|
||||
|
||||
#endif // CREWDATABASE_H
|
||||
|
|
|
@ -1,296 +1,276 @@
|
|||
/*****************************************************************************
|
||||
* gta5sync GRAND THEFT AUTO V SYNC
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "DatabaseThread.h"
|
||||
#include "CrewDatabase.h"
|
||||
#include "AppEnv.h"
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QStringList>
|
||||
#include <QVariantMap>
|
||||
#include <QEventLoop>
|
||||
#include <QTimer>
|
||||
#include <QDebug>
|
||||
#include <QUrl>
|
||||
|
||||
DatabaseThread::DatabaseThread(CrewDatabase *crewDB, QObject *parent) : QThread(parent), crewDB(crewDB)
|
||||
{
|
||||
crewMaxPages = 83;
|
||||
threadRunning = true;
|
||||
}
|
||||
|
||||
void DatabaseThread::run()
|
||||
{
|
||||
QEventLoop threadLoop;
|
||||
QStringList crewList;
|
||||
|
||||
// Register thread loop end signal
|
||||
QObject::connect(this, SIGNAL(threadEndCommited()), &threadLoop, SLOT(quit()));
|
||||
|
||||
// Quick time scan
|
||||
if (crewList.length() <= 3)
|
||||
{
|
||||
scanCrewReference(crewList, 2500);
|
||||
scanCrewMembersList(crewList, 3, 2500);
|
||||
emit playerNameUpdated();
|
||||
}
|
||||
else if (crewList.length() <= 5)
|
||||
{
|
||||