128 changed files with 20947 additions and 15637 deletions
@ -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 |
@ -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 --install=no --pkgname=gta5view --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<[email protected]\>" --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 --pkgname=gta5view --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<[email protected]\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5 --pakdir=../package |
||||
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt4 --pkgversion=$APPLICATION_VERSION --pkgrelease=travis1 --pkggroup=utility --maintainer="Syping on Travis \<[email protected]\>" --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 |
||||
|
@ -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: [email protected]" 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
|
||||
|
@ -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> |
||||
|
@ -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 |
||||
} |
||||
|
@ -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
|
||||
|
@ -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(); |
||||
|
||||