mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-08 02:53:25 -08:00
Mock: DlgCrashReport preview dialog (no account needed, redacted log preview), CrashReportingMode Ask/Always/Never setting in DebugSettings, --simulate-crash flag and Help-menu preview entry. Send writes a local mock JSON only. Vendor sentry-native 0.17.3 via FetchContent behind WITH_CRASH_REPORTING (breakpad everywhere, backend none under sanitizers) plus a CrashReporter facade with early init and post-loop shutdown. DSN is a placeholder: empty CMake default with COCKATRICE_SENTRY_DSN env override, so SDK init is skipped and mock behavior is unchanged until a real DSN is configured. CI prerequisites riding here so every layer below builds green: libcurl dev plus CA bundles in the Linux images and CodeQL env, sentry Qt integration off (its own find_package cannot see the macOS thin Qt layout), and the StrFunc Using construction makensis requires. Tests: ctest green, format clean, code plus UI gates PASS.
74 lines
2 KiB
C++
74 lines
2 KiB
C++
#include "personal_settings.h"
|
|
|
|
#include "libcockatrice/settings/settings_manager.h"
|
|
|
|
#include <QList>
|
|
#include <QVariant>
|
|
|
|
class QObject;
|
|
|
|
PersonalSettings::PersonalSettings(const QString &settingPath, QObject *parent)
|
|
: SettingsManager(settingPath + "personal.ini", "personal", QString(), parent)
|
|
{
|
|
}
|
|
|
|
QString PersonalSettings::getLang() const
|
|
{
|
|
return getValue("lang", QString(), QString(), QString()).toString();
|
|
}
|
|
|
|
bool PersonalSettings::getShowTipsOnStartup() const
|
|
{
|
|
return getValue("showTips", "tipOfDay", QString(), true).toBool();
|
|
}
|
|
|
|
QList<int> PersonalSettings::getSeenTips() const
|
|
{
|
|
QList<int> tips;
|
|
auto tipValues = getValue("seenTips", "tipOfDay", QString()).toList();
|
|
for (const auto &tipNumber : tipValues) {
|
|
tips.append(tipNumber.toInt());
|
|
}
|
|
return tips;
|
|
}
|
|
|
|
void PersonalSettings::setLang(const QString &_lang)
|
|
{
|
|
setValue(_lang, "lang");
|
|
emit langChanged();
|
|
}
|
|
|
|
void PersonalSettings::setShowTipsOnStartup(bool _showTipsOnStartup)
|
|
{
|
|
setValue(_showTipsOnStartup, "showTips", "tipOfDay");
|
|
}
|
|
|
|
void PersonalSettings::setSeenTips(const QList<int> &_seenTips)
|
|
{
|
|
QList<QVariant> storedTipList;
|
|
for (auto tipNumber : _seenTips) {
|
|
storedTipList.append(tipNumber);
|
|
}
|
|
setValue(QVariant::fromValue(storedTipList), "seenTips", "tipOfDay");
|
|
}
|
|
|
|
PersonalSettings::CrashReportingMode PersonalSettings::getCrashReportingMode() const
|
|
{
|
|
const int raw = getValue("crashReportingMode", QString(), QString(), 0).toInt();
|
|
switch (raw) {
|
|
case 1:
|
|
return CrashReportingMode::AlwaysSend;
|
|
case 2:
|
|
return CrashReportingMode::NeverSend;
|
|
case 0:
|
|
default:
|
|
// Clamp corrupt ini values back to Ask; the QSettings key string is unchanged (no migration).
|
|
return CrashReportingMode::Ask;
|
|
}
|
|
}
|
|
|
|
void PersonalSettings::setCrashReportingMode(CrashReportingMode _crashReportingMode)
|
|
{
|
|
setValue(static_cast<int>(_crashReportingMode), "crashReportingMode");
|
|
emit crashReportingModeChanged(_crashReportingMode);
|
|
}
|