aboutsummaryrefslogtreecommitdiff
path: root/src/eventfilters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/eventfilters.cpp')
-rw-r--r--src/eventfilters.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/eventfilters.cpp b/src/eventfilters.cpp
new file mode 100644
index 00000000..6f0b0f12
--- /dev/null
+++ b/src/eventfilters.cpp
@@ -0,0 +1,18 @@
+#include "eventfilters.h"
+
+bool AOLineEditFilter::eventFilter(QObject *obj, QEvent *event)
+{
+ QLineEdit *lineEdit = qobject_cast<QLineEdit *>(obj);
+ if (event->type() == QEvent::FocusOut && lineEdit != nullptr && preserve_selection)
+ { // lost focus
+ int start = lineEdit->selectionStart();
+ int len = lineEdit->selectionLength();
+
+ if (start != -1 && len != -1)
+ {
+ lineEdit->setSelection(start, len);
+ return true;
+ }
+ }
+ return false;
+}