mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
5f34a959fc
Introduce a new PasswordEdit widget extending QLineEdit that takes care of all the specifics of a QLineEntry when it is used to input a password, including echo mode and caps lock indicator. Also optimize the event handling to only listen to global events when it is actually needed, e.g. when a password field is actually visible.
38 lines
694 B
C++
38 lines
694 B
C++
#ifndef PASSWORDEDIT_H
|
|
#define PASSWORDEDIT_H
|
|
|
|
#include <QAction>
|
|
#include <QLineEdit>
|
|
|
|
class PasswordEdit : public QLineEdit
|
|
{
|
|
public:
|
|
PasswordEdit(QWidget *parent);
|
|
~PasswordEdit();
|
|
|
|
protected:
|
|
virtual void showEvent(QShowEvent* event);
|
|
virtual void hideEvent(QHideEvent* event);
|
|
|
|
private:
|
|
class EventHandler : QObject
|
|
{
|
|
public:
|
|
QVector<QAction*> actions;
|
|
|
|
EventHandler();
|
|
~EventHandler();
|
|
void updateActions();
|
|
bool eventFilter(QObject *obj, QEvent *event);
|
|
};
|
|
|
|
void registerHandler();
|
|
void unregisterHandler();
|
|
|
|
private:
|
|
QAction* action;
|
|
|
|
static EventHandler* eventHandler;
|
|
};
|
|
#endif // PASSWORDEDIT_H
|