mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
fix(notification): implement review comments
This commit is contained in:
parent
9f8d0915f2
commit
cd50376c2f
|
@ -188,7 +188,7 @@ void Settings::loadGlobal()
|
||||||
{
|
{
|
||||||
showWindow = s.value("showWindow", true).toBool();
|
showWindow = s.value("showWindow", true).toBool();
|
||||||
notify = s.value("notify", true).toBool();
|
notify = s.value("notify", true).toBool();
|
||||||
desktopNotify = s.value("desktopNotify", false).toBool();
|
desktopNotify = s.value("desktopNotify", true).toBool();
|
||||||
groupAlwaysNotify = s.value("groupAlwaysNotify", true).toBool();
|
groupAlwaysNotify = s.value("groupAlwaysNotify", true).toBool();
|
||||||
groupchatPosition = s.value("groupchatPosition", true).toBool();
|
groupchatPosition = s.value("groupchatPosition", true).toBool();
|
||||||
separateWindow = s.value("separateWindow", false).toBool();
|
separateWindow = s.value("separateWindow", false).toBool();
|
||||||
|
|
|
@ -19,85 +19,37 @@ DesktopNotify::DesktopNotify()
|
||||||
notifyCore.registerApplication(snoreApp);
|
notifyCore.registerApplication(snoreApp);
|
||||||
}
|
}
|
||||||
|
|
||||||
DesktopNotify::NotificationPtr DesktopNotify::createNotification(const QString& title,
|
void DesktopNotify::createNotification(const QString& title)
|
||||||
const QString& text,
|
|
||||||
Snore::Notification* old)
|
|
||||||
{
|
{
|
||||||
if (old == nullptr) {
|
const Settings& s = Settings::getInstance();
|
||||||
return NotificationPtr(
|
if(!(s.getNotify() && s.getDesktopNotify())) {
|
||||||
new Snore::Notification(snoreApp, Snore::Alert(), title, text, snoreIcon));
|
return;
|
||||||
} else {
|
|
||||||
return NotificationPtr(new Snore::Notification(*old, title, text, snoreIcon));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Snore::Notification notify{snoreApp, Snore::Alert(), title, {}, snoreIcon};
|
||||||
|
notifyCore.broadcastNotification(notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesktopNotify::notifyGroupMessage()
|
void DesktopNotify::notifyGroupMessage()
|
||||||
{
|
{
|
||||||
const Settings& s = Settings::getInstance();
|
|
||||||
if(!(s.getNotify() && s.getDesktopNotify())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString text{};
|
|
||||||
const QString title = tr("New group message received");
|
const QString title = tr("New group message received");
|
||||||
NotificationPtr newNote = createNotification(title, text);
|
createNotification(title);
|
||||||
if (!newNote) {
|
|
||||||
qDebug() << "Failed to allocate group message notification";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
groupInvite = std::move(newNote);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesktopNotify::notifyFriendRequest()
|
void DesktopNotify::notifyFriendRequest()
|
||||||
{
|
{
|
||||||
const Settings& s = Settings::getInstance();
|
|
||||||
if(!(s.getNotify() && s.getDesktopNotify())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString title = tr("New friend request received");
|
const QString title = tr("New friend request received");
|
||||||
const QString text{};
|
createNotification(title);
|
||||||
NotificationPtr newNote = createNotification(title, text);
|
|
||||||
if (!newNote) {
|
|
||||||
qDebug() << "Failed to allocate friend message notification";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
friendMessage = std::move(newNote);
|
|
||||||
notifyCore.broadcastNotification(*friendMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesktopNotify::notifyGroupInvite()
|
void DesktopNotify::notifyGroupInvite()
|
||||||
{
|
{
|
||||||
const Settings& s = Settings::getInstance();
|
|
||||||
if(!(s.getNotify() && s.getDesktopNotify())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString title = tr("New group invite received");
|
const QString title = tr("New group invite received");
|
||||||
const QString text{};
|
createNotification(title);
|
||||||
NotificationPtr newNote = createNotification(title, text);
|
|
||||||
if (!newNote) {
|
|
||||||
qDebug() << "Failed to allocate friend message notification";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
friendMessage = std::move(newNote);
|
|
||||||
notifyCore.broadcastNotification(*friendMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesktopNotify::notifyFriendMessage()
|
void DesktopNotify::notifyFriendMessage()
|
||||||
{
|
{
|
||||||
const Settings& s = Settings::getInstance();
|
|
||||||
if(!(s.getNotify() && s.getDesktopNotify())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString title = tr("New message received");
|
const QString title = tr("New message received");
|
||||||
const QString text{};
|
createNotification(title);
|
||||||
NotificationPtr newNote = createNotification(title, text);
|
|
||||||
if (!newNote) {
|
|
||||||
qDebug() << "Failed to allocate friend message notification";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
friendMessage = std::move(newNote);
|
|
||||||
notifyCore.broadcastNotification(*friendMessage);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,17 +19,10 @@ public slots:
|
||||||
void notifyGroupInvite();
|
void notifyGroupInvite();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using NotificationPtr = std::unique_ptr<Snore::Notification>;
|
void createNotification(const QString& title);
|
||||||
|
|
||||||
NotificationPtr createNotification(const QString& title, const QString& text,
|
|
||||||
Snore::Notification* old = nullptr);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Snore::SnoreCore& notifyCore;
|
Snore::SnoreCore& notifyCore;
|
||||||
NotificationPtr groupInvite = {nullptr};
|
|
||||||
NotificationPtr groupMessage = {nullptr};
|
|
||||||
NotificationPtr friendRequest = {nullptr};
|
|
||||||
NotificationPtr friendMessage = {nullptr};
|
|
||||||
Snore::Application snoreApp;
|
Snore::Application snoreApp;
|
||||||
Snore::Icon snoreIcon;
|
Snore::Icon snoreIcon;
|
||||||
};
|
};
|
||||||
|
|
|
@ -275,6 +275,7 @@ void UserInterfaceForm::on_notify_stateChanged()
|
||||||
bodyUI->groupOnlyNotfiyWhenMentioned->setEnabled(notify);
|
bodyUI->groupOnlyNotfiyWhenMentioned->setEnabled(notify);
|
||||||
bodyUI->notifySound->setEnabled(notify);
|
bodyUI->notifySound->setEnabled(notify);
|
||||||
bodyUI->busySound->setEnabled(notify && bodyUI->notifySound->isChecked());
|
bodyUI->busySound->setEnabled(notify && bodyUI->notifySound->isChecked());
|
||||||
|
bodyUI->desktopNotify->setEnabled(notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserInterfaceForm::on_notifySound_stateChanged()
|
void UserInterfaceForm::on_notifySound_stateChanged()
|
||||||
|
|
|
@ -1446,7 +1446,13 @@ bool Widget::newMessageAlert(QWidget* currentWindow, bool isActive, bool sound,
|
||||||
|
|
||||||
if (settings.getNotify()) {
|
if (settings.getNotify()) {
|
||||||
if (inactiveWindow) {
|
if (inactiveWindow) {
|
||||||
|
#if DESKTOP_NOTIFICATIONS
|
||||||
|
if (!settings.getDesktopNotify()) {
|
||||||
|
QApplication::alert(currentWindow);
|
||||||
|
}
|
||||||
|
#else
|
||||||
QApplication::alert(currentWindow);
|
QApplication::alert(currentWindow);
|
||||||
|
#endif
|
||||||
eventFlag = true;
|
eventFlag = true;
|
||||||
}
|
}
|
||||||
bool isBusy = Nexus::getCore()->getStatus() == Status::Busy;
|
bool isBusy = Nexus::getCore()->getStatus() == Status::Busy;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user