Git commit 8ed45adea01f287ecdd0ddd2ee98cd643553c467 by Kurt Hindenburg, on behalf of Sune Vuorela. Committed on 26/11/2025 at 17:22. Pushed by hindenburg into branch 'master'.
Add option to ignore ZModem terminal codes It is sufficiently a rarity that it is more likely that people get confused by unexpected zmodem terminal codes than the handful of users actually expecting them. See also: https://bugs.debian.org/1119976 GUI: M +5 -0 src/Emulation.cpp M +120 -113 src/settings/GeneralSettings.ui M +5 -0 src/settings/konsole.kcfg https://invent.kde.org/utilities/konsole/-/commit/8ed45adea01f287ecdd0ddd2ee98cd643553c467 diff --git a/src/Emulation.cpp b/src/Emulation.cpp index e3c896752a..fb2737d55e 100644 --- a/src/Emulation.cpp +++ b/src/Emulation.cpp @@ -13,6 +13,7 @@ #include <QKeyEvent> // Konsole +#include "KonsoleSettings.h" #include "Screen.h" #include "ScreenWindow.h" #include "keyboardtranslator/KeyboardTranslator.h" @@ -246,6 +247,10 @@ void Emulation::receiveData(const char *text, int length) const QVector<uint> chars = readString.toUcs4(); receiveChars(chars); + if (KonsoleSettings::listenForZModemTerminalCodes() == false) { + return; + } + // look for z-modem indicator //-- someone who understands more about z-modems that I do may be able to move // this check into the above for loop? diff --git a/src/settings/GeneralSettings.ui b/src/settings/GeneralSettings.ui index 5492412b25..0a6002c92b 100644 --- a/src/settings/GeneralSettings.ui +++ b/src/settings/GeneralSettings.ui @@ -37,7 +37,7 @@ <property name="spacing"> <number>6</number> </property> - <item row="11" column="1"> + <item row="12" column="1"> <widget class="QCheckBox" name="kcfg_SearchReverseSearch"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -53,22 +53,22 @@ </property> </widget> </item> - <item row="6" column="1"> - <widget class="QCheckBox" name="kcfg_EnableSecuritySensitiveDBusAPI"> + <item row="15" column="0" alignment="Qt::AlignmentFlag::AlignRight"> + <widget class="QLabel" name="label_3"> <property name="text"> - <string>Enable the security sensitive parts of the DBus API</string> + <string>Notifications:</string> </property> </widget> </item> - <item row="8" column="0" alignment="Qt::AlignmentFlag::AlignRight"> - <widget class="QLabel" name="label_2"> + <item row="5" column="1"> + <widget class="QCheckBox" name="kcfg_FocusFollowsMouse"> <property name="text"> - <string comment="@item:intext Search options">Search:</string> + <string>Focus terminals when the mouse pointer is moved over them</string> </property> </widget> </item> - <item row="9" column="1"> - <widget class="QCheckBox" name="kcfg_SearchRegExpression"> + <item row="2" column="1"> + <widget class="QCheckBox" name="kcfg_AllowMenuAccelerators"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -76,7 +76,14 @@ </sizepolicy> </property> <property name="text"> - <string>Match using regular expressions</string> + <string>Enable menu accelerators</string> + </property> + </widget> + </item> + <item row="9" column="0" alignment="Qt::AlignmentFlag::AlignRight"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string comment="@item:intext Search options">Search:</string> </property> </widget> </item> @@ -87,8 +94,44 @@ </property> </widget> </item> - <item row="2" column="1"> - <widget class="QCheckBox" name="kcfg_AllowMenuAccelerators"> + <item row="15" column="1"> + <layout class="QHBoxLayout" stretch="0,1"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <widget class="QPushButton" name="enableAllMessagesButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>All dialogs will be shown again</string> + </property> + <property name="text"> + <string>Enable all "Don't Ask Again" messages</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Orientation::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="11" column="1"> + <widget class="QCheckBox" name="kcfg_SearchHighlightMatches"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -96,28 +139,25 @@ </sizepolicy> </property> <property name="text"> - <string>Enable menu accelerators</string> + <string>Highlight all matches</string> </property> </widget> </item> - <item row="1" column="1"> - <widget class="QCheckBox" name="kcfg_UseSingleInstance"> + <item row="3" column="1"> + <widget class="QCheckBox" name="kcfg_ShowWindowTitleOnTitleBar"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="toolTip"> - <string>When launching Konsole re-use existing process if possible</string> - </property> <property name="text"> - <string>Run all Konsole windows in a single process</string> + <string>Show window title on the titlebar</string> </property> </widget> </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="kcfg_RememberWindowSize"> + <item row="13" column="1"> + <widget class="QCheckBox" name="kcfg_SearchNoWrap"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -125,22 +165,41 @@ </sizepolicy> </property> <property name="toolTip"> - <string>If enabled, profile settings will be ignored</string> + <string>Sets whether search should stop instead of wrapping</string> </property> <property name="text"> - <string>Remember window size</string> + <string>No wrap</string> </property> </widget> </item> - <item row="14" column="0" alignment="Qt::AlignmentFlag::AlignRight"> - <widget class="QLabel" name="label_3"> + <item row="14" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Orientation::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Policy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> <property name="text"> - <string>Notifications:</string> + <string>Process and window:</string> + </property> + <property name="alignment"> + <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set> </property> </widget> </item> - <item row="12" column="1"> - <widget class="QCheckBox" name="kcfg_SearchNoWrap"> + <item row="1" column="1"> + <widget class="QCheckBox" name="kcfg_UseSingleInstance"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -148,34 +207,53 @@ </sizepolicy> </property> <property name="toolTip"> - <string>Sets whether search should stop instead of wrapping</string> + <string>When launching Konsole re-use existing process if possible</string> </property> <property name="text"> - <string>No wrap</string> + <string>Run all Konsole windows in a single process</string> </property> </widget> </item> - <item row="3" column="1"> - <widget class="QCheckBox" name="kcfg_ShowWindowTitleOnTitleBar"> + <item row="0" column="1"> + <widget class="QCheckBox" name="kcfg_RememberWindowSize"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> + <property name="toolTip"> + <string>If enabled, profile settings will be ignored</string> + </property> <property name="text"> - <string>Show window title on the titlebar</string> + <string>Remember window size</string> </property> </widget> </item> - <item row="5" column="1"> - <widget class="QCheckBox" name="kcfg_FocusFollowsMouse"> + <item row="6" column="1"> + <widget class="QCheckBox" name="kcfg_EnableSecuritySensitiveDBusAPI"> <property name="text"> - <string>Focus terminals when the mouse pointer is moved over them</string> + <string>Enable the security sensitive parts of the DBus API</string> </property> </widget> </item> <item row="8" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Orientation::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Policy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + <item row="9" column="1"> <widget class="QCheckBox" name="kcfg_SearchCaseSensitive"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -191,18 +269,8 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Process and window:</string> - </property> - <property name="alignment"> - <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set> - </property> - </widget> - </item> <item row="10" column="1"> - <widget class="QCheckBox" name="kcfg_SearchHighlightMatches"> + <widget class="QCheckBox" name="kcfg_SearchRegExpression"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -210,77 +278,16 @@ </sizepolicy> </property> <property name="text"> - <string>Highlight all matches</string> + <string>Match using regular expressions</string> </property> </widget> </item> - <item row="14" column="1"> - <layout class="QHBoxLayout" stretch="0,1"> - <property name="spacing"> - <number>0</number> - </property> - <item> - <widget class="QPushButton" name="enableAllMessagesButton"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>All dialogs will be shown again</string> - </property> - <property name="text"> - <string>Enable all "Don't Ask Again" messages</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation"> - <enum>Qt::Orientation::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="13" column="1"> - <spacer> - <property name="orientation"> - <enum>Qt::Orientation::Vertical</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Policy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>16</height> - </size> - </property> - </spacer> - </item> <item row="7" column="1"> - <spacer> - <property name="orientation"> - <enum>Qt::Orientation::Vertical</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Policy::Fixed</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>16</height> - </size> + <widget class="QCheckBox" name="kcfg_ListenForZModemTerminalCodes"> + <property name="text"> + <string>Listen for ZModem terminal codes</string> </property> - </spacer> + </widget> </item> </layout> </item> diff --git a/src/settings/konsole.kcfg b/src/settings/konsole.kcfg index 42fbfd01c6..7fdd0bb81f 100644 --- a/src/settings/konsole.kcfg +++ b/src/settings/konsole.kcfg @@ -38,6 +38,11 @@ <tooltip>DBus API like runCommand will be enabled</tooltip> <default>false</default> </entry> + <entry name="ListenForZModemTerminalCodes" type="Bool"> + <label>Listen for ZModem Terminal codes</label> + <tooltip>Automatic send/receive files over serial connections</tooltip> + <default>false</default> + </entry> </group> <group name="ThumbnailsSettings"> <entry name="EnableThumbnails" type="Bool">
