1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#ifndef EXTLINEEDIT_H
#define EXTLINEEDIT_H
#include "guiSQLiteStudio_global.h"
#include <QLineEdit>
class QToolButton;
class GUI_API_EXPORT ExtLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit ExtLineEdit(QWidget *parent = 0);
explicit ExtLineEdit(const QString& text, QWidget *parent = 0);
bool getExpanding() const;
void setExpanding(bool value);
int getExpandingMinWidth() const;
void setExpandingMinWidth(int value);
int getExpandingMaxWidth() const;
void setExpandingMaxWidth(int value);
void setClearButtonEnabled(bool enable);
private:
void init();
void updateMinSize();
static const int expandingExtraSpace = 4; // QLineEdit has hardcoded horizontal margin of 2 for both sides
bool expanding = false;
int expandingMinWidth = 0;
int expandingMaxWidth = -1;
bool nextClearingIsFromButton = false;
private slots:
void handleTextChanged();
void checkForValueErased();
void checkForValueErased(const QString &text);
signals:
void valueErased();
};
#endif // EXTLINEEDIT_H
|