diff --git a/src/Application.cpp b/src/Application.cpp index 22ae0c34b..b53940702 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -38,9 +38,7 @@ Application *Application::instance = nullptr; // to each other Application::Application(Settings &_settings, Paths &_paths) - : settings(&_settings) - , paths(&_paths) - , resources(&this->emplace()) + : resources(&this->emplace()) , themes(&this->emplace()) , fonts(&this->emplace()) diff --git a/src/Application.hpp b/src/Application.hpp index e32f29bdd..6089aef43 100644 --- a/src/Application.hpp +++ b/src/Application.hpp @@ -46,8 +46,6 @@ public: friend void test(); - Settings *const settings{}; - Paths *const paths{}; Resources2 *const resources; Theme *const themes{}; diff --git a/src/RunGui.cpp b/src/RunGui.cpp index 9fdcdb20c..7ed61be87 100644 --- a/src/RunGui.cpp +++ b/src/RunGui.cpp @@ -107,7 +107,7 @@ void runGui(QApplication &a, Paths &paths, Settings &settings) chatterino::Updates::getInstance().checkForUpdates(); #ifdef C_USE_BREAKPAD - QBreakpadInstance.setDumpPath(app->paths->settingsFolderPath + "/Crashes"); + QBreakpadInstance.setDumpPath(getPaths()->settingsFolderPath + "/Crashes"); #endif // Running file diff --git a/src/common/NetworkData.cpp b/src/common/NetworkData.cpp index ad8fe40b2..d3434576e 100644 --- a/src/common/NetworkData.cpp +++ b/src/common/NetworkData.cpp @@ -44,7 +44,7 @@ void NetworkData::writeToCache(const QByteArray &bytes) if (this->useQuickLoadCache_) { auto app = getApp(); - QFile cachedFile(app->paths->cacheDirectory + "/" + this->getHash()); + QFile cachedFile(getPaths()->cacheDirectory + "/" + this->getHash()); if (cachedFile.open(QIODevice::WriteOnly)) { cachedFile.write(bytes); diff --git a/src/common/NetworkRequest.cpp b/src/common/NetworkRequest.cpp index 0a2e45533..af27394de 100644 --- a/src/common/NetworkRequest.cpp +++ b/src/common/NetworkRequest.cpp @@ -147,7 +147,7 @@ Outcome NetworkRequest::tryLoadCachedFile() { auto app = getApp(); - QFile cachedFile(app->paths->cacheDirectory + "/" + this->data->getHash()); + QFile cachedFile(getPaths()->cacheDirectory + "/" + this->data->getHash()); if (!cachedFile.exists()) { // File didn't exist diff --git a/src/controllers/highlights/HighlightModel.cpp b/src/controllers/highlights/HighlightModel.cpp index cad2fd006..827e23a4a 100644 --- a/src/controllers/highlights/HighlightModel.cpp +++ b/src/controllers/highlights/HighlightModel.cpp @@ -37,13 +37,13 @@ void HighlightModel::getRowFromItem(const HighlightPhrase &item, void HighlightModel::afterInit() { std::vector row = this->createRow(); - setBoolItem(row[0], getApp()->settings->enableHighlightsSelf.getValue(), - true, false); + setBoolItem(row[0], getSettings()->enableHighlightsSelf.getValue(), true, + false); row[0]->setData("Your username (automatic)", Qt::DisplayRole); - setBoolItem(row[1], getApp()->settings->enableHighlightTaskbar.getValue(), - true, false); - setBoolItem(row[2], getApp()->settings->enableHighlightSound.getValue(), - true, false); + setBoolItem(row[1], getSettings()->enableHighlightTaskbar.getValue(), true, + false); + setBoolItem(row[2], getSettings()->enableHighlightSound.getValue(), true, + false); row[3]->setFlags(0); this->insertCustomRow(row, 0); } @@ -55,20 +55,17 @@ void HighlightModel::customRowSetData(const std::vector &row, switch (column) { case 0: { if (role == Qt::CheckStateRole) { - getApp()->settings->enableHighlightsSelf.setValue( - value.toBool()); + getSettings()->enableHighlightsSelf.setValue(value.toBool()); } } break; case 1: { if (role == Qt::CheckStateRole) { - getApp()->settings->enableHighlightTaskbar.setValue( - value.toBool()); + getSettings()->enableHighlightTaskbar.setValue(value.toBool()); } } break; case 2: { if (role == Qt::CheckStateRole) { - getApp()->settings->enableHighlightSound.setValue( - value.toBool()); + getSettings()->enableHighlightSound.setValue(value.toBool()); } } break; case 3: { diff --git a/src/controllers/taggedusers/TaggedUsersModel.cpp b/src/controllers/taggedusers/TaggedUsersModel.cpp index e3225888c..037b4ae63 100644 --- a/src/controllers/taggedusers/TaggedUsersModel.cpp +++ b/src/controllers/taggedusers/TaggedUsersModel.cpp @@ -29,12 +29,12 @@ void TaggedUsersModel::afterInit() { // std::vector row = this->createRow(); // setBoolItem(row[0], - // getApp()->settings->enableHighlightsSelf.getValue(), true, false); + // getSettings()->enableHighlightsSelf.getValue(), true, false); // row[0]->setData("Your username (automatic)", Qt::DisplayRole); // setBoolItem(row[1], - // getApp()->settings->enableHighlightTaskbar.getValue(), true, false); + // getSettings()->enableHighlightTaskbar.getValue(), true, false); // setBoolItem(row[2], - // getApp()->settings->enableHighlightSound.getValue(), true, false); + // getSettings()->enableHighlightSound.getValue(), true, false); // row[3]->setFlags(0); this->insertCustomRow(row, 0); } @@ -45,17 +45,17 @@ void TaggedUsersModel::afterInit() // switch (column) { // case 0: { // if (role == Qt::CheckStateRole) { -// getApp()->settings->enableHighlightsSelf.setValue(value.toBool()); +// getSettings()->enableHighlightsSelf.setValue(value.toBool()); // } // } break; // case 1: { // if (role == Qt::CheckStateRole) { -// getApp()->settings->enableHighlightTaskbar.setValue(value.toBool()); +// getSettings()->enableHighlightTaskbar.setValue(value.toBool()); // } // } break; // case 2: { // if (role == Qt::CheckStateRole) { -// getApp()->settings->enableHighlightSound.setValue(value.toBool()); +// getSettings()->enableHighlightSound.setValue(value.toBool()); // } // } break; // case 3: { diff --git a/src/messages/MessageElement.cpp b/src/messages/MessageElement.cpp index 24b526c29..b9271d2ed 100644 --- a/src/messages/MessageElement.cpp +++ b/src/messages/MessageElement.cpp @@ -225,8 +225,8 @@ void TimestampElement::addToContainer(MessageLayoutContainer &container, { if (flags.hasAny(this->getFlags())) { auto app = getApp(); - if (app->settings->timestampFormat != this->format_) { - this->format_ = app->settings->timestampFormat.getValue(); + if (getSettings()->timestampFormat != this->format_) { + this->format_ = getSettings()->timestampFormat.getValue(); this->element_.reset(this->formatTime(this->time_)); } @@ -238,7 +238,7 @@ TextElement *TimestampElement::formatTime(const QTime &time) { static QLocale locale("en_US"); - QString format = locale.toString(time, getApp()->settings->timestampFormat); + QString format = locale.toString(time, getSettings()->timestampFormat); return new TextElement(format, MessageElementFlag::Timestamp, MessageColor::System, FontStyle::ChatMedium); diff --git a/src/messages/layouts/MessageLayout.cpp b/src/messages/layouts/MessageLayout.cpp index c077ac4fb..c7ff02af9 100644 --- a/src/messages/layouts/MessageLayout.cpp +++ b/src/messages/layouts/MessageLayout.cpp @@ -73,7 +73,7 @@ bool MessageLayout::layout(int width, float scale, MessageElementFlags flags) // check if work mask changed layoutRequired |= this->currentWordFlags_ != flags; - this->currentWordFlags_ = flags; // app->settings->getWordTypeMask(); + this->currentWordFlags_ = flags; // getSettings()->getWordTypeMask(); // check if layout was requested manually layoutRequired |= this->flags.has(MessageLayoutFlag::RequiresLayout); @@ -177,7 +177,7 @@ void MessageLayout::paint(QPainter &painter, int width, int y, int messageIndex, } // draw message seperation line - if (app->settings->separateMessages.getValue()) { + if (getSettings()->separateMessages.getValue()) { painter.fillRect(0, y, this->container_->getWidth(), 1, app->themes->splits.messageSeperator); } @@ -190,7 +190,7 @@ void MessageLayout::paint(QPainter &painter, int width, int y, int messageIndex, : app->themes->tabs.selected.backgrounds.unfocused.color(); QBrush brush(color, static_cast( - app->settings->lastMessagePattern.getValue())); + getSettings()->lastMessagePattern.getValue())); painter.fillRect(0, y + this->container_->getHeight() - 1, pixmap->width(), 1, brush); @@ -214,7 +214,7 @@ void MessageLayout::updateBuffer(QPixmap *buffer, int /*messageIndex*/, backgroundColor = app->themes->messages.backgrounds.highlighted; } else if (this->message_->flags.has(MessageFlag::Subscription)) { backgroundColor = app->themes->messages.backgrounds.subscription; - } else if (app->settings->alternateMessageBackground.getValue() && + } else if (getSettings()->alternateMessageBackground.getValue() && this->flags.has(MessageLayoutFlag::AlternateBackground)) { backgroundColor = app->themes->messages.backgrounds.alternate; } else { diff --git a/src/messages/layouts/MessageLayoutContainer.cpp b/src/messages/layouts/MessageLayoutContainer.cpp index 2092524c9..008a02d05 100644 --- a/src/messages/layouts/MessageLayoutContainer.cpp +++ b/src/messages/layouts/MessageLayoutContainer.cpp @@ -14,7 +14,7 @@ #define COMPACT_EMOTES_OFFSET 6 #define MAX_UNCOLLAPSED_LINES \ - (getApp()->settings->collpseMessagesMinLines.getValue()) + (getSettings()->collpseMessagesMinLines.getValue()) namespace chatterino { @@ -235,7 +235,7 @@ void MessageLayoutContainer::end() bool MessageLayoutContainer::canCollapse() { - return getApp()->settings->collpseMessagesMinLines.getValue() > 0 && + return getSettings()->collpseMessagesMinLines.getValue() > 0 && this->flags_.has(MessageFlag::Collapsed); } diff --git a/src/providers/emoji/Emojis.cpp b/src/providers/emoji/Emojis.cpp index 18ce18139..5140d2fe1 100644 --- a/src/providers/emoji/Emojis.cpp +++ b/src/providers/emoji/Emojis.cpp @@ -217,7 +217,7 @@ void Emojis::loadEmojiSet() { auto app = getApp(); - app->settings->emojiSet.connect([=](const auto &emojiSet, auto) { + getSettings()->emojiSet.connect([=](const auto &emojiSet, auto) { log("Using emoji set {}", emojiSet); this->emojis.each([=](const auto &name, std::shared_ptr &emoji) { diff --git a/src/providers/twitch/IrcMessageHandler.cpp b/src/providers/twitch/IrcMessageHandler.cpp index 1679884b8..9aabbc91d 100644 --- a/src/providers/twitch/IrcMessageHandler.cpp +++ b/src/providers/twitch/IrcMessageHandler.cpp @@ -231,7 +231,7 @@ void IrcMessageHandler::handleWhisperMessage(Communi::IrcMessage *message) c->addMessage(_message); - if (app->settings->inlineWhispers) { + if (getSettings()->inlineWhispers) { app->twitch.server->forEachChannel([_message](ChannelPtr channel) { channel->addMessage(_message); // }); diff --git a/src/providers/twitch/TwitchMessageBuilder.cpp b/src/providers/twitch/TwitchMessageBuilder.cpp index 5b4cef199..7f8c2aa3d 100644 --- a/src/providers/twitch/TwitchMessageBuilder.cpp +++ b/src/providers/twitch/TwitchMessageBuilder.cpp @@ -63,7 +63,7 @@ bool TwitchMessageBuilder::isIgnored() const } } - if (app->settings->enableTwitchIgnoredUsers && + if (getSettings()->enableTwitchIgnoredUsers && this->tags.contains("user-id")) { auto sourceUserID = this->tags.value("user-id").toString(); @@ -289,7 +289,7 @@ void TwitchMessageBuilder::addTextOrEmoji(const QString &string_) } // if (!linkString.isEmpty()) { - // if (getApp()->settings->lowercaseLink) { + // if (getSettings()->lowercaseLink) { // QRegularExpression httpRegex("\\bhttps?://", // QRegularExpression::CaseInsensitiveOption); QRegularExpression // ftpRegex("\\bftps?://", @@ -499,9 +499,9 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg) // update the media player url if necessary QUrl highlightSoundUrl; - if (app->settings->customHighlightSound) { + if (getSettings()->customHighlightSound) { highlightSoundUrl = - QUrl::fromLocalFile(app->settings->pathHighlightSound.getValue()); + QUrl::fromLocalFile(getSettings()->pathHighlightSound.getValue()); } else { highlightSoundUrl = QUrl("qrc:/sounds/ping2.wav"); } @@ -519,10 +519,10 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg) std::vector userHighlights = app->highlights->highlightedUsers.getVector(); - if (app->settings->enableHighlightsSelf && currentUsername.size() > 0) { + if (getSettings()->enableHighlightsSelf && currentUsername.size() > 0) { HighlightPhrase selfHighlight( - currentUsername, app->settings->enableHighlightTaskbar, - app->settings->enableHighlightSound, false); + currentUsername, getSettings()->enableHighlightTaskbar, + getSettings()->enableHighlightSound, false); activeHighlights.emplace_back(std::move(selfHighlight)); } @@ -581,7 +581,7 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg) if (!isPastMsg) { if (playSound && - (!hasFocus || app->settings->highlightAlwaysPlaySound)) { + (!hasFocus || getSettings()->highlightAlwaysPlaySound)) { player->play(); } diff --git a/src/singletons/Fonts.cpp b/src/singletons/Fonts.cpp index 3c9efa79e..cc2f00727 100644 --- a/src/singletons/Fonts.cpp +++ b/src/singletons/Fonts.cpp @@ -105,13 +105,13 @@ Fonts::FontData Fonts::createFontData(FontStyle type, float scale) {FontStyle::ChatMedium, {1, false, QFont::Normal}}, {FontStyle::ChatMediumBold, {1, false, - QFont::Weight(getApp()->settings->boldScale.getValue())}}, + QFont::Weight(getSettings()->boldScale.getValue())}}, {FontStyle::ChatMediumItalic, {1, true, QFont::Normal}}, {FontStyle::ChatLarge, {1.2f, false, QFont::Normal}}, {FontStyle::ChatVeryLarge, {1.4f, false, QFont::Normal}}, }; sizeScale[FontStyle::ChatMediumBold] = { - 1, false, QFont::Weight(getApp()->settings->boldScale.getValue())}; + 1, false, QFont::Weight(getSettings()->boldScale.getValue())}; auto data = sizeScale[type]; return FontData( QFont(QString::fromStdString(this->chatFontFamily.getValue()), diff --git a/src/singletons/Paths.hpp b/src/singletons/Paths.hpp index 071feb737..70ab2642f 100644 --- a/src/singletons/Paths.hpp +++ b/src/singletons/Paths.hpp @@ -43,6 +43,6 @@ private: boost::optional portable_; }; -[[deprecated]] Paths *getPaths(); +Paths *getPaths(); } // namespace chatterino diff --git a/src/singletons/WindowManager.cpp b/src/singletons/WindowManager.cpp index 17bf1ea83..02b711f7b 100644 --- a/src/singletons/WindowManager.cpp +++ b/src/singletons/WindowManager.cpp @@ -406,7 +406,7 @@ void WindowManager::save() document.setObject(obj); // save file - QString settingsPath = app->paths->settingsDirectory + SETTINGS_FILENAME; + QString settingsPath = getPaths()->settingsDirectory + SETTINGS_FILENAME; QFile file(settingsPath); file.open(QIODevice::WriteOnly | QIODevice::Truncate); @@ -518,7 +518,7 @@ int WindowManager::clampUiScale(int scale) float WindowManager::getUiScaleValue() { - return getUiScaleValue(getApp()->settings->uiScale.getValue()); + return getUiScaleValue(getSettings()->uiScale.getValue()); } float WindowManager::getUiScaleValue(int scale) diff --git a/src/singletons/helper/GifTimer.cpp b/src/singletons/helper/GifTimer.cpp index 49fbd98bf..8ef657e7a 100644 --- a/src/singletons/helper/GifTimer.cpp +++ b/src/singletons/helper/GifTimer.cpp @@ -10,7 +10,7 @@ void GIFTimer::initialize() { this->timer.setInterval(30); - getApp()->settings->enableGifAnimations.connect([this](bool enabled, auto) { + getSettings()->enableGifAnimations.connect([this](bool enabled, auto) { if (enabled) { this->timer.start(); } else { diff --git a/src/singletons/helper/LoggingChannel.cpp b/src/singletons/helper/LoggingChannel.cpp index d70344448..c9081d2a6 100644 --- a/src/singletons/helper/LoggingChannel.cpp +++ b/src/singletons/helper/LoggingChannel.cpp @@ -30,11 +30,11 @@ LoggingChannel::LoggingChannel(const QString &_channelName) auto app = getApp(); - app->settings->logPath.connect([this](const QString &logPath, auto) { + getSettings()->logPath.connect([this](const QString &logPath, auto) { auto app = getApp(); if (logPath.isEmpty()) { - this->baseDirectory = app->paths->messageLogDirectory; + this->baseDirectory = getPaths()->messageLogDirectory; } else { this->baseDirectory = logPath; } diff --git a/src/util/StreamLink.cpp b/src/util/StreamLink.cpp index 2fd2ef0a3..aa2db55c0 100644 --- a/src/util/StreamLink.cpp +++ b/src/util/StreamLink.cpp @@ -37,8 +37,8 @@ QString getStreamlinkProgram() { auto app = getApp(); - if (app->settings->streamlinkUseCustomPath) { - return app->settings->streamlinkPath + "/" + getBinaryName(); + if (getSettings()->streamlinkUseCustomPath) { + return getSettings()->streamlinkPath + "/" + getBinaryName(); } else { return getBinaryName(); } @@ -62,7 +62,7 @@ void showStreamlinkNotFoundError() static QErrorMessage *msg = new QErrorMessage; auto app = getApp(); - if (app->settings->streamlinkUseCustomPath) { + if (getSettings()->streamlinkUseCustomPath) { msg->showMessage( "Unable to find Streamlink executable\nMake sure your custom path " "is pointing " @@ -146,9 +146,9 @@ void openStreamlink(const QString &channelURL, const QString &quality, QStringList arguments; - QString additionalOptions = app->settings->streamlinkOpts.getValue(); + QString additionalOptions = getSettings()->streamlinkOpts.getValue(); if (!additionalOptions.isEmpty()) { - arguments << app->settings->streamlinkOpts; + arguments << getSettings()->streamlinkOpts; } arguments.append(extraArguments); @@ -173,7 +173,7 @@ void openStreamlinkForChannel(const QString &channel) QString channelURL = "twitch.tv/" + channel; - QString preferredQuality = app->settings->preferredQuality; + QString preferredQuality = getSettings()->preferredQuality; preferredQuality = preferredQuality.toLower(); if (preferredQuality == "choose") { diff --git a/src/widgets/BaseWindow.cpp b/src/widgets/BaseWindow.cpp index 5c80bc9a7..32d470805 100644 --- a/src/widgets/BaseWindow.cpp +++ b/src/widgets/BaseWindow.cpp @@ -56,13 +56,13 @@ BaseWindow::BaseWindow(QWidget *parent, Flags _flags) this->init(); this->connections_.managedConnect( - getApp()->settings->uiScale.getValueChangedSignal(), + getSettings()->uiScale.getValueChangedSignal(), [this](auto, auto) { postToThread([this] { this->updateScale(); }); }); this->updateScale(); createWindowShortcut(this, "CTRL+0", - [] { getApp()->settings->uiScale.setValue(0); }); + [] { getSettings()->uiScale.setValue(0); }); // QTimer::this->scaleChangedEvent(this->getScale()); } @@ -163,7 +163,7 @@ void BaseWindow::init() // fourtf: don't ask me why we need to delay this if (!(this->flags_ & Flags::TopMost)) { QTimer::singleShot(1, this, [this] { - getApp()->settings->windowTopMost.connect( + getSettings()->windowTopMost.connect( [this](bool topMost, auto) { ::SetWindowPos(HWND(this->winId()), topMost ? HWND_TOPMOST : HWND_NOTOPMOST, 0, @@ -174,7 +174,7 @@ void BaseWindow::init() }); } #else -// if (getApp()->settings->windowTopMost.getValue()) { +// if (getSettings()->windowTopMost.getValue()) { // this->setWindowFlag(Qt::WindowStaysOnTopHint); // } #endif @@ -267,11 +267,11 @@ void BaseWindow::wheelEvent(QWheelEvent *event) if (event->modifiers() & Qt::ControlModifier) { if (event->delta() > 0) { - getApp()->settings->uiScale.setValue(WindowManager::clampUiScale( - getApp()->settings->uiScale.getValue() + 1)); + getSettings()->uiScale.setValue(WindowManager::clampUiScale( + getSettings()->uiScale.getValue() + 1)); } else { - getApp()->settings->uiScale.setValue(WindowManager::clampUiScale( - getApp()->settings->uiScale.getValue() - 1)); + getSettings()->uiScale.setValue(WindowManager::clampUiScale( + getSettings()->uiScale.getValue() - 1)); } } } diff --git a/src/widgets/Notebook.cpp b/src/widgets/Notebook.cpp index 8cd5a6075..04ecd0840 100644 --- a/src/widgets/Notebook.cpp +++ b/src/widgets/Notebook.cpp @@ -434,9 +434,9 @@ void SplitNotebook::addCustomButtons() auto settingsBtn = this->addCustomButton(); settingsBtn->setVisible( - !getApp()->settings->hidePreferencesButton.getValue()); + !getSettings()->hidePreferencesButton.getValue()); - getApp()->settings->hidePreferencesButton.connect( + getSettings()->hidePreferencesButton.connect( [settingsBtn](bool hide, auto) { settingsBtn->setVisible(!hide); }, this->connections_); @@ -447,8 +447,8 @@ void SplitNotebook::addCustomButtons() // account auto userBtn = this->addCustomButton(); - userBtn->setVisible(!getApp()->settings->hideUserButton.getValue()); - getApp()->settings->hideUserButton.connect( + userBtn->setVisible(!getSettings()->hideUserButton.getValue()); + getSettings()->hideUserButton.connect( [userBtn](bool hide, auto) { userBtn->setVisible(!hide); }, this->connections_); diff --git a/src/widgets/Window.cpp b/src/widgets/Window.cpp index 876f2a078..6df88b402 100644 --- a/src/widgets/Window.cpp +++ b/src/widgets/Window.cpp @@ -105,8 +105,8 @@ bool Window::event(QEvent *event) void Window::showEvent(QShowEvent *event) { // Startup notification - if (getApp()->settings->startUpNotification.getValue() < 1) { - getApp()->settings->startUpNotification = 1; + if (getSettings()->startUpNotification.getValue() < 1) { + getSettings()->startUpNotification = 1; auto box = new QMessageBox( QMessageBox::Information, "Chatterino 2 Beta", @@ -118,8 +118,8 @@ void Window::showEvent(QShowEvent *event) } // Show changelog - if (getApp()->settings->currentVersion.getValue() != "" && - getApp()->settings->currentVersion.getValue() != CHATTERINO_VERSION) { + if (getSettings()->currentVersion.getValue() != "" && + getSettings()->currentVersion.getValue() != CHATTERINO_VERSION) { auto box = new QMessageBox(QMessageBox::Information, "Chatterino 2 Beta", "Show changelog?", QMessageBox::Yes | QMessageBox::No); @@ -130,7 +130,7 @@ void Window::showEvent(QShowEvent *event) } } - getApp()->settings->currentVersion.setValue(CHATTERINO_VERSION); + getSettings()->currentVersion.setValue(CHATTERINO_VERSION); // -- BaseWindow::showEvent(event); @@ -281,8 +281,8 @@ void Window::addShortcuts() auto s = new QShortcut(QKeySequence::ZoomIn, this); s->setContext(Qt::WindowShortcut); QObject::connect(s, &QShortcut::activated, this, [] { - getApp()->settings->uiScale.setValue(WindowManager::clampUiScale( - getApp()->settings->uiScale.getValue() + 1)); + getSettings()->uiScale.setValue(WindowManager::clampUiScale( + getSettings()->uiScale.getValue() + 1)); }); } @@ -291,8 +291,8 @@ void Window::addShortcuts() auto s = new QShortcut(QKeySequence::ZoomOut, this); s->setContext(Qt::WindowShortcut); QObject::connect(s, &QShortcut::activated, this, [] { - getApp()->settings->uiScale.setValue(WindowManager::clampUiScale( - getApp()->settings->uiScale.getValue() - 1)); + getSettings()->uiScale.setValue(WindowManager::clampUiScale( + getSettings()->uiScale.getValue() - 1)); }); } diff --git a/src/widgets/dialogs/SettingsDialog.cpp b/src/widgets/dialogs/SettingsDialog.cpp index 8f0746ccb..1c89344f4 100644 --- a/src/widgets/dialogs/SettingsDialog.cpp +++ b/src/widgets/dialogs/SettingsDialog.cpp @@ -154,7 +154,7 @@ void SettingsDialog::showDialog(PreferredTab preferredTab) void SettingsDialog::refresh() { - getApp()->settings->saveSnapshot(); + getSettings()->saveSnapshot(); for (auto *tab : this->tabs_) { tab->getSettingsPage()->onShow(); @@ -199,7 +199,7 @@ void SettingsDialog::onCancelClicked() tab->getSettingsPage()->cancel(); } - getApp()->settings->restoreSnapshot(); + getSettings()->restoreSnapshot(); this->close(); } diff --git a/src/widgets/helper/ChannelView.cpp b/src/widgets/helper/ChannelView.cpp index 45bc7b677..467d34630 100644 --- a/src/widgets/helper/ChannelView.cpp +++ b/src/widgets/helper/ChannelView.cpp @@ -131,8 +131,7 @@ void ChannelView::initializeLayout() QObject::connect(this->goToBottom_, &EffectLabel::clicked, this, [=] { QTimer::singleShot(180, [=] { this->scrollBar_->scrollToBottom( - getApp() - ->settings->enableSmoothScrollingNewMessages.getValue()); + getSettings()->enableSmoothScrollingNewMessages.getValue()); }); }); } @@ -162,7 +161,7 @@ void ChannelView::initializeSignals() this->update(); })); - getApp()->settings->showLastMessageIndicator.connect( + getSettings()->showLastMessageIndicator.connect( [this](auto, auto) { this->update(); }, this->connections_); connections_.push_back( @@ -213,8 +212,6 @@ void ChannelView::actuallyLayoutMessages(bool causedByScrollbar) { // BenchmarkGuard benchmark("layout"); - auto app = getApp(); - auto messagesSnapshot = this->getMessagesSnapshot(); if (messagesSnapshot.getLength() == 0) { @@ -293,7 +290,7 @@ void ChannelView::actuallyLayoutMessages(bool causedByScrollbar) if (!this->isPaused()) { this->scrollBar_->scrollToBottom( // this->messageWasAdded && - app->settings->enableSmoothScrollingNewMessages.getValue()); + getSettings()->enableSmoothScrollingNewMessages.getValue()); } this->messageWasAdded_ = false; } @@ -654,8 +651,6 @@ void ChannelView::paintEvent(QPaintEvent * /*event*/) // such as the grey overlay when a message is disabled void ChannelView::drawMessages(QPainter &painter) { - auto app = getApp(); - auto messagesSnapshot = this->getMessagesSnapshot(); size_t start = size_t(this->scrollBar_->getCurrentValue()); @@ -674,7 +669,7 @@ void ChannelView::drawMessages(QPainter &painter) MessageLayout *layout = messagesSnapshot[i].get(); bool isLastMessage = false; - if (app->settings->showLastMessageIndicator) { + if (getSettings()->showLastMessageIndicator) { isLastMessage = this->lastReadMessage_.get() == layout; } @@ -737,9 +732,7 @@ void ChannelView::wheelEvent(QWheelEvent *event) } if (this->scrollBar_->isVisible()) { - auto app = getApp(); - - float mouseMultiplier = app->settings->mouseScrollMultiplier; + float mouseMultiplier = getSettings()->mouseScrollMultiplier; qreal desired = this->scrollBar_->getDesiredValue(); qreal delta = event->delta() * qreal(1.5) * mouseMultiplier; @@ -824,9 +817,7 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event) return; } - auto app = getApp(); - - if (app->settings->pauseChatHover.getValue()) { + if (getSettings()->pauseChatHover.getValue()) { this->pause(CHAT_HOVER_PAUSE_DURATION); } @@ -891,8 +882,6 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event) void ChannelView::mousePressEvent(QMouseEvent *event) { - auto app = getApp(); - this->mouseDown.invoke(event); std::shared_ptr layout; @@ -929,7 +918,7 @@ void ChannelView::mousePressEvent(QMouseEvent *event) return; } - if (app->settings->linksDoubleClickOnly.getValue()) { + if (getSettings()->linksDoubleClickOnly.getValue()) { this->pause(200); } @@ -1034,7 +1023,7 @@ void ChannelView::handleMouseClick(QMouseEvent *event, } auto &link = hoveredElement->getLink(); - if (!getApp()->settings->linksDoubleClickOnly) { + if (!getSettings()->linksDoubleClickOnly) { this->handleLinkClick(event, link, layout); this->linkClicked.invoke(link); @@ -1119,9 +1108,7 @@ void ChannelView::addContextMenuItems( void ChannelView::mouseDoubleClickEvent(QMouseEvent *event) { - auto app = getApp(); - - if (app->settings->linksDoubleClickOnly) { + if (getSettings()->linksDoubleClickOnly) { std::shared_ptr layout; QPoint relativePos; int messageIndex; diff --git a/src/widgets/helper/NotebookTab.cpp b/src/widgets/helper/NotebookTab.cpp index 865eb6048..15388e34c 100644 --- a/src/widgets/helper/NotebookTab.cpp +++ b/src/widgets/helper/NotebookTab.cpp @@ -35,7 +35,7 @@ NotebookTab::NotebookTab(Notebook *notebook) this->positionChangedAnimation_.setEasingCurve( QEasingCurve(QEasingCurve::InCubic)); - app->settings->showTabCloseButton.connect( + getSettings()->showTabCloseButton.connect( boost::bind(&NotebookTab::hideTabXChanged, this, _1), this->managedConnections_); @@ -286,7 +286,7 @@ void NotebookTab::paintEvent(QPaintEvent *) painter.setPen(colors.text); // set area for text - int rectW = (!app->settings->showTabCloseButton ? 0 : int(16 * scale)); + int rectW = (!getSettings()->showTabCloseButton ? 0 : int(16 * scale)); QRect rect(0, 0, this->width() - rectW, height); // draw text @@ -341,7 +341,7 @@ void NotebookTab::paintEvent(QPaintEvent *) bool NotebookTab::hasXButton() { - return getApp()->settings->showTabCloseButton && + return getSettings()->showTabCloseButton && this->notebook_->getAllowUserTabManagement(); } @@ -434,7 +434,7 @@ void NotebookTab::mouseMoveEvent(QMouseEvent *event) { auto app = getApp(); - if (app->settings->showTabCloseButton && + if (getSettings()->showTabCloseButton && this->notebook_->getAllowUserTabManagement()) // { bool overX = this->getXRect().contains(event->pos()); diff --git a/src/widgets/settingspages/CommandPage.cpp b/src/widgets/settingspages/CommandPage.cpp index bb3a60c59..b06988a57 100644 --- a/src/widgets/settingspages/CommandPage.cpp +++ b/src/widgets/settingspages/CommandPage.cpp @@ -47,7 +47,7 @@ CommandPage::CommandPage() layout.append( this->createCheckBox("Also match the trigger at the end of the message", - app->settings->allowCommandsAtEnd)); + getSettings()->allowCommandsAtEnd)); QLabel *text = layout.emplace(TEXT).getElement(); text->setWordWrap(true); diff --git a/src/widgets/settingspages/ExternalToolsPage.cpp b/src/widgets/settingspages/ExternalToolsPage.cpp index 0f47e37a1..bdb164e36 100644 --- a/src/widgets/settingspages/ExternalToolsPage.cpp +++ b/src/widgets/settingspages/ExternalToolsPage.cpp @@ -57,22 +57,22 @@ ExternalToolsPage::ExternalToolsPage() auto customPathCb = this->createCheckBox("Use custom path (Enable if using " "non-standard streamlink installation path)", - app->settings->streamlinkUseCustomPath); + getSettings()->streamlinkUseCustomPath); groupLayout->setWidget(2, QFormLayout::SpanningRole, customPathCb); - auto customPath = this->createLineEdit(app->settings->streamlinkPath); + auto customPath = this->createLineEdit(getSettings()->streamlinkPath); customPath->setPlaceholderText( "Path to folder where Streamlink executable can be found"); groupLayout->addRow("Custom streamlink path:", customPath); groupLayout->addRow( "Preferred quality:", this->createComboBox({STREAMLINK_QUALITY}, - app->settings->preferredQuality)); + getSettings()->preferredQuality)); groupLayout->addRow( "Additional options:", - this->createLineEdit(app->settings->streamlinkOpts)); + this->createLineEdit(getSettings()->streamlinkOpts)); - app->settings->streamlinkUseCustomPath.connect( + getSettings()->streamlinkUseCustomPath.connect( [=](const auto &value, auto) { customPath->setEnabled(value); // }, diff --git a/src/widgets/settingspages/FeelPage.cpp b/src/widgets/settingspages/FeelPage.cpp index d20c859c7..78b41c45d 100644 --- a/src/widgets/settingspages/FeelPage.cpp +++ b/src/widgets/settingspages/FeelPage.cpp @@ -20,7 +20,6 @@ namespace chatterino { FeelPage::FeelPage() : SettingsPage("Feel", ":/settings/behave.svg") { - auto app = getApp(); LayoutCreator layoutCreator(this); auto layout = layoutCreator.setLayoutType(); @@ -37,20 +36,20 @@ FeelPage::FeelPage() form->addRow( "", this->createCheckBox( "Show which users joined the channel (up to 1000 chatters)", - app->settings->showJoins)); + getSettings()->showJoins)); form->addRow( "", this->createCheckBox( "Show which users parted the channel (up to 1000 chatters)", - app->settings->showParts)); + getSettings()->showParts)); form->addRow("Pause chat:", this->createCheckBox(PAUSE_HOVERING, - app->settings->pauseChatHover)); + getSettings()->pauseChatHover)); form->addRow("Mouse scroll speed:", this->createMouseScrollSlider()); form->addRow("Links:", this->createCheckBox("Open links only on double click", - app->settings->linksDoubleClickOnly)); + getSettings()->linksDoubleClickOnly)); } layout->addSpacing(16); @@ -61,11 +60,11 @@ FeelPage::FeelPage() groupLayout->addRow( LIMIT_CHATTERS_FOR_SMALLER_STREAMERS, this->createCheckBox( - "", app->settings->onlyFetchChattersForSmallerStreamers)); + "", getSettings()->onlyFetchChattersForSmallerStreamers)); groupLayout->addRow( "What viewer count counts as a \"smaller streamer\"", - this->createSpinBox(app->settings->smallStreamerLimit, 10, 50000)); + this->createSpinBox(getSettings()->smallStreamerLimit, 10, 50000)); } { @@ -73,7 +72,7 @@ FeelPage::FeelPage() auto groupLayout = group.setLayoutType(); groupLayout.append(this->createCheckBox("Show whispers inline", - app->settings->inlineWhispers)); + getSettings()->inlineWhispers)); } layout->addStretch(1); @@ -81,17 +80,16 @@ FeelPage::FeelPage() QSlider *FeelPage::createMouseScrollSlider() { - auto app = getApp(); auto slider = new QSlider(Qt::Horizontal); - float currentValue = app->settings->mouseScrollMultiplier; + float currentValue = getSettings()->mouseScrollMultiplier; int sliderValue = int(((currentValue - 0.1f) / 2.f) * 99.f); slider->setValue(sliderValue); QObject::connect(slider, &QSlider::valueChanged, [=](int newValue) { float mul = static_cast(newValue) / 99.f; float newSliderValue = (mul * 2.1f) + 0.1f; - app->settings->mouseScrollMultiplier = newSliderValue; + getSettings()->mouseScrollMultiplier = newSliderValue; }); return slider; diff --git a/src/widgets/settingspages/HighlightingPage.cpp b/src/widgets/settingspages/HighlightingPage.cpp index 455c0d377..be394b3c2 100644 --- a/src/widgets/settingspages/HighlightingPage.cpp +++ b/src/widgets/settingspages/HighlightingPage.cpp @@ -39,7 +39,7 @@ HighlightingPage::HighlightingPage() { // GENERAL // layout.append(this->createCheckBox(ENABLE_HIGHLIGHTS, - // app->settings->enableHighlights)); + // getSettings()->enableHighlights)); // TABS auto tabs = layout.emplace(); @@ -135,7 +135,7 @@ HighlightingPage::HighlightingPage() auto customSound = layout.emplace().withoutMargin(); { customSound.append(this->createCheckBox( - "Custom sound", app->settings->customHighlightSound)); + "Custom sound", getSettings()->customHighlightSound)); auto selectFile = customSound.emplace("Select custom sound file"); QObject::connect(selectFile.getElement(), &QPushButton::clicked, @@ -143,12 +143,12 @@ HighlightingPage::HighlightingPage() auto fileName = QFileDialog::getOpenFileName( this, tr("Open Sound"), "", tr("Audio Files (*.mp3 *.wav)")); - app->settings->pathHighlightSound = fileName; + getSettings()->pathHighlightSound = fileName; }); } layout.append(createCheckBox(ALWAYS_PLAY, - app->settings->highlightAlwaysPlaySound)); + getSettings()->highlightAlwaysPlaySound)); } // ---- misc diff --git a/src/widgets/settingspages/IgnoresPage.cpp b/src/widgets/settingspages/IgnoresPage.cpp index b23ecbb89..8aa6c5c4a 100644 --- a/src/widgets/settingspages/IgnoresPage.cpp +++ b/src/widgets/settingspages/IgnoresPage.cpp @@ -71,7 +71,7 @@ void addUsersTab(IgnoresPage &page, LayoutCreator users, { users.append( page.createCheckBox("Enable twitch ignored users", - getApp()->settings->enableTwitchIgnoredUsers)); + getSettings()->enableTwitchIgnoredUsers)); auto anyways = users.emplace().withoutMargin(); { diff --git a/src/widgets/settingspages/LogsPage.cpp b/src/widgets/settingspages/LogsPage.cpp index 8cf1fbcc1..2be6c2144 100644 --- a/src/widgets/settingspages/LogsPage.cpp +++ b/src/widgets/settingspages/LogsPage.cpp @@ -33,7 +33,7 @@ // LayoutCreator layoutCreator(this); // auto layout = layoutCreator.emplace().withoutMargin(); -// auto logPath = app->paths->logsFolderPath; +// auto logPath = getPaths()->logsFolderPath; // auto created = layout.emplace(); // created->setText("Logs are saved to " + CreateLink(logPath, true)); @@ -43,7 +43,7 @@ // Qt::LinksAccessibleByKeyboard); // created->setOpenExternalLinks(true); // layout.append(this->createCheckBox("Enable logging", -// app->settings->enableLogging)); +// getSettings()->enableLogging)); // layout->addStretch(1); //} diff --git a/src/widgets/settingspages/LookPage.cpp b/src/widgets/settingspages/LookPage.cpp index 08a6ec77a..5daec0464 100644 --- a/src/widgets/settingspages/LookPage.cpp +++ b/src/widgets/settingspages/LookPage.cpp @@ -208,13 +208,13 @@ void LookPage::addEmoteTab(LayoutCreator layout) /* emotes.append( this->createCheckBox("Enable Twitch emotes", - app->settings->enableTwitchEmotes)); + getSettings()->enableTwitchEmotes)); emotes.append(this->createCheckBox("Enable BetterTTV emotes for Twitch", - app->settings->enableBttvEmotes)); + getSettings()->enableBttvEmotes)); emotes.append(this->createCheckBox("Enable FrankerFaceZ emotes for Twitch", - app->settings->enableFfzEmotes)); + getSettings()->enableFfzEmotes)); emotes.append(this->createCheckBox("Enable emojis", - app->settings->enableEmojis)); + getSettings()->enableEmojis)); */ layout.append( this->createCheckBox("Animations", getSettings()->enableGifAnimations)); @@ -285,7 +285,7 @@ void LookPage::addLastReadMessageIndicatorPatternSelector( combo->addItems({"Dotted line", "Solid line"}); const auto currentIndex = []() -> int { - switch (getApp()->settings->lastMessagePattern.getValue()) { + switch (getSettings()->lastMessagePattern.getValue()) { case Qt::SolidLine: return 1; case Qt::VerPattern: diff --git a/src/widgets/settingspages/ModerationPage.cpp b/src/widgets/settingspages/ModerationPage.cpp index fdb6df89f..28e0f7419 100644 --- a/src/widgets/settingspages/ModerationPage.cpp +++ b/src/widgets/settingspages/ModerationPage.cpp @@ -69,12 +69,11 @@ QString formatSize(qint64 size) QString fetchLogDirectorySize() { - auto app = getApp(); QString logPathDirectory; - if (app->settings->logPath == "") { - logPathDirectory = app->paths->messageLogDirectory; + if (getSettings()->logPath == "") { + logPathDirectory = getPaths()->messageLogDirectory; } else { - logPathDirectory = app->settings->logPath; + logPathDirectory = getSettings()->logPath; } qint64 logsSize = dirSize(logPathDirectory); QString logsSizeLabel = "Your logs currently take up "; @@ -101,12 +100,12 @@ ModerationPage::ModerationPage() QtConcurrent::run([] { return fetchLogDirectorySize(); })); // Logs (copied from LoggingMananger) - app->settings->logPath.connect( + getSettings()->logPath.connect( [app, logsPathLabel](const QString &logPath, auto) mutable { QString pathOriginal; if (logPath == "") { - pathOriginal = app->paths->messageLogDirectory; + pathOriginal = getPaths()->messageLogDirectory; } else { pathOriginal = logPath; } @@ -136,7 +135,7 @@ ModerationPage::ModerationPage() Qt::LinksAccessibleByKeyboard); logsPathLabel->setOpenExternalLinks(true); logs.append(this->createCheckBox("Enable logging", - app->settings->enableLogging)); + getSettings()->enableLogging)); logs->addStretch(1); auto selectDir = logs.emplace("Set custom logpath"); @@ -145,10 +144,9 @@ ModerationPage::ModerationPage() QObject::connect( selectDir.getElement(), &QPushButton::clicked, this, [this, logsPathSizeLabel]() mutable { - auto app = getApp(); auto dirName = QFileDialog::getExistingDirectory(this); - app->settings->logPath = dirName; + getSettings()->logPath = dirName; // Refresh: Show how big (size-wise) the logs are logsPathSizeLabel->setText( @@ -159,8 +157,7 @@ ModerationPage::ModerationPage() auto resetDir = logs.emplace("Reset logpath"); QObject::connect(resetDir.getElement(), &QPushButton::clicked, this, [logsPathSizeLabel]() mutable { - auto app = getApp(); - app->settings->logPath = ""; + getSettings()->logPath = ""; // Refresh: Show how big (size-wise) the logs are logsPathSizeLabel->setText(QtConcurrent::run( @@ -183,7 +180,7 @@ ModerationPage::ModerationPage() // form->addRow("Action on timed out messages // (unimplemented):", // this->createComboBox({"Disable", "Hide"}, - // app->settings->timeoutAction)); + // getSettings()->timeoutAction)); // } EditableModelView *view = diff --git a/src/widgets/settingspages/SpecialChannelsPage.cpp b/src/widgets/settingspages/SpecialChannelsPage.cpp index cdd016dea..5ccb904c0 100644 --- a/src/widgets/settingspages/SpecialChannelsPage.cpp +++ b/src/widgets/settingspages/SpecialChannelsPage.cpp @@ -13,8 +13,6 @@ namespace chatterino { SpecialChannelsPage::SpecialChannelsPage() : SettingsPage("Special channels", "") { - auto app = getApp(); - LayoutCreator layoutCreator(this); auto layout = layoutCreator.setLayoutType(); diff --git a/src/widgets/splits/SplitInput.cpp b/src/widgets/splits/SplitInput.cpp index 8fbc62f02..f6a66e7f4 100644 --- a/src/widgets/splits/SplitInput.cpp +++ b/src/widgets/splits/SplitInput.cpp @@ -109,7 +109,7 @@ void SplitInput::initLayout() }); // textEditLength visibility - app->settings->showMessageLength.connect( + getSettings()->showMessageLength.connect( [this](const bool &value, auto) { this->ui_.textEditLength->setHidden(!value); },