-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathmodifybutton.h
More file actions
168 lines (150 loc) · 3.34 KB
/
modifybutton.h
File metadata and controls
168 lines (150 loc) · 3.34 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#ifndef MODIFYBUTTON_H
#define MODIFYBUTTON_H
#include <QWidget.h>
#include <QPushButton.h>
#include <QPlainTextEdit.h>
#include <QTextEdit>
#include <QLabel>
#define MODIFYBUTTON_STATUS_DISPLAY 1
#define MODIFYBUTTON_STATUS_MODIFY 2
class QLabelButton :public QLabel
{
Q_OBJECT
public:
QLabelButton(QWidget *parent = 0)
:QLabel(parent)
{}
~QLabelButton(){}
signals:
void SIGNAL_LButtonDown();
public:
void mousePressEvent(QMouseEvent * event) override;
};
class QModifySubEdit: public QTextEdit
{
Q_OBJECT
public:
QModifySubEdit(QWidget *parent=0)
:QTextEdit(parent)
{
}
~QModifySubEdit(){}
signals:
void OnConfirm();
void OnCancel();
protected:
void keyPressEvent(QKeyEvent *e)
{
switch(e->key())
{
case Qt::Key_Return:
case Qt::Key_Enter:
emit OnConfirm();
break;
case Qt::Key_Escape:
emit OnCancel();
break;
default:
QTextEdit::keyPressEvent(e);
}
}
void focusOutEvent(QFocusEvent *e)
{
emit OnConfirm();
}
// void mousePressEvent(QMouseEvent *e)
// {
// emit OnConfirm();
// QTextEdit::mousePressEvent(e);
// }
};
class QModifyButton : public QWidget
{
Q_OBJECT
Q_PROPERTY(quint32 m_Status READ GetStatus WRITE SetStatus)
Q_PROPERTY(quint32 m_ID READ GetID WRITE SetID)
Q_PROPERTY(bool m_Enabled READ GetEnabled WRITE SetEnabled )
Q_PROPERTY(bool m_EnabledModify READ GetEnabledModify WRITE SetEnabledModify)
Q_PROPERTY(QString m_Text READ GetText WRITE SetText)
public:
explicit QModifyButton(
QWidget *parent=0,
quint32 ID=0,
QString ObjectName="ModifyButton",
QString Text="Snapshot"
);
~QModifyButton();
quint32 GetStatus() const {return m_Status;}
bool GetEnabled()const {return m_Enabled;}
bool GetEnabledModify() const {return m_EnabledModify;}
QString GetText() const {return m_Text;}
quint32 GetID() const {return m_ID;}
void SetID(quint32 ID)
{
m_ID=ID;
}
void SetStatus(quint32 status)
{
if (status==MODIFYBUTTON_STATUS_DISPLAY)
{
ExitModify();
}
if (status==MODIFYBUTTON_STATUS_MODIFY)
{
EnterModify();
}
}
void SetEnabled(bool val)
{
m_Enabled=val;
m_LabelButton->setEnabled(m_Enabled);
m_TextEdit->setEnabled(m_Enabled);
}
void SetEnabledModify(bool val)
{
m_EnabledModify=val;
if (m_EnabledModify==false)
{
ExitModify();
}
}
void SetText(QString Text)
{
if(m_Status!=MODIFYBUTTON_STATUS_MODIFY)
{
if(Text!=m_Text)
{
m_Text=Text;
m_LabelButton->setText(Text);
m_TextEdit->setText(Text);
emit OnValueChange(m_ID,m_Text);
}
}
}
public slots:
void EnableModify(){SetEnabledModify(true);}
void DisableModify(){SetEnabledModify(false);}
void ValueChange(QString ch){SetText(ch);}
void ButtonClicked();
void EnterModify();
void ExitModify();
void CancelModify();
signals:
void OnValueChange(quint32,QString);
void OnClicked(quint32);
void OnModify(quint32,QString);
protected:
void focusOutEvent(QFocusEvent *);
void keyPressEvent(QKeyEvent *);
void resizeEvent(QResizeEvent *);
void mousePressEvent(QMouseEvent *);
private:
QString m_Text;
QLabelButton *m_LabelButton;
QModifySubEdit *m_TextEdit;
quint32 m_Status;
quint32 m_ID;
bool m_Enabled;
bool m_EnabledModify;
};
#endif // MODIFYBUTTON_H