1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Added option to disable notification sounds.

This commit is contained in:
Jookia 2015-03-22 11:57:28 +11:00
parent ff4b431e5e
commit e3bdd6d221
6 changed files with 46 additions and 9 deletions

View File

@ -209,6 +209,7 @@ void Settings::load()
checkUpdates = s.value("checkUpdates", false).toBool(); checkUpdates = s.value("checkUpdates", false).toBool();
showWindow = s.value("showWindow", true).toBool(); showWindow = s.value("showWindow", true).toBool();
showInFront = s.value("showInFront", false).toBool(); showInFront = s.value("showInFront", false).toBool();
notifySound = s.value("notifySound", true).toBool();
groupAlwaysNotify = s.value("groupAlwaysNotify", false).toBool(); groupAlwaysNotify = s.value("groupAlwaysNotify", false).toBool();
fauxOfflineMessaging = s.value("fauxOfflineMessaging", true).toBool(); fauxOfflineMessaging = s.value("fauxOfflineMessaging", true).toBool();
autoSaveEnabled = s.value("autoSaveEnabled", false).toBool(); autoSaveEnabled = s.value("autoSaveEnabled", false).toBool();
@ -380,6 +381,7 @@ void Settings::saveGlobal(QString path)
s.setValue("checkUpdates", checkUpdates); s.setValue("checkUpdates", checkUpdates);
s.setValue("showWindow", showWindow); s.setValue("showWindow", showWindow);
s.setValue("showInFront", showInFront); s.setValue("showInFront", showInFront);
s.setValue("notifySound", notifySound);
s.setValue("groupAlwaysNotify", groupAlwaysNotify); s.setValue("groupAlwaysNotify", groupAlwaysNotify);
s.setValue("fauxOfflineMessaging", fauxOfflineMessaging); s.setValue("fauxOfflineMessaging", fauxOfflineMessaging);
s.setValue("compactLayout", compactLayout); s.setValue("compactLayout", compactLayout);
@ -693,6 +695,16 @@ void Settings::setShowInFront(bool newValue)
showInFront = newValue; showInFront = newValue;
} }
bool Settings::getNotifySound() const
{
return notifySound;
}
void Settings::setNotifySound(bool newValue)
{
notifySound = newValue;
}
bool Settings::getGroupAlwaysNotify() const bool Settings::getGroupAlwaysNotify() const
{ {
return groupAlwaysNotify; return groupAlwaysNotify;

View File

@ -128,6 +128,9 @@ public:
bool getShowInFront() const; bool getShowInFront() const;
void setShowInFront(bool newValue); void setShowInFront(bool newValue);
bool getNotifySound() const;
void setNotifySound(bool newValue);
bool getGroupAlwaysNotify() const; bool getGroupAlwaysNotify() const;
void setGroupAlwaysNotify(bool newValue); void setGroupAlwaysNotify(bool newValue);
@ -280,6 +283,7 @@ private:
bool checkUpdates; bool checkUpdates;
bool showWindow; bool showWindow;
bool showInFront; bool showInFront;
bool notifySound;
bool groupAlwaysNotify; bool groupAlwaysNotify;
bool forceTCP; bool forceTCP;

View File

@ -73,6 +73,7 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
bodyUI->autoSaveFilesDir->setText(Settings::getInstance().getGlobalAutoAcceptDir()); bodyUI->autoSaveFilesDir->setText(Settings::getInstance().getGlobalAutoAcceptDir());
bodyUI->showWindow->setChecked(Settings::getInstance().getShowWindow()); bodyUI->showWindow->setChecked(Settings::getInstance().getShowWindow());
bodyUI->showInFront->setChecked(Settings::getInstance().getShowInFront()); bodyUI->showInFront->setChecked(Settings::getInstance().getShowInFront());
bodyUI->notifySound->setChecked(Settings::getInstance().getNotifySound());
bodyUI->groupAlwaysNotify->setChecked(Settings::getInstance().getGroupAlwaysNotify()); bodyUI->groupAlwaysNotify->setChecked(Settings::getInstance().getGroupAlwaysNotify());
bodyUI->cbFauxOfflineMessaging->setChecked(Settings::getInstance().getFauxOfflineMessaging()); bodyUI->cbFauxOfflineMessaging->setChecked(Settings::getInstance().getFauxOfflineMessaging());
bodyUI->cbCompactLayout->setChecked(Settings::getInstance().getCompactLayout()); bodyUI->cbCompactLayout->setChecked(Settings::getInstance().getCompactLayout());
@ -132,6 +133,7 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged())); connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged()));
connect(bodyUI->showWindow, &QCheckBox::stateChanged, this, &GeneralForm::onShowWindowChanged); connect(bodyUI->showWindow, &QCheckBox::stateChanged, this, &GeneralForm::onShowWindowChanged);
connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront); connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront);
connect(bodyUI->notifySound, &QCheckBox::stateChanged, this, &GeneralForm::onSetNotifySound);
connect(bodyUI->groupAlwaysNotify, &QCheckBox::stateChanged, this, &GeneralForm::onSetGroupAlwaysNotify); connect(bodyUI->groupAlwaysNotify, &QCheckBox::stateChanged, this, &GeneralForm::onSetGroupAlwaysNotify);
connect(bodyUI->autoacceptFiles, &QCheckBox::stateChanged, this, &GeneralForm::onAutoAcceptFileChange); connect(bodyUI->autoacceptFiles, &QCheckBox::stateChanged, this, &GeneralForm::onAutoAcceptFileChange);
if (bodyUI->autoacceptFiles->isChecked()) if (bodyUI->autoacceptFiles->isChecked())
@ -371,6 +373,11 @@ void GeneralForm::onSetShowInFront()
Settings::getInstance().setShowInFront(bodyUI->showInFront->isChecked()); Settings::getInstance().setShowInFront(bodyUI->showInFront->isChecked());
} }
void GeneralForm::onSetNotifySound()
{
Settings::getInstance().setNotifySound(bodyUI->notifySound->isChecked());
}
void GeneralForm::onSetGroupAlwaysNotify() void GeneralForm::onSetGroupAlwaysNotify()
{ {
Settings::getInstance().setGroupAlwaysNotify(bodyUI->groupAlwaysNotify->isChecked()); Settings::getInstance().setGroupAlwaysNotify(bodyUI->groupAlwaysNotify->isChecked());

View File

@ -56,6 +56,7 @@ private slots:
void onCheckUpdateChanged(); void onCheckUpdateChanged();
void onShowWindowChanged(); void onShowWindowChanged();
void onSetShowInFront(); void onSetShowInFront();
void onSetNotifySound();
void onSetGroupAlwaysNotify(); void onSetGroupAlwaysNotify();
void onFauxOfflineMessaging(); void onFauxOfflineMessaging();
void onCompactLayout(); void onCompactLayout();

View File

@ -345,6 +345,16 @@ instead of system taskbar.</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="notifySound">
<property name="toolTip">
<string comment="toolTip for Notify sound setting">Play a sound when you recieve message.</string>
</property>
<property name="text">
<string>Play sound</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="1" column="2"> <item row="1" column="2">

View File

@ -745,17 +745,20 @@ void Widget::newMessageAlert(GenericChatroomWidget* chat)
setWindowState(Qt::WindowActive); setWindowState(Qt::WindowActive);
} }
static QFile sndFile(":audio/notification.pcm"); if (Settings::getInstance().getNotifySound())
static QByteArray sndData;
if (sndData.isEmpty())
{ {
sndFile.open(QIODevice::ReadOnly); static QFile sndFile(":audio/notification.pcm");
sndData = sndFile.readAll(); static QByteArray sndData;
sndFile.close();
}
Audio::playMono16Sound(sndData); if (sndData.isEmpty())
{
sndFile.open(QIODevice::ReadOnly);
sndData = sndFile.readAll();
sndFile.close();
}
Audio::playMono16Sound(sndData);
}
} }
void Widget::playRingtone() void Widget::playRingtone()