Trim very long text strings in Klipper history view

Klipper may freeze the whole plasmashell for tens of seconds trying
to render very long text string from history in the popup.

Trim very large strings to 200 characters (tooltip default) to prevent this.

BUG: 431673
wilder-5.24
ValdikSS ValdikSS 5 years ago committed by David Edmundson
parent 7a0686b4eb
commit f9669af2cf
  1. 6
      klipper/historystringitem.cpp
  2. 5
      klipper/historystringitem.h
  3. 2
      klipper/klipper.cpp

@ -25,3 +25,9 @@ QMimeData *HistoryStringItem::mimeData() const
data->setText(m_data);
return data;
}
QString HistoryStringItem::text() const
{
const int TEXT_LENGTH_LIMIT = 200;
return m_data.left(TEXT_LENGTH_LIMIT - 1) + (m_data.length() <= TEXT_LENGTH_LIMIT ? QStringLiteral("") : QStringLiteral(""));
}

@ -37,8 +37,3 @@ public:
private:
QString m_data;
};
inline QString HistoryStringItem::text() const
{
return m_data;
}

@ -870,7 +870,7 @@ void Klipper::editData(const QSharedPointer<const HistoryItem> &item)
KTextEdit *edit = new KTextEdit(dlg);
edit->setAcceptRichText(false);
if (item) {
edit->setPlainText(item->text());
edit->setPlainText(item->mimeData()->text());
}
edit->setFocus();
edit->setMinimumSize(300, 40);

Loading…
Cancel
Save