mirror of
https://github.com/UltimMC/Launcher.git
synced 2025-12-25 12:55:05 +00:00
Fix conflict
This commit is contained in:
@@ -37,6 +37,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
|
||||
m_settings->registerSetting("notes", "");
|
||||
m_settings->registerSetting("lastLaunchTime", 0);
|
||||
m_settings->registerSetting("totalTimePlayed", 0);
|
||||
m_settings->registerSetting("lastTimePlayed", 0);
|
||||
|
||||
// Custom Commands
|
||||
auto commandSetting = m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false);
|
||||
@@ -146,9 +147,12 @@ void BaseInstance::setRunning(bool running)
|
||||
}
|
||||
else
|
||||
{
|
||||
qint64 current = settings()->get("totalTimePlayed").toLongLong();
|
||||
QDateTime timeEnded = QDateTime::currentDateTime();
|
||||
|
||||
qint64 current = settings()->get("totalTimePlayed").toLongLong();
|
||||
settings()->set("totalTimePlayed", current + m_timeStarted.secsTo(timeEnded));
|
||||
settings()->set("lastTimePlayed", m_timeStarted.secsTo(timeEnded));
|
||||
|
||||
emit propertiesChanged(this);
|
||||
}
|
||||
|
||||
@@ -166,9 +170,20 @@ int64_t BaseInstance::totalTimePlayed() const
|
||||
return current;
|
||||
}
|
||||
|
||||
int64_t BaseInstance::lastTimePlayed() const
|
||||
{
|
||||
if(m_isRunning)
|
||||
{
|
||||
QDateTime timeNow = QDateTime::currentDateTime();
|
||||
return m_timeStarted.secsTo(timeNow);
|
||||
}
|
||||
return settings()->get("lastTimePlayed").toLongLong();
|
||||
}
|
||||
|
||||
void BaseInstance::resetTimePlayed()
|
||||
{
|
||||
settings()->reset("totalTimePlayed");
|
||||
settings()->reset("lastTimePlayed");
|
||||
}
|
||||
|
||||
QString BaseInstance::instanceType() const
|
||||
|
||||
@@ -87,6 +87,7 @@ public:
|
||||
void setRunning(bool running);
|
||||
bool isRunning() const;
|
||||
int64_t totalTimePlayed() const;
|
||||
int64_t lastTimePlayed() const;
|
||||
void resetTimePlayed();
|
||||
|
||||
/// get the type of this instance
|
||||
|
||||
@@ -387,9 +387,19 @@ InstanceList::InstListError InstanceList::loadList()
|
||||
add(newList);
|
||||
}
|
||||
m_dirty = false;
|
||||
updateTotalPlayTime();
|
||||
return NoError;
|
||||
}
|
||||
|
||||
void InstanceList::updateTotalPlayTime()
|
||||
{
|
||||
totalPlayTime = 0;
|
||||
for(auto const& itr : m_instances)
|
||||
{
|
||||
totalPlayTime += itr.get()->totalTimePlayed();
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceList::saveNow()
|
||||
{
|
||||
for(auto & item: m_instances)
|
||||
@@ -475,6 +485,7 @@ void InstanceList::propertiesChanged(BaseInstance *inst)
|
||||
if (i != -1)
|
||||
{
|
||||
emit dataChanged(index(i), index(i));
|
||||
updateTotalPlayTime();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -848,4 +859,9 @@ bool InstanceList::destroyStagingPath(const QString& keyPath)
|
||||
return FS::deletePath(keyPath);
|
||||
}
|
||||
|
||||
#include "InstanceList.moc"
|
||||
int InstanceList::getTotalPlayTime() {
|
||||
updateTotalPlayTime();
|
||||
return totalPlayTime;
|
||||
}
|
||||
|
||||
#include "InstanceList.moc"
|
||||
|
||||
@@ -128,6 +128,8 @@ public:
|
||||
*/
|
||||
bool destroyStagingPath(const QString & keyPath);
|
||||
|
||||
int getTotalPlayTime();
|
||||
|
||||
signals:
|
||||
void dataIsInvalid();
|
||||
void instancesChanged();
|
||||
@@ -145,6 +147,7 @@ private slots:
|
||||
|
||||
private:
|
||||
int getInstIndex(BaseInstance *inst) const;
|
||||
void updateTotalPlayTime();
|
||||
void suspendWatch();
|
||||
void resumeWatch();
|
||||
void add(const QList<InstancePtr> &list);
|
||||
@@ -155,6 +158,7 @@ private:
|
||||
|
||||
private:
|
||||
int m_watchLevel = 0;
|
||||
int totalPlayTime = 0;
|
||||
bool m_dirty = false;
|
||||
QList<InstancePtr> m_instances;
|
||||
QSet<QString> m_groupNameCache;
|
||||
|
||||
@@ -801,9 +801,15 @@ QString MinecraftInstance::getStatusbarDescription()
|
||||
|
||||
QString description;
|
||||
description.append(tr("Minecraft %1 (%2)").arg(m_components->getComponentVersion("net.minecraft")).arg(typeName()));
|
||||
if(m_settings->get("ShowGameTime").toBool() && totalTimePlayed() > 0)
|
||||
if(m_settings->get("ShowGameTime").toBool())
|
||||
{
|
||||
description.append(tr(", played for %1").arg(prettifyTimeDuration(totalTimePlayed())));
|
||||
if (lastTimePlayed() > 0) {
|
||||
description.append(tr(", last played for %1").arg(prettifyTimeDuration(lastTimePlayed())));
|
||||
}
|
||||
|
||||
if (totalTimePlayed() > 0) {
|
||||
description.append(tr(", total played for %1").arg(prettifyTimeDuration(totalTimePlayed())));
|
||||
}
|
||||
}
|
||||
if(hasCrashed())
|
||||
{
|
||||
|
||||
@@ -194,8 +194,7 @@ VersionFilePtr OneSixVersionFormat::versionFileFromJson(const QJsonDocument &doc
|
||||
LibDLInfo->artifact = out->mojangDownloads["client"];
|
||||
lib->setMojangDownloadInfo(LibDLInfo);
|
||||
}
|
||||
// we got nothing... guess based on ancient hardcoded Mojang behaviour
|
||||
// FIXME: this will eventually break...
|
||||
// we got nothing...
|
||||
else
|
||||
{
|
||||
out->addProblem(
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "Download.h"
|
||||
|
||||
#include "BuildConfig.h"
|
||||
#include <QFileInfo>
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
@@ -94,7 +95,7 @@ void Download::start()
|
||||
return;
|
||||
}
|
||||
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0");
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT);
|
||||
|
||||
QNetworkReply *rep = ENV.qnam().get(request);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <QJsonArray>
|
||||
#include <QJsonDocument>
|
||||
#include <QFile>
|
||||
#include <BuildConfig.h>
|
||||
|
||||
PasteUpload::PasteUpload(QWidget *window, QString text, QString key) : m_window(window)
|
||||
{
|
||||
@@ -34,7 +35,7 @@ bool PasteUpload::validateText()
|
||||
void PasteUpload::executeTask()
|
||||
{
|
||||
QNetworkRequest request(QUrl("https://api.paste.ee/v1/pastes"));
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Uncached)");
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT_UNCACHED);
|
||||
|
||||
request.setRawHeader("Content-Type", "application/json");
|
||||
request.setRawHeader("Content-Length", QByteArray::number(m_jsonContent.size()));
|
||||
|
||||
@@ -20,9 +20,9 @@ void ImgurAlbumCreation::start()
|
||||
{
|
||||
m_status = Job_InProgress;
|
||||
QNetworkRequest request(m_url);
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Uncached)");
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT_UNCACHED);
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
request.setRawHeader("Authorization", "Client-ID 5b97b0713fba4a3");
|
||||
request.setRawHeader("Authorization", QString("Client-ID %1").arg(BuildConfig.IMGUR_CLIENT_ID).toStdString().c_str());
|
||||
request.setRawHeader("Accept", "application/json");
|
||||
|
||||
QStringList hashes;
|
||||
|
||||
@@ -23,8 +23,8 @@ void ImgurUpload::start()
|
||||
finished = false;
|
||||
m_status = Job_InProgress;
|
||||
QNetworkRequest request(m_url);
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Uncached)");
|
||||
request.setRawHeader("Authorization", "Client-ID 5b97b0713fba4a3");
|
||||
request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT_UNCACHED);
|
||||
request.setRawHeader("Authorization", QString("Client-ID %1").arg(BuildConfig.IMGUR_CLIENT_ID).toStdString().c_str());
|
||||
request.setRawHeader("Accept", "application/json");
|
||||
|
||||
QFile f(m_shot->m_file.absoluteFilePath());
|
||||
|
||||
@@ -17,18 +17,6 @@
|
||||
|
||||
const static QLatin1Literal defaultLangCode("en_US");
|
||||
|
||||
static QLocale getLocaleFromKey(const QString &key) {
|
||||
if(key == "pt") {
|
||||
return QLocale("pt_PT");
|
||||
}
|
||||
else if (key == "en") {
|
||||
return QLocale("en_GB");
|
||||
}
|
||||
else {
|
||||
return QLocale(key);
|
||||
}
|
||||
}
|
||||
|
||||
enum class FileType
|
||||
{
|
||||
NONE,
|
||||
@@ -45,7 +33,7 @@ struct Language
|
||||
Language(const QString & _key)
|
||||
{
|
||||
key = _key;
|
||||
locale = getLocaleFromKey(key);
|
||||
locale = QLocale(key);
|
||||
updated = (key == defaultLangCode);
|
||||
}
|
||||
|
||||
@@ -310,11 +298,14 @@ void TranslationsModel::reloadLocalFiles()
|
||||
{
|
||||
return;
|
||||
}
|
||||
beginInsertRows(QModelIndex(), d->m_languages.size(), d->m_languages.size() + languages.size() - 1);
|
||||
beginInsertRows(QModelIndex(), 0, d->m_languages.size() + languages.size() - 1);
|
||||
for(auto & language: languages)
|
||||
{
|
||||
d->m_languages.append(language);
|
||||
}
|
||||
std::sort(d->m_languages.begin(), d->m_languages.end(), [](const Language& a, const Language& b) {
|
||||
return a.key.compare(b.key) < 0;
|
||||
});
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
@@ -347,7 +338,7 @@ QVariant TranslationsModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
case Column::Language:
|
||||
{
|
||||
return d->m_languages[row].locale.nativeLanguageName();
|
||||
return lang.locale.nativeLanguageName();
|
||||
}
|
||||
case Column::Completeness:
|
||||
{
|
||||
@@ -362,7 +353,7 @@ QVariant TranslationsModel::data(const QModelIndex& index, int role) const
|
||||
return tr("%1:\n%2 translated\n%3 fuzzy\n%4 total").arg(lang.key, QString::number(lang.translated), QString::number(lang.fuzzy), QString::number(lang.total));
|
||||
}
|
||||
case Qt::UserRole:
|
||||
return d->m_languages[row].key;
|
||||
return lang.key;
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
@@ -459,7 +450,7 @@ bool TranslationsModel::selectLanguage(QString key)
|
||||
* In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created.
|
||||
* This function is not reentrant.
|
||||
*/
|
||||
QLocale locale = getLocaleFromKey(langCode);
|
||||
QLocale locale = QLocale(langCode);
|
||||
QLocale::setDefault(locale);
|
||||
|
||||
// if it's the default UI language, finish
|
||||
|
||||
Reference in New Issue
Block a user