X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.cpp;h=699d4ec825eac48b46b122340146da61df96e0a9;hp=96fd43f5b1d821a611fa6e043d8fe2714425354f;hb=eabf97d25da5af06033807c2697fd687fc48d2e7;hpb=4ce4f3a6b08bba1a846abf135f5bbcbe15fb060a diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp index 96fd43f5..699d4ec8 100644 --- a/src/uisupport/multilineedit.cpp +++ b/src/uisupport/multilineedit.cpp @@ -166,6 +166,10 @@ void MultiLineEdit::setWordWrapEnabled(bool enable) { updateSizeHint(); } +void MultiLineEdit::setPasteProtectionEnabled(bool enable, QWidget *) { + _pasteProtectionEnabled = enable; +} + void MultiLineEdit::historyMoveBack() { addToHistory(text(), true); @@ -293,8 +297,12 @@ void MultiLineEdit::keyPressEvent(QKeyEvent *event) { } void MultiLineEdit::on_returnPressed() { - if(!text().isEmpty()) { - foreach(const QString &line, text().split('\n', QString::SkipEmptyParts)) { + on_returnPressed(text()); +} + +void MultiLineEdit::on_returnPressed(const QString & text) { + if(!text.isEmpty()) { + foreach(const QString &line, text.split('\n', QString::SkipEmptyParts)) { if(line.isEmpty()) continue; addToHistory(line); @@ -309,8 +317,39 @@ void MultiLineEdit::on_textChanged() { QString newText = text(); newText.replace("\r\n", "\n"); newText.replace('\r', '\n'); - if(_mode == SingleLine) - newText.replace('\n', ' '); + if(_mode == SingleLine) { + if(!pasteProtectionEnabled()) + newText.replace('\n', ' '); + else if(newText.contains('\n')) { + QStringList lines = newText.split('\n', QString::SkipEmptyParts); + clear(); + + if(lines.count() >= 4) { + QString msg = tr("Do you really want to paste %n lines?", "", lines.count()); + msg += "
";
+ for(int i = 0; i < 4; i++) {
+ msg += Qt::escape(lines[i].left(40));
+ if(lines[i].count() > 40)
+ msg += "...";
+ msg += "
";
+ }
+ msg += "...