1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-22 02:02:10 +02:00

LineEdit: Fix slow text selection with mouse

Regression from 2c0582b9a1
This commit is contained in:
David Rosca 2014-11-05 09:51:13 +01:00
parent b81c45486f
commit f698c0a78f
2 changed files with 12 additions and 2 deletions

View File

@ -154,9 +154,10 @@ void LineEdit::init()
// Connections to update edit actions
connect(this, SIGNAL(textChanged(QString)), this, SLOT(updateActions()));
connect(this, SIGNAL(selectionChanged()), this, SLOT(updateActions()));
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(updateActions()));
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(updatePasteActions()));
updateActions();
updatePasteActions();
}
bool LineEdit::event(QEvent* event)
@ -236,11 +237,19 @@ void LineEdit::updateActions()
m_editActions[Redo]->setEnabled(!isReadOnly() && isRedoAvailable());
m_editActions[Cut]->setEnabled(!isReadOnly() && hasSelectedText() && echoMode() == QLineEdit::Normal);
m_editActions[Copy]->setEnabled(hasSelectedText() && echoMode() == QLineEdit::Normal);
m_editActions[Paste]->setEnabled(!isReadOnly() && !QApplication::clipboard()->text().isEmpty());
m_editActions[Delete]->setEnabled(!isReadOnly() && hasSelectedText());
m_editActions[SelectAll]->setEnabled(!text().isEmpty() && selectedText() != text());
}
void LineEdit::updatePasteActions()
{
// Paste actions are updated in separate slot because accessing clipboard is expensive
bool pasteEnabled = !isReadOnly() && !QApplication::clipboard()->text().isEmpty();
m_editActions[Paste]->setEnabled(pasteEnabled);
m_editActions[PasteAndGo]->setEnabled(pasteEnabled);
}
void LineEdit::slotDelete()
{
if (hasSelectedText()) {

View File

@ -124,6 +124,7 @@ protected:
private slots:
void updateActions();
void updatePasteActions();
void slotDelete();
private: