diff --git a/src/plugins/terminal/terminalsettings.cpp b/src/plugins/terminal/terminalsettings.cpp index 86e88fc72fc..1a3625098da 100644 --- a/src/plugins/terminal/terminalsettings.cpp +++ b/src/plugins/terminal/terminalsettings.cpp @@ -104,12 +104,19 @@ TerminalSettings::TerminalSettings() "instead of closing the terminal.")); sendEscapeToTerminal.setDefaultValue(false); + audibleBell.setSettingsKey("AudibleBell"); + audibleBell.setLabelText(Tr::tr("Audible bell")); + audibleBell.setToolTip(Tr::tr("If enabled, the terminal will beep when a bell " + "character is received.")); + audibleBell.setDefaultValue(true); + registerAspect(&font); registerAspect(&fontSize); registerAspect(&shell); registerAspect(&allowBlinkingCursor); registerAspect(&enableTerminal); registerAspect(&sendEscapeToTerminal); + registerAspect(&audibleBell); setupColor(this, foregroundColor, diff --git a/src/plugins/terminal/terminalsettings.h b/src/plugins/terminal/terminalsettings.h index d57c411c233..45b85c5910f 100644 --- a/src/plugins/terminal/terminalsettings.h +++ b/src/plugins/terminal/terminalsettings.h @@ -29,6 +29,7 @@ public: Utils::BoolAspect allowBlinkingCursor; Utils::BoolAspect sendEscapeToTerminal; + Utils::BoolAspect audibleBell; }; } // namespace Terminal diff --git a/src/plugins/terminal/terminalsettingspage.cpp b/src/plugins/terminal/terminalsettingspage.cpp index 12ca9f26d86..f0bfa883d7a 100644 --- a/src/plugins/terminal/terminalsettingspage.cpp +++ b/src/plugins/terminal/terminalsettingspage.cpp @@ -378,9 +378,10 @@ QWidget *TerminalSettingsPage::widget() Column { Group { title(Tr::tr("General")), - Row { + Column { settings.enableTerminal, st, - settings.sendEscapeToTerminal, st + settings.sendEscapeToTerminal, st, + settings.audibleBell, st, }, }, Group { diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index cc1b3b9f269..14b11762f7b 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -332,7 +332,11 @@ void TerminalWidget::setupSurface() connect(m_surface.get(), &Internal::TerminalSurface::unscroll, this, [this] { verticalScrollBar()->setValue(verticalScrollBar()->maximum()); }); - connect(m_surface.get(), &Internal::TerminalSurface::bell, this, [] { QApplication::beep(); }); + connect(m_surface.get(), &Internal::TerminalSurface::bell, this, [] { + if (TerminalSettings::instance().audibleBell.value()) + QApplication::beep(); + }); + if (m_shellIntegration) { connect(m_shellIntegration.get(), &ShellIntegration::commandChanged,