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 // Connections to update edit actions
connect(this, SIGNAL(textChanged(QString)), this, SLOT(updateActions())); connect(this, SIGNAL(textChanged(QString)), this, SLOT(updateActions()));
connect(this, SIGNAL(selectionChanged()), 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(); updateActions();
updatePasteActions();
} }
bool LineEdit::event(QEvent* event) bool LineEdit::event(QEvent* event)
@ -236,11 +237,19 @@ void LineEdit::updateActions()
m_editActions[Redo]->setEnabled(!isReadOnly() && isRedoAvailable()); m_editActions[Redo]->setEnabled(!isReadOnly() && isRedoAvailable());
m_editActions[Cut]->setEnabled(!isReadOnly() && hasSelectedText() && echoMode() == QLineEdit::Normal); m_editActions[Cut]->setEnabled(!isReadOnly() && hasSelectedText() && echoMode() == QLineEdit::Normal);
m_editActions[Copy]->setEnabled(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[Delete]->setEnabled(!isReadOnly() && hasSelectedText());
m_editActions[SelectAll]->setEnabled(!text().isEmpty() && selectedText() != text()); 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() void LineEdit::slotDelete()
{ {
if (hasSelectedText()) { if (hasSelectedText()) {

View File

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