diff --git a/src/qtgui/guiutils.cpp b/src/qtgui/guiutils.cpp
index 86d12abf..c19872fe 100644
--- a/src/qtgui/guiutils.cpp
+++ b/src/qtgui/guiutils.cpp
@@ -237,6 +237,8 @@ void rwSettings(bool writing)
SETTING_RW(prefs.termMatchType, "/Recoll/prefs/query/termMatchType",
Int, 0);
+ SETTING_RW(prefs.noBeeps, "/Recoll/prefs/query/noBeeps", Bool, false);
+
// This is not really the current program version, just a value to
// be used in case we have incompatible changes one day
SETTING_RW(prefs.rclVersion, "/Recoll/prefs/rclVersion", Int, 1009);
diff --git a/src/qtgui/guiutils.h b/src/qtgui/guiutils.h
index 139a5e5c..d741f0a8 100644
--- a/src/qtgui/guiutils.h
+++ b/src/qtgui/guiutils.h
@@ -135,7 +135,9 @@ class PrefsPack {
// Program version that wrote this. Not used for now, in prevision
// of the case where we might need an incompatible change
int rclVersion;
-
+ // Suppress all noises
+ bool noBeeps;
+
bool showTrayIcon;
bool closeToTray;
diff --git a/src/qtgui/preview_w.cpp b/src/qtgui/preview_w.cpp
index 18ce9186..77e8fa88 100644
--- a/src/qtgui/preview_w.cpp
+++ b/src/qtgui/preview_w.cpp
@@ -375,7 +375,7 @@ void Preview::doSearch(const QString &_text, bool next, bool reverse,
if (found) {
m_canBeep = true;
} else {
- if (m_canBeep)
+ if (m_canBeep && !prefs.noBeeps)
QApplication::beep();
m_canBeep = false;
}
diff --git a/src/qtgui/rclm_preview.cpp b/src/qtgui/rclm_preview.cpp
index 759ec767..c7513078 100644
--- a/src/qtgui/rclm_preview.cpp
+++ b/src/qtgui/rclm_preview.cpp
@@ -250,7 +250,12 @@ void RclMain::previewPrevOrNextInTab(Preview * w, int sid, int docnum, bool nxt)
else
docnum--;
if (docnum < 0 || !m_source || docnum >= m_source->getResCnt()) {
- QApplication::beep();
+ if (!prefs.noBeeps) {
+ LOGDEB("Beeping\n");
+ QApplication::beep();
+ } else {
+ LOGDEB("Not beeping because nobeep is set\n");
+ }
return;
}
diff --git a/src/qtgui/uiprefs.ui b/src/qtgui/uiprefs.ui
index f7f3dfb7..5b362f49 100644
--- a/src/qtgui/uiprefs.ui
+++ b/src/qtgui/uiprefs.ui
@@ -260,6 +260,16 @@
+ -
+
+
+ Suppress all beeps.
+
+
+ false
+
+
+
-
diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp
index 9c8f85f8..4d152554 100644
--- a/src/qtgui/uiprefs_w.cpp
+++ b/src/qtgui/uiprefs_w.cpp
@@ -126,6 +126,7 @@ void UIPrefsDialog::setFromPrefs()
filterBT_RB->setChecked(1);
break;
}
+ noBeepsCB->setChecked(prefs.noBeeps);
ssNoCompleteCB->setChecked(prefs.ssearchNoComplete);
ssSearchOnCompleteCB->setChecked(prefs.ssearchStartOnComplete);
ssSearchOnCompleteCB->setEnabled(!prefs.ssearchNoComplete);
@@ -261,6 +262,7 @@ void UIPrefsDialog::setupReslistFontPB()
void UIPrefsDialog::accept()
{
+ prefs.noBeeps = noBeepsCB->isChecked();
prefs.ssearchNoComplete = ssNoCompleteCB->isChecked();
prefs.ssearchStartOnComplete = ssSearchOnCompleteCB->isChecked();