diff --git a/src/dialogs/editconfigwidget.ui b/src/dialogs/editconfigwidget.ui
--- a/src/dialogs/editconfigwidget.ui
+++ b/src/dialogs/editconfigwidget.ui
@@ -161,6 +161,13 @@
Copy and Paste
+ -
+
+
+ Move selected text by drag and drop
+
+
+
-
diff --git a/src/dialogs/katedialogs.cpp b/src/dialogs/katedialogs.cpp
--- a/src/dialogs/katedialogs.cpp
+++ b/src/dialogs/katedialogs.cpp
@@ -460,6 +460,7 @@
observeChanges(ui->chkAutoBrackets);
observeChanges(ui->chkMousePasteAtCursorPosition);
observeChanges(ui->chkShowStaticWordWrapMarker);
+ observeChanges(ui->chkTextDragAndDrop);
observeChanges(ui->chkSmartCopyCut);
observeChanges(ui->chkStaticWordWrap);
observeChanges(ui->cmbInputMode);
@@ -493,6 +494,7 @@
KateViewConfig::global()->setValue(KateViewConfig::AutoBrackets, ui->chkAutoBrackets->isChecked());
KateViewConfig::global()->setValue(KateViewConfig::InputMode, ui->cmbInputMode->currentData().toInt());
KateViewConfig::global()->setValue(KateViewConfig::MousePasteAtCursorPosition, ui->chkMousePasteAtCursorPosition->isChecked());
+ KateViewConfig::global()->setValue(KateViewConfig::TextDragAndDrop, ui->chkTextDragAndDrop->isChecked());
KateViewConfig::global()->setValue(KateViewConfig::SmartCopyCut, ui->chkSmartCopyCut->isChecked());
KateDocumentConfig::global()->configEnd();
@@ -504,6 +506,7 @@
ui->chkAutoBrackets->setChecked(KateViewConfig::global()->autoBrackets());
ui->chkMousePasteAtCursorPosition->setChecked(KateViewConfig::global()->mousePasteAtCursorPosition());
ui->chkShowStaticWordWrapMarker->setChecked(KateRendererConfig::global()->wordWrapMarker());
+ ui->chkTextDragAndDrop->setChecked(KateViewConfig::global()->textDragAndDrop());
ui->chkSmartCopyCut->setChecked(KateViewConfig::global()->smartCopyCut());
ui->chkStaticWordWrap->setChecked(KateDocumentConfig::global()->wordWrap());
diff --git a/src/utils/kateconfig.h b/src/utils/kateconfig.h
--- a/src/utils/kateconfig.h
+++ b/src/utils/kateconfig.h
@@ -983,6 +983,7 @@
ShowScrollBarPreview,
ShowScrollbars,
ShowWordCount,
+ TextDragAndDrop,
SmartCopyCut,
ViInputModeStealKeys,
ViRelativeLineNumbers,
@@ -1195,6 +1196,11 @@
return value(WordCompletionRemoveTail).toBool();
}
+ bool textDragAndDrop() const
+ {
+ return value(TextDragAndDrop).toBool();
+ }
+
bool smartCopyCut() const
{
return value(SmartCopyCut).toBool();
diff --git a/src/utils/kateconfig.cpp b/src/utils/kateconfig.cpp
--- a/src/utils/kateconfig.cpp
+++ b/src/utils/kateconfig.cpp
@@ -550,6 +550,7 @@
addConfigEntry(ConfigEntry(ShowScrollBarPreview, "Scroll Bar Preview", QStringLiteral("scrollbar-preview"), true));
addConfigEntry(ConfigEntry(ShowScrollbars, "Show Scrollbars", QString(), AlwaysOn, [](const QVariant &value) { return inBounds(0, value, 2); }));
addConfigEntry(ConfigEntry(ShowWordCount, "Show Word Count", QString(), false));
+ addConfigEntry(ConfigEntry(TextDragAndDrop, "Text Drag And Drop", QString(), true));
addConfigEntry(ConfigEntry(SmartCopyCut, "Smart Copy Cut", QString(), false));
addConfigEntry(ConfigEntry(ViInputModeStealKeys, "Vi Input Mode Steal Keys", QString(), false));
addConfigEntry(ConfigEntry(ViRelativeLineNumbers, "Vi Relative Line Numbers", QString(), false));
diff --git a/src/view/kateviewinternal.cpp b/src/view/kateviewinternal.cpp
--- a/src/view/kateviewinternal.cpp
+++ b/src/view/kateviewinternal.cpp
@@ -2622,7 +2622,7 @@
m_selectionCached = KTextEditor::Range::invalid();
}
- if (!(e->modifiers() & Qt::ShiftModifier) && isTargetSelected(e->pos())) {
+ if (view()->config()->textDragAndDrop() && !(e->modifiers() & Qt::ShiftModifier) && isTargetSelected(e->pos())) {
m_dragInfo.state = diPending;
m_dragInfo.start = e->pos();
} else {
@@ -2915,7 +2915,7 @@
}
} else {
- if (isTargetSelected(e->pos())) {
+ if (view()->config()->textDragAndDrop() && isTargetSelected(e->pos())) {
// mouse is over selected text. indicate that the text is draggable by setting
// the arrow cursor as other Qt text editing widgets do
if (m_mouseCursor != Qt::ArrowCursor) {