fix: special shortcut for Windows live notifications (#5975)
This commit is contained in:
@@ -77,8 +77,8 @@ Source: "{#WORKING_DIR}vc_redist.x64.exe"; DestDir: "{tmp}"; Tasks: vcredist;
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; AppUserModelID: "ChatterinoTeam.Chatterino"
|
||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; AppUserModelID: "ChatterinoTeam.Chatterino"; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
; VC++ redistributable
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
- Bugfix: Fixed search in emote popup not always working correctly. (#5946)
|
||||
- Bugfix: Fixed channel point redemptions with messages not showing up if PubSub is disconnected. (#5948)
|
||||
- Bugfix: Fixed the input font not immediately updating when zooming in/out. (#5960)
|
||||
- Bugfix: Fixed missing special shortcut for Windows live notifications. (#5975)
|
||||
- Bugfix: Fixed color input thinking blue is also red. (#5982)
|
||||
- Bugfix: Fixed an issue where commands would sometimes reset if Chatterino was improperly shut down. (#6011)
|
||||
- Bugfix: Fixed a thick border on Windows 11. (#5836)
|
||||
@@ -46,6 +47,7 @@
|
||||
- Dev: Highlight checks now use non-capturing groups for the boundaries. (#5784)
|
||||
- Dev: Removed unused PubSub whisper code. (#5898)
|
||||
- Dev: Updated Conan dependencies. (#5776)
|
||||
- Dev: Added the `externally-packaged` mode. (#5975)
|
||||
- Dev: Disable QT keywords (i.e. `emit`, `slots`, and `signals`). (#5882)
|
||||
- Dev: Replaced usage of `parseTime` with `serverReceivedTime` for clearchat messages. (#5824, #5855)
|
||||
- Dev: Support Boost 1.87. (#5832)
|
||||
|
||||
@@ -24,6 +24,10 @@ Modes::Modes()
|
||||
{
|
||||
this->isPortable = true;
|
||||
}
|
||||
else if (line == "externally-packaged")
|
||||
{
|
||||
this->isExternallyPackaged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,12 @@ public:
|
||||
|
||||
bool isNightly{};
|
||||
bool isPortable{};
|
||||
|
||||
/// Marked by the line `externally-packaged`
|
||||
///
|
||||
/// The externally packaged mode comes with the following changes:
|
||||
/// - No shortcuts are created by default
|
||||
bool isExternallyPackaged{};
|
||||
};
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#include <QMessageBox>
|
||||
#include <QSslSocket>
|
||||
#include <QStringList>
|
||||
#ifdef Q_OS_WIN
|
||||
# include <shobjidl_core.h>
|
||||
#endif
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -36,6 +39,9 @@ int main(int argc, char **argv)
|
||||
QCoreApplication::setApplicationName("chatterino");
|
||||
QCoreApplication::setApplicationVersion(CHATTERINO_VERSION);
|
||||
QCoreApplication::setOrganizationDomain("chatterino.com");
|
||||
#ifdef Q_OS_WIN
|
||||
SetCurrentProcessExplicitAppUserModelID(L"ChatterinoTeam.Chatterino");
|
||||
#endif
|
||||
|
||||
std::unique_ptr<Paths> paths;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "common/Channel.hpp"
|
||||
#include "common/ChatterinoSetting.hpp"
|
||||
#include "common/enums/MessageOverflow.hpp"
|
||||
#include "common/Modes.hpp"
|
||||
#include "common/SignalVector.hpp"
|
||||
#include "controllers/filters/FilterRecord.hpp"
|
||||
#include "controllers/highlights/HighlightBadge.hpp"
|
||||
@@ -553,6 +554,12 @@ public:
|
||||
"/notifications/suppressInitialLive", false};
|
||||
|
||||
BoolSetting notificationToast = {"/notifications/enableToast", false};
|
||||
BoolSetting createShortcutForToasts = {
|
||||
"/notifications/createShortcutForToasts",
|
||||
(Modes::instance().isPortable || Modes::instance().isExternallyPackaged)
|
||||
? false
|
||||
: true,
|
||||
};
|
||||
IntSetting openFromToast = {"/notifications/openFromToast",
|
||||
static_cast<int>(ToastReaction::OpenInBrowser)};
|
||||
|
||||
|
||||
@@ -284,11 +284,13 @@ void Toasts::ensureInitialized()
|
||||
this->initialized_ = true;
|
||||
|
||||
auto *instance = WinToast::instance();
|
||||
instance->setAppName(L"Chatterino2");
|
||||
instance->setAppName(L"Chatterino");
|
||||
instance->setAppUserModelId(
|
||||
WinToast::configureAUMI(L"", L"Chatterino 2", L"",
|
||||
Version::instance().version().toStdWString()));
|
||||
instance->setShortcutPolicy(WinToast::SHORTCUT_POLICY_IGNORE);
|
||||
WinToast::configureAUMI(L"ChatterinoTeam", L"Chatterino", L"", L""));
|
||||
if (!getSettings()->createShortcutForToasts)
|
||||
{
|
||||
instance->setShortcutPolicy(WinToast::SHORTCUT_POLICY_IGNORE);
|
||||
}
|
||||
WinToast::WinToastError error{};
|
||||
instance->initialize(&error);
|
||||
|
||||
|
||||
@@ -49,6 +49,16 @@ NotificationPage::NotificationPage()
|
||||
#if defined(Q_OS_WIN) || defined(CHATTERINO_WITH_LIBNOTIFY)
|
||||
settings.append(this->createCheckBox(
|
||||
"Show notification", getSettings()->notificationToast));
|
||||
#endif
|
||||
#ifdef Q_OS_WIN
|
||||
settings.append(this->createCheckBox(
|
||||
"Create start menu shortcut (requires "
|
||||
"restart)",
|
||||
getSettings()->createShortcutForToasts,
|
||||
"When enabled, a shortcut will be created inside your "
|
||||
"start menu folder if needed by live notifications."
|
||||
"\n(On portable mode, this is disabled by "
|
||||
"default)"));
|
||||
|
||||
auto openIn = settings.emplace<QHBoxLayout>().withoutMargin();
|
||||
{
|
||||
|
||||
@@ -88,9 +88,11 @@ void SettingsPage::setTab(SettingsDialogTab *tab)
|
||||
}
|
||||
|
||||
QCheckBox *SettingsPage::createCheckBox(
|
||||
const QString &text, pajlada::Settings::Setting<bool> &setting)
|
||||
const QString &text, pajlada::Settings::Setting<bool> &setting,
|
||||
const QString &toolTipText)
|
||||
{
|
||||
QCheckBox *checkbox = new SCheckBox(text);
|
||||
checkbox->setToolTip(toolTipText);
|
||||
|
||||
// update when setting changes
|
||||
setting.connect(
|
||||
|
||||
@@ -57,7 +57,8 @@ public:
|
||||
void setTab(SettingsDialogTab *tab);
|
||||
|
||||
QCheckBox *createCheckBox(const QString &text,
|
||||
pajlada::Settings::Setting<bool> &setting);
|
||||
pajlada::Settings::Setting<bool> &setting,
|
||||
const QString &toolTipText = {});
|
||||
QComboBox *createComboBox(const QStringList &items,
|
||||
pajlada::Settings::Setting<QString> &setting);
|
||||
QLineEdit *createLineEdit(pajlada::Settings::Setting<QString> &setting);
|
||||
|
||||
Reference in New Issue
Block a user