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) {