refactor: Make Args less of a singleton (#5041)

This means it's no longer a singleton, and its lifetime is bound to our application.
This felt like a good small experiment to see how its changes would look
if we did this.
As a shortcut, `getApp` that is already a mega singleton keeps a
reference to Args, this means places that are a bit more difficult to
inject into call `getApp()->getArgs()` just like other things are
accessed.
This commit is contained in:
pajlada
2023-12-29 15:40:31 +01:00
committed by GitHub
parent c65ebd26bd
commit d085ab578f
20 changed files with 78 additions and 69 deletions
+5 -5
View File
@@ -43,7 +43,7 @@ namespace chatterino {
using namespace literals;
LastRunCrashDialog::LastRunCrashDialog()
LastRunCrashDialog::LastRunCrashDialog(const Args &args)
{
this->setWindowFlag(Qt::WindowContextHelpButtonHint, false);
this->setWindowTitle(u"Chatterino - " % randomMessage());
@@ -62,14 +62,14 @@ LastRunCrashDialog::LastRunCrashDialog()
"<a href=\"file:///" %
reportsDir % u"\">" % reportsDir % u"</a>.<br>";
if (getArgs().exceptionCode)
if (args.exceptionCode)
{
text += u"The last run crashed with code <code>0x" %
QString::number(*getArgs().exceptionCode, 16) % u"</code>";
QString::number(*args.exceptionCode, 16) % u"</code>";
if (getArgs().exceptionMessage)
if (args.exceptionMessage)
{
text += u" (" % *getArgs().exceptionMessage % u")";
text += u" (" % *args.exceptionMessage % u")";
}
text += u".<br>"_s;
+3 -1
View File
@@ -4,10 +4,12 @@
namespace chatterino {
class Args;
class LastRunCrashDialog : public QDialog
{
public:
LastRunCrashDialog();
explicit LastRunCrashDialog(const Args &args);
};
} // namespace chatterino
+1 -1
View File
@@ -411,7 +411,7 @@ void SettingsDialog::showEvent(QShowEvent *e)
///// Widget creation helpers
void SettingsDialog::onOkClicked()
{
if (!getArgs().dontSaveSettings)
if (!getApp()->getArgs().dontSaveSettings)
{
getApp()->commands->save();
pajlada::Settings::SettingManager::gSave();