From 7fb3e5a908b766fc669332b6438673b516095033 Mon Sep 17 00:00:00 2001 From: Adam Higerd Date: Fri, 16 Feb 2024 16:41:43 -0600 Subject: [PATCH] Add word characters preference option (fixes #1098) --- src/forms/propertiesdialog.ui | 61 ++++++++++++++++++++++------------- src/properties.cpp | 1 + src/properties.h | 1 + src/propertiesdialog.cpp | 4 +++ src/termwidget.cpp | 1 + 5 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/forms/propertiesdialog.ui b/src/forms/propertiesdialog.ui index 5e471124..a5858eef 100644 --- a/src/forms/propertiesdialog.ui +++ b/src/forms/propertiesdialog.ui @@ -69,7 +69,7 @@ QFrame::StyledPanel - 0 + 1 @@ -101,8 +101,8 @@ 0 0 - 440 - 925 + 384 + 775 @@ -557,8 +557,8 @@ 0 0 - 490 - 872 + 398 + 771 @@ -621,14 +621,24 @@ - - + + - Default $TERM + Word selection characters + + + + + + + When selecting text by word, consider these characters as part of words in addition to alphanumeric characters + + + :@-./_~ - + Bracketed paste mode is useful for pasting multiline strings. @@ -638,21 +648,21 @@ - + Confirm multiline paste - + Trim trailing newlines in pasted text - + Close tab on middle-click @@ -662,28 +672,28 @@ - + Ask for confirmation when closing - + Save Position when closing - + Save Size when closing - + 5 @@ -741,14 +751,14 @@ - + Open new terminals in current working directory - + If unchecked the new tab will be opened as the rightmost tab @@ -758,14 +768,21 @@ - + Audible bell - + + + + Default $TERM + + + + @@ -791,10 +808,10 @@ - + - + This command will be run with an argument containing the file name of a tempfile containing the scrollback history diff --git a/src/properties.cpp b/src/properties.cpp index 841279c9..5877694e 100644 --- a/src/properties.cpp +++ b/src/properties.cpp @@ -161,6 +161,7 @@ void Properties::loadSettings() confirmMultilinePaste = m_settings->value(QLatin1String("ConfirmMultilinePaste"), false).toBool(); trimPastedTrailingNewlines = m_settings->value(QLatin1String("TrimPastedTrailingNewlines"), false).toBool(); + wordCharacters = m_settings->value(QLatin1String("WordCharacters"), QLatin1String(":@-./_~")).toString(); windowMaximized = m_settings->value(QLatin1String("LastWindowMaximized"), false).toBool(); diff --git a/src/properties.h b/src/properties.h index 96872954..986a9910 100644 --- a/src/properties.h +++ b/src/properties.h @@ -122,6 +122,7 @@ class Properties bool confirmMultilinePaste; bool trimPastedTrailingNewlines; + QString wordCharacters; bool windowMaximized; bool swapMouseButtons2and3; diff --git a/src/propertiesdialog.cpp b/src/propertiesdialog.cpp index a64899dc..0e86c755 100644 --- a/src/propertiesdialog.cpp +++ b/src/propertiesdialog.cpp @@ -199,6 +199,9 @@ PropertiesDialog::PropertiesDialog(QWidget *parent) disableBracketedPasteModeCheckBox->setChecked(Properties::Instance()->m_disableBracketedPasteMode); + // word characters for text selection + wordCharactersLineEdit->setText(Properties::Instance()->wordCharacters); + // Setting windows style actions styleComboBox->addItem(tr("System Default")); styleComboBox->addItems(QStyleFactory::keys()); @@ -390,6 +393,7 @@ void PropertiesDialog::apply() Properties::Instance()->trimPastedTrailingNewlines = trimPastedTrailingNewlinesCheckBox->isChecked(); Properties::Instance()->confirmMultilinePaste = confirmMultilinePasteCheckBox->isChecked(); + Properties::Instance()->wordCharacters = wordCharactersLineEdit->text(); emit propertiesChanged(); } diff --git a/src/termwidget.cpp b/src/termwidget.cpp index 935c4dd5..2067e767 100644 --- a/src/termwidget.cpp +++ b/src/termwidget.cpp @@ -111,6 +111,7 @@ void TermWidgetImpl::propertiesChanged() setMotionAfterPasting(Properties::Instance()->m_motionAfterPaste); disableBracketedPasteMode(Properties::Instance()->m_disableBracketedPasteMode); setConfirmMultilinePaste(Properties::Instance()->confirmMultilinePaste); + setWordCharacters(Properties::Instance()->wordCharacters); setTrimPastedTrailingNewlines(Properties::Instance()->trimPastedTrailingNewlines); setTerminalSizeHint(Properties::Instance()->showTerminalSizeHint);