mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Add an indicator in the title bar if Streamer Mode is active (#4410)
This commit is contained in:
parent
1bc423d9c4
commit
c6c884df70
|
@ -2,6 +2,7 @@
|
|||
|
||||
## Unversioned
|
||||
|
||||
- Minor: Add an icon showing when streamer mode is enabled (#4410)
|
||||
- Minor: Added `/shoutout <username>` commands to shoutout specified user. (#4638)
|
||||
- Dev: Added command to set Qt's logging filter/rules at runtime (`/c2-set-logging-rules`). (#4637)
|
||||
- Dev: Added the ability to see & load custom themes from the Themes directory. No stable promises are made of this feature, changes might be made that breaks custom themes without notice. (#4570)
|
||||
|
|
BIN
resources/buttons/streamerModeEnabledDark.png
Normal file
BIN
resources/buttons/streamerModeEnabledDark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
13
resources/buttons/streamerModeEnabledDark.svg
Normal file
13
resources/buttons/streamerModeEnabledDark.svg
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<!-- Created using Krita: https://krita.org -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:krita="http://krita.org/namespaces/svg/krita"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
width="69.12pt"
|
||||
height="69.12pt"
|
||||
viewBox="0 0 69.12 69.12">
|
||||
<defs/>
|
||||
<path id="shape0" transform="matrix(2.87999988555909 0 0 2.87999988555909 5.76071977108956 13.5080491863677)" fill="#ff9c9c" stroke-opacity="0" stroke="#000000" stroke-width="0" stroke-linecap="square" stroke-linejoin="bevel" d="M3.98975 0.238705C4.13015 0.379277 4.20909 0.57003 4.20909 0.768705C4.20909 0.96738 4.13015 1.15813 3.98975 1.2987C2.93474 2.35368 2.17587 3.66806 1.78971 5.1092C1.40355 6.55034 1.40355 8.06807 1.78971 9.50921C2.17587 10.9503 2.93474 12.2647 3.98975 13.3197C4.12625 13.4612 4.20181 13.6508 4.20001 13.8474C4.19821 14.0439 4.11919 14.2321 3.98012 14.3711C3.84105 14.51 3.65278 14.5888 3.4562 14.5905C3.25963 14.5921 3.07009 14.5163 2.92875 14.3797C-0.97625 10.4747 -0.97625 4.1437 2.92875 0.238705C3.06932 0.0983082 3.26008 0.0193649 3.45875 0.0193649C3.65742 0.0193649 3.84818 0.0983082 3.98875 0.238705ZM17.0707 0.238705C20.9757 4.1437 20.9757 10.4747 17.0707 14.3807C16.9286 14.5131 16.7405 14.5853 16.5462 14.5819C16.352 14.5785 16.1665 14.4997 16.0291 14.3623C15.8918 14.225 15.813 14.0395 15.8096 13.8452C15.8061 13.651 15.8783 13.4628 16.0107 13.3207C17.066 12.2657 17.825 10.9512 18.2112 9.50994C18.5975 8.06865 18.5975 6.55076 18.2112 5.10947C17.825 3.66819 17.066 2.3537 16.0107 1.2987C15.8922 1.18828 15.8126 1.04239 15.7839 0.882977C15.7552 0.723568 15.7789 0.559065 15.8514 0.414228C15.9239 0.269391 16.0414 0.151871 16.1863 0.0793556C16.3311 0.00684041 16.4956 -0.0168395 16.655 0.01188C16.8144 0.0405996 16.9603 0.120202 17.0707 0.238705ZM6.81775 3.0667C6.95815 3.20728 7.03709 3.39803 7.03709 3.5967C7.03709 3.79538 6.95815 3.98613 6.81775 4.1267C6.25903 4.68524 5.85712 5.38119 5.65261 6.14428C5.44809 6.90737 5.44809 7.71104 5.65261 8.47413C5.85712 9.23722 6.25903 9.93317 6.81775 10.4917C6.95018 10.6338 7.02235 10.822 7.01893 11.0162C7.0155 11.2105 6.93674 11.396 6.79937 11.5333C6.66201 11.6707 6.47651 11.7495 6.28227 11.7529C6.08804 11.7563 5.89988 11.6841 5.75775 11.5517C4.63305 10.4269 4.00053 8.89982 4.00053 7.3092C4.00053 5.71859 4.63305 4.19148 5.75775 3.0667C5.89832 2.92631 6.08908 2.84736 6.28775 2.84736C6.48642 2.84736 6.67718 2.92631 6.81775 3.0667ZM14.2427 3.0667C15.3675 4.19148 16 5.71859 16 7.3092C16 8.89982 15.3675 10.4269 14.2427 11.5517C14.1316 11.6669 13.9863 11.7436 13.8284 11.7704C13.6705 11.7971 13.5082 11.7727 13.3652 11.7005C13.2222 11.6284 13.106 11.5123 13.0338 11.3694C12.9615 11.2265 12.9369 11.0641 12.9635 10.9062C12.9901 10.7483 13.0666 10.603 13.1817 10.4917C13.7403 9.93319 14.142 9.23735 14.3465 8.4744C14.5509 7.71145 14.5509 6.90796 14.3465 6.14501C14.142 5.38206 13.7403 4.68622 13.1818 4.1277C13.0493 3.98558 12.9771 3.79742 12.9806 3.60318C12.984 3.40895 13.0628 3.22345 13.2001 3.08608C13.3375 2.94872 13.523 2.86996 13.7172 2.86653C13.9115 2.8631 14.0996 2.93527 14.2417 3.0677ZM9.99975 5.8097C10.3974 5.8097 10.7792 5.96785 11.0604 6.24904C11.3416 6.53024 11.4997 6.91203 11.4997 7.3097C11.4997 7.70738 11.3416 8.08917 11.0604 8.37037C10.7792 8.65156 10.3974 8.8097 9.99975 8.8097C9.60208 8.8097 9.22029 8.65156 8.93909 8.37037C8.65789 8.08917 8.49975 7.70738 8.49975 7.3097C8.49975 6.91203 8.65789 6.53024 8.93909 6.24904C9.22029 5.96785 9.60208 5.8097 9.99975 5.8097Z" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
BIN
resources/buttons/streamerModeEnabledLight.png
Normal file
BIN
resources/buttons/streamerModeEnabledLight.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
13
resources/buttons/streamerModeEnabledLight.svg
Normal file
13
resources/buttons/streamerModeEnabledLight.svg
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<!-- Created using Krita: https://krita.org -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:krita="http://krita.org/namespaces/svg/krita"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
width="69.12pt"
|
||||
height="69.12pt"
|
||||
viewBox="0 0 69.12 69.12">
|
||||
<defs/>
|
||||
<path id="shape0" transform="matrix(2.87999977111818 0 0 2.87999977111818 5.76071954217913 13.508048613566)" fill="#c10000" stroke-opacity="0" stroke="#000000" stroke-width="0" stroke-linecap="square" stroke-linejoin="bevel" d="M3.98975 0.238705C4.13015 0.379277 4.20909 0.57003 4.20909 0.768705C4.20909 0.96738 4.13015 1.15813 3.98975 1.2987C2.93474 2.35368 2.17587 3.66806 1.78971 5.1092C1.40355 6.55034 1.40355 8.06807 1.78971 9.50921C2.17587 10.9503 2.93474 12.2647 3.98975 13.3197C4.12625 13.4612 4.20181 13.6508 4.20001 13.8474C4.19821 14.0439 4.11919 14.2321 3.98012 14.3711C3.84105 14.51 3.65278 14.5888 3.4562 14.5905C3.25963 14.5921 3.07009 14.5163 2.92875 14.3797C-0.97625 10.4747 -0.97625 4.1437 2.92875 0.238705C3.06932 0.0983082 3.26008 0.0193649 3.45875 0.0193649C3.65742 0.0193649 3.84818 0.0983082 3.98875 0.238705ZM17.0707 0.238705C20.9757 4.1437 20.9757 10.4747 17.0707 14.3807C16.9286 14.5131 16.7405 14.5853 16.5462 14.5819C16.352 14.5785 16.1665 14.4997 16.0291 14.3623C15.8918 14.225 15.813 14.0395 15.8096 13.8452C15.8061 13.651 15.8783 13.4628 16.0107 13.3207C17.066 12.2657 17.825 10.9512 18.2112 9.50994C18.5975 8.06865 18.5975 6.55076 18.2112 5.10947C17.825 3.66819 17.066 2.3537 16.0107 1.2987C15.8922 1.18828 15.8126 1.04239 15.7839 0.882977C15.7552 0.723568 15.7789 0.559065 15.8514 0.414228C15.9239 0.269391 16.0414 0.151871 16.1863 0.0793556C16.3311 0.00684042 16.4956 -0.0168395 16.655 0.01188C16.8144 0.0405996 16.9603 0.120202 17.0707 0.238705ZM6.81775 3.0667C6.95815 3.20728 7.03709 3.39803 7.03709 3.5967C7.03709 3.79538 6.95815 3.98613 6.81775 4.1267C6.25903 4.68524 5.85712 5.38119 5.65261 6.14428C5.44809 6.90737 5.44809 7.71104 5.65261 8.47413C5.85712 9.23722 6.25903 9.93317 6.81775 10.4917C6.95018 10.6338 7.02235 10.822 7.01893 11.0162C7.0155 11.2105 6.93674 11.396 6.79937 11.5333C6.66201 11.6707 6.47651 11.7495 6.28227 11.7529C6.08804 11.7563 5.89988 11.6841 5.75775 11.5517C4.63305 10.4269 4.00053 8.89982 4.00053 7.3092C4.00053 5.71859 4.63305 4.19148 5.75775 3.0667C5.89832 2.92631 6.08908 2.84736 6.28775 2.84736C6.48642 2.84736 6.67718 2.92631 6.81775 3.0667ZM14.2427 3.0667C15.3675 4.19148 16 5.71859 16 7.3092C16 8.89982 15.3675 10.4269 14.2427 11.5517C14.1316 11.6669 13.9863 11.7436 13.8284 11.7704C13.6705 11.7971 13.5082 11.7727 13.3652 11.7005C13.2222 11.6284 13.106 11.5123 13.0338 11.3694C12.9615 11.2265 12.9369 11.0641 12.9635 10.9062C12.9901 10.7483 13.0666 10.603 13.1817 10.4917C13.7403 9.93319 14.142 9.23735 14.3465 8.4744C14.5509 7.71145 14.5509 6.90796 14.3465 6.14501C14.142 5.38206 13.7403 4.68622 13.1818 4.1277C13.0493 3.98558 12.9771 3.79742 12.9806 3.60318C12.984 3.40895 13.0628 3.22345 13.2001 3.08608C13.3375 2.94872 13.523 2.86996 13.7172 2.86653C13.9115 2.8631 14.0996 2.93527 14.2417 3.0677ZM9.99975 5.8097C10.3974 5.8097 10.7792 5.96785 11.0604 6.24904C11.3416 6.53024 11.4997 6.91203 11.4997 7.3097C11.4997 7.70738 11.3416 8.08917 11.0604 8.37037C10.7792 8.65156 10.3974 8.8097 9.99975 8.8097C9.60208 8.8097 9.22029 8.65156 8.93909 8.37037C8.65789 8.08917 8.49975 7.70738 8.49975 7.3097C8.49975 6.91203 8.65789 6.53024 8.93909 6.24904C9.22029 5.96785 9.60208 5.8097 9.99975 5.8097Z" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -3,6 +3,8 @@
|
|||
#include "common/Singleton.hpp"
|
||||
#include "singletons/NativeMessaging.hpp"
|
||||
|
||||
#include <pajlada/signals.hpp>
|
||||
#include <pajlada/signals/signal.hpp>
|
||||
#include <QApplication>
|
||||
|
||||
#include <memory>
|
||||
|
@ -153,6 +155,8 @@ public:
|
|||
}
|
||||
IUserDataController *getUserData() override;
|
||||
|
||||
pajlada::Signals::NoArgSignal streamerModeChanged;
|
||||
|
||||
private:
|
||||
void addSingleton(Singleton *singleton);
|
||||
void initPubSub();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "singletons/Settings.hpp"
|
||||
|
||||
#include "Application.hpp"
|
||||
#include "controllers/filters/FilterRecord.hpp"
|
||||
#include "controllers/highlights/HighlightBadge.hpp"
|
||||
#include "controllers/highlights/HighlightBlacklistUser.hpp"
|
||||
|
@ -136,6 +137,11 @@ Settings::Settings(const QString &settingsDirectory)
|
|||
},
|
||||
false);
|
||||
#endif
|
||||
this->enableStreamerMode.connect(
|
||||
[]() {
|
||||
getApp()->streamerModeChanged.invoke();
|
||||
},
|
||||
false);
|
||||
}
|
||||
|
||||
Settings &Settings::instance()
|
||||
|
|
|
@ -71,6 +71,7 @@ bool isInStreamerMode()
|
|||
p.exitStatus() == QProcess::NormalExit)
|
||||
{
|
||||
cache = (p.exitCode() == 0);
|
||||
getApp()->streamerModeChanged.invoke();
|
||||
return (p.exitCode() == 0);
|
||||
}
|
||||
|
||||
|
@ -89,6 +90,7 @@ bool isInStreamerMode()
|
|||
qCWarning(chatterinoStreamerMode) << "pgrep execution timed out!";
|
||||
|
||||
cache = false;
|
||||
getApp()->streamerModeChanged.invoke();
|
||||
return false;
|
||||
#endif
|
||||
|
||||
|
@ -122,6 +124,7 @@ bool isInStreamerMode()
|
|||
if (broadcastingBinaries().contains(processName))
|
||||
{
|
||||
cache = true;
|
||||
getApp()->streamerModeChanged.invoke();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -133,6 +136,7 @@ bool isInStreamerMode()
|
|||
}
|
||||
|
||||
cache = false;
|
||||
getApp()->streamerModeChanged.invoke();
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -4,10 +4,12 @@
|
|||
#include "common/QLogging.hpp"
|
||||
#include "controllers/hotkeys/HotkeyCategory.hpp"
|
||||
#include "controllers/hotkeys/HotkeyController.hpp"
|
||||
#include "singletons/Resources.hpp"
|
||||
#include "singletons/Settings.hpp"
|
||||
#include "singletons/Theme.hpp"
|
||||
#include "singletons/WindowManager.hpp"
|
||||
#include "util/InitUpdateButton.hpp"
|
||||
#include "util/StreamerMode.hpp"
|
||||
#include "widgets/dialogs/SettingsDialog.hpp"
|
||||
#include "widgets/helper/ChannelView.hpp"
|
||||
#include "widgets/helper/NotebookButton.hpp"
|
||||
|
@ -1155,6 +1157,45 @@ void SplitNotebook::addCustomButtons()
|
|||
auto updateBtn = this->addCustomButton();
|
||||
|
||||
initUpdateButton(*updateBtn, this->signalHolder_);
|
||||
|
||||
// streamer mode
|
||||
this->streamerModeIcon_ = this->addCustomButton();
|
||||
QObject::connect(this->streamerModeIcon_, &NotebookButton::leftClicked,
|
||||
[this] {
|
||||
getApp()->windows->showSettingsDialog(
|
||||
this, SettingsDialogPreference::StreamerMode);
|
||||
});
|
||||
this->signalHolder_.managedConnect(getApp()->streamerModeChanged, [this]() {
|
||||
this->updateStreamerModeIcon();
|
||||
});
|
||||
this->updateStreamerModeIcon();
|
||||
}
|
||||
|
||||
void SplitNotebook::updateStreamerModeIcon()
|
||||
{
|
||||
if (this->streamerModeIcon_ == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// A duplicate of this code is in Window class
|
||||
// That copy handles the TitleBar icon in Window (main window on Windows)
|
||||
// This one is the one near splits (on linux and mac or non-main windows on Windows)
|
||||
if (getTheme()->isLightTheme())
|
||||
{
|
||||
this->streamerModeIcon_->setPixmap(
|
||||
getResources().buttons.streamerModeEnabledLight);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->streamerModeIcon_->setPixmap(
|
||||
getResources().buttons.streamerModeEnabledDark);
|
||||
}
|
||||
this->streamerModeIcon_->setVisible(isInStreamerMode());
|
||||
}
|
||||
|
||||
void SplitNotebook::themeChangedEvent()
|
||||
{
|
||||
this->updateStreamerModeIcon();
|
||||
}
|
||||
|
||||
SplitContainer *SplitNotebook::addPage(bool select)
|
||||
|
|
|
@ -123,6 +123,7 @@ public:
|
|||
SplitContainer *addPage(bool select = false);
|
||||
SplitContainer *getOrAddSelectedPage();
|
||||
void select(QWidget *page, bool focusPage = true) override;
|
||||
void themeChangedEvent() override;
|
||||
|
||||
protected:
|
||||
void showEvent(QShowEvent *event) override;
|
||||
|
@ -131,6 +132,11 @@ private:
|
|||
void addCustomButtons();
|
||||
|
||||
pajlada::Signals::SignalHolder signalHolder_;
|
||||
|
||||
// Main window on Windows has basically a duplicate of this in Window
|
||||
NotebookButton *streamerModeIcon_{};
|
||||
|
||||
void updateStreamerModeIcon();
|
||||
};
|
||||
|
||||
} // namespace chatterino
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "controllers/hotkeys/HotkeyController.hpp"
|
||||
#include "providers/twitch/TwitchAccount.hpp"
|
||||
#include "providers/twitch/TwitchIrcServer.hpp"
|
||||
#include "singletons/Resources.hpp"
|
||||
#include "singletons/Settings.hpp"
|
||||
#include "singletons/Theme.hpp"
|
||||
#include "singletons/Updates.hpp"
|
||||
|
@ -186,6 +187,51 @@ void Window::addCustomTitlebarButtons()
|
|||
this->userLabel_->rect().bottomLeft()));
|
||||
});
|
||||
this->userLabel_->setMinimumWidth(20 * scale());
|
||||
|
||||
// streamer mode
|
||||
this->streamerModeTitlebarIcon_ =
|
||||
this->addTitleBarButton(TitleBarButtonStyle::StreamerMode, [this] {
|
||||
getApp()->windows->showSettingsDialog(
|
||||
this, SettingsDialogPreference::StreamerMode);
|
||||
});
|
||||
this->signalHolder_.managedConnect(getApp()->streamerModeChanged, [this]() {
|
||||
this->updateStreamerModeIcon();
|
||||
});
|
||||
}
|
||||
|
||||
void Window::updateStreamerModeIcon()
|
||||
{
|
||||
// A duplicate of this code is in SplitNotebook class (in Notebook.{c,h}pp)
|
||||
// That one is the one near splits (on linux and mac or non-main windows on Windows)
|
||||
// This copy handles the TitleBar icon in Window (main window on Windows)
|
||||
if (this->streamerModeTitlebarIcon_ == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#ifdef Q_OS_WIN
|
||||
assert(this->getType() == WindowType::Main);
|
||||
if (getTheme()->isLightTheme())
|
||||
{
|
||||
this->streamerModeTitlebarIcon_->setPixmap(
|
||||
getResources().buttons.streamerModeEnabledLight);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->streamerModeTitlebarIcon_->setPixmap(
|
||||
getResources().buttons.streamerModeEnabledDark);
|
||||
}
|
||||
this->streamerModeTitlebarIcon_->setVisible(isInStreamerMode());
|
||||
#else
|
||||
// clang-format off
|
||||
assert(false && "Streamer mode TitleBar icon should not exist on non-Windows OSes");
|
||||
// clang-format on
|
||||
#endif
|
||||
}
|
||||
|
||||
void Window::themeChangedEvent()
|
||||
{
|
||||
this->updateStreamerModeIcon();
|
||||
BaseWindow::themeChangedEvent();
|
||||
}
|
||||
|
||||
void Window::addDebugStuff(HotkeyController::HotkeyMap &actions)
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
protected:
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
bool event(QEvent *event) override;
|
||||
void themeChangedEvent() override;
|
||||
|
||||
private:
|
||||
void addCustomTitlebarButtons();
|
||||
|
@ -51,6 +52,10 @@ private:
|
|||
pajlada::Signals::SignalHolder signalHolder_;
|
||||
std::vector<boost::signals2::scoped_connection> bSignals_;
|
||||
|
||||
// this is only used on Windows and only on the main window, for the one used otherwise, see SplitNotebook in Notebook.hpp
|
||||
TitleBarButton *streamerModeTitlebarIcon_ = nullptr;
|
||||
void updateStreamerModeIcon();
|
||||
|
||||
friend class Notebook;
|
||||
};
|
||||
|
||||
|
|
|
@ -195,6 +195,11 @@ void SettingsDialog::filterElements(const QString &text)
|
|||
}
|
||||
}
|
||||
|
||||
void SettingsDialog::setElementFilter(const QString &query)
|
||||
{
|
||||
this->ui_.search->setText(query);
|
||||
}
|
||||
|
||||
void SettingsDialog::addTabs()
|
||||
{
|
||||
this->ui_.tabContainer->setSpacing(0);
|
||||
|
@ -203,7 +208,7 @@ void SettingsDialog::addTabs()
|
|||
// Constructors are wrapped in std::function to remove some strain from first time loading.
|
||||
|
||||
// clang-format off
|
||||
this->addTab([]{return new GeneralPage;}, "General", ":/settings/about.svg");
|
||||
this->addTab([]{return new GeneralPage;}, "General", ":/settings/about.svg", SettingsTabId::General);
|
||||
this->ui_.tabContainer->addSpacing(16);
|
||||
this->addTab([]{return new AccountsPage;}, "Accounts", ":/settings/accounts.svg", SettingsTabId::Accounts);
|
||||
this->addTab([]{return new NicknamesPage;}, "Nicknames", ":/settings/accounts.svg");
|
||||
|
@ -316,10 +321,20 @@ void SettingsDialog::showDialog(QWidget *parent,
|
|||
}
|
||||
break;
|
||||
|
||||
case SettingsDialogPreference::StreamerMode: {
|
||||
instance->selectTab(SettingsTabId::General);
|
||||
}
|
||||
break;
|
||||
|
||||
default:;
|
||||
}
|
||||
|
||||
instance->show();
|
||||
if (preferredTab == SettingsDialogPreference::StreamerMode)
|
||||
{
|
||||
// this is needed because each time the settings are opened, the query is reset
|
||||
instance->setElementFilter("Streamer Mode");
|
||||
}
|
||||
instance->activateWindow();
|
||||
instance->raise();
|
||||
instance->setFocus();
|
||||
|
|
|
@ -27,6 +27,7 @@ class PageHeader : public QFrame
|
|||
|
||||
enum class SettingsDialogPreference {
|
||||
NoPreference,
|
||||
StreamerMode,
|
||||
Accounts,
|
||||
ModerationActions,
|
||||
};
|
||||
|
@ -57,6 +58,7 @@ private:
|
|||
void selectTab(SettingsDialogTab *tab, const bool byUser = true);
|
||||
void selectTab(SettingsTabId id);
|
||||
void filterElements(const QString &query);
|
||||
void setElementFilter(const QString &query);
|
||||
|
||||
void onOkClicked();
|
||||
void onCancelClicked();
|
||||
|
|
|
@ -15,6 +15,7 @@ class SettingsDialog;
|
|||
|
||||
enum class SettingsTabId {
|
||||
None,
|
||||
General,
|
||||
Accounts,
|
||||
Moderation,
|
||||
};
|
||||
|
|
|
@ -11,7 +11,8 @@ enum class TitleBarButtonStyle {
|
|||
Unmaximize = 4,
|
||||
Close = 8,
|
||||
User = 16,
|
||||
Settings = 32
|
||||
Settings = 32,
|
||||
StreamerMode = 64,
|
||||
};
|
||||
|
||||
class TitleBarButton : public Button
|
||||
|
|
|
@ -126,6 +126,9 @@ AboutPage::AboutPage()
|
|||
"https://github.com/getsentry/crashpad",
|
||||
":/licenses/crashpad.txt");
|
||||
#endif
|
||||
addLicense(form.getElement(), "Fluent icons",
|
||||
"https://github.com/microsoft/fluentui-system-icons",
|
||||
":/licenses/fluenticons.txt");
|
||||
}
|
||||
|
||||
// Attributions
|
||||
|
|
Loading…
Reference in a new issue