summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h
blob: b3bffbbe083c72ea10c675b947753e387faada69 (plain) (blame)
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
#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;

    private slots:
        void handleTextChanged();

    signals:
        void valueErased();
};

#endif // EXTLINEEDIT_H