remove settings and paths from Application

This commit is contained in:
fourtf
2018-08-12 12:56:28 +02:00
parent 1ec1ecd52b
commit f6414c9d7e
35 changed files with 125 additions and 152 deletions
+8 -8
View File
@@ -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));
}
}
}
+4 -4
View File
@@ -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_);
+9 -9
View File
@@ -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));
});
}
+2 -2
View File
@@ -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();
}
+9 -22
View File
@@ -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<MessageLayout> 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<MessageLayout> layout;
QPoint relativePos;
int messageIndex;
+4 -4
View File
@@ -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());
+1 -1
View File
@@ -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<QLabel>(TEXT).getElement();
text->setWordWrap(true);
@@ -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); //
},
+9 -11
View File
@@ -20,7 +20,6 @@ namespace chatterino {
FeelPage::FeelPage()
: SettingsPage("Feel", ":/settings/behave.svg")
{
auto app = getApp();
LayoutCreator<FeelPage> layoutCreator(this);
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
@@ -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<QVBoxLayout>();
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<float>(newValue) / 99.f;
float newSliderValue = (mul * 2.1f) + 0.1f;
app->settings->mouseScrollMultiplier = newSliderValue;
getSettings()->mouseScrollMultiplier = newSliderValue;
});
return slider;
@@ -39,7 +39,7 @@ HighlightingPage::HighlightingPage()
{
// GENERAL
// layout.append(this->createCheckBox(ENABLE_HIGHLIGHTS,
// app->settings->enableHighlights));
// getSettings()->enableHighlights));
// TABS
auto tabs = layout.emplace<QTabWidget>();
@@ -135,7 +135,7 @@ HighlightingPage::HighlightingPage()
auto customSound = layout.emplace<QHBoxLayout>().withoutMargin();
{
customSound.append(this->createCheckBox(
"Custom sound", app->settings->customHighlightSound));
"Custom sound", getSettings()->customHighlightSound));
auto selectFile =
customSound.emplace<QPushButton>("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
+1 -1
View File
@@ -71,7 +71,7 @@ void addUsersTab(IgnoresPage &page, LayoutCreator<QVBoxLayout> users,
{
users.append(
page.createCheckBox("Enable twitch ignored users",
getApp()->settings->enableTwitchIgnoredUsers));
getSettings()->enableTwitchIgnoredUsers));
auto anyways = users.emplace<QHBoxLayout>().withoutMargin();
{
+2 -2
View File
@@ -33,7 +33,7 @@
// LayoutCreator<LogsPage> layoutCreator(this);
// auto layout = layoutCreator.emplace<QVBoxLayout>().withoutMargin();
// auto logPath = app->paths->logsFolderPath;
// auto logPath = getPaths()->logsFolderPath;
// auto created = layout.emplace<QLabel>();
// 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);
//}
+5 -5
View File
@@ -208,13 +208,13 @@ void LookPage::addEmoteTab(LayoutCreator<QVBoxLayout> 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:
+9 -12
View File
@@ -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<QPushButton>("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<QPushButton>("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 =
@@ -13,8 +13,6 @@ namespace chatterino {
SpecialChannelsPage::SpecialChannelsPage()
: SettingsPage("Special channels", "")
{
auto app = getApp();
LayoutCreator<SpecialChannelsPage> layoutCreator(this);
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
+1 -1
View File
@@ -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);
},