@ -9,6 +9,7 @@
# include <QAction>
# include <QMessageBox>
# include <QPushButton>
# include <QEvent>
# include <QDebug>
Dp4LoginWidget : : Dp4LoginWidget ( QWidget * parent )
@ -37,37 +38,59 @@ void Dp4LoginWidget::ResetPassword()
void Dp4LoginWidget : : initUi ( )
{
QWidget * top = new QWidget ( this ) ;
QVBoxLayout * layout = new QVBoxLayout ( this ) ;
layout - > setContentsMargins ( 100 , 0 , 100 , 50 ) ; //left,top,right,bottom
QLabel * pic = new QLabel ( top ) ;
pic - > setPixmap ( QPixmap ( USER_ICON ) ) ;
layout - > addWidget ( pic , 0 , Qt : : AlignCenter ) ;
layout - > addWidget ( new QLabel ( tr ( " Other User " ) ) , 0 , Qt : : AlignCenter ) ;
m_username = new QLineEdit ( top ) ;
m_topWidget = new QWidget ( this ) ;
m_layout = new QVBoxLayout ( m_topWidget ) ;
m_layout - > setContentsMargins ( 100 , 0 , 100 , 0 ) ; //left,top,right,bottom
QPixmap pixmap ( USER_ICON ) ;
m_labelImage = new QLabel ( m_topWidget ) ;
m_labelImage - > setPixmap ( pixmap ) ;
m_labelImage - > setMinimumHeight ( pixmap . height ( ) ) ;
m_layout - > addWidget ( m_labelImage , 0 , Qt : : AlignHCenter ) ;
m_labelOtherUser = new QLabel ( tr ( " Other User " ) , this ) ;
m_layout - > addWidget ( m_labelOtherUser , 0 , Qt : : AlignCenter ) ;
m_username = new QLineEdit ( m_topWidget ) ;
m_username - > setPlaceholderText ( tr ( " Username " ) ) ;
m_username - > setStyleSheet ( " background-color:royalblue; " ) ;
layout - > addWidget ( m_username ) ;
m_password = new QLineEdit ( top ) ;
m_ layout- > addWidget ( m_username ) ;
m_password = new QLineEdit ( m_ topWidget ) ;
m_password - > setPlaceholderText ( tr ( " Password " ) ) ;
m_password - > setEchoMode ( QLineEdit : : PasswordEchoOnEdit ) ;
m_password - > setStyleSheet ( " background-color:royalblue; " ) ;
connect ( m_password - > addAction ( QIcon : : fromTheme ( " media-playback-start " ) , QLineEdit : : TrailingPosition ) , & QAction : : triggered , this , [ = ] ( ) { this - > Logon ( ) ; } ) ;
layout - > addWidget ( m_password ) ;
m_environment = new QComboBox ( top ) ;
connect ( m_password - > addAction ( QIcon : : fromTheme ( " media-playback-start " ) , QLineEdit : : TrailingPosition ) , & QAction : : triggered , this , [ = ] ( ) { this - > Logon ( ) ; } ) ;
m_ layout- > addWidget ( m_password ) ;
m_environment = new QComboBox ( m_ topWidget ) ;
m_environment - > addItem ( tr ( " Production " ) ) ;
m_environment - > addItem ( tr ( " Development " ) ) ;
m_environment - > setStyleSheet ( " background-color:royalblue; " ) ;
layout - > addWidget ( m_environment ) ;
QPushButton * pb = new QPushButton ( tr ( " Forget Password " ) , top ) ;
pb - > setFlat ( true ) ;
connect ( pb , & QPushButton : : released , this , [ = ] ( ) { this - > ResetPassword ( ) ; } ) ;
layout - > addWidget ( pb ) ;
m_ layout- > addWidget ( m_environment ) ;
m_pbForgetPassword = new QPushButton ( tr ( " Forget Password " ) , m_ topWidget ) ;
m_ pbForgetPassword - > setFlat ( true ) ;
connect ( m_ pbForgetPassword , & QPushButton : : released , this , [ this ] { this - > ResetPassword ( ) ; } ) ;
m_ layout- > addWidget ( m_ pbForgetPassword ) ;
QString warningText = QString ( tr ( " When you click the '➔' button or press 'Enter', indicates you understand and accept the following usage policy. " ) ) + " \n \n "
+ QString ( tr ( " 'Unauthorized use of this Computer Terminal is a Criminal Offence under the Laws of Hong Kong.' " ) ) ;
QLabel * labelText = new QLabel ( top ) ;
labelText - > setWordWrap ( true ) ;
labelText - > setText ( warningText ) ;
layout - > addWidget ( labelText ) ;
m_labelText = new QLabel ( m_topWidget ) ;
m_labelText - > setWordWrap ( true ) ;
m_labelText - > setText ( warningText ) ;
m_layout - > addWidget ( m_labelText ) ;
m_layout - > addStretch ( ) ;
m_labelText - > installEventFilter ( this ) ;
QVBoxLayout * mainLayout = new QVBoxLayout ( this ) ;
mainLayout - > addWidget ( m_topWidget ) ;
}
bool Dp4LoginWidget : : eventFilter ( QObject * watchd , QEvent * event )
{
if ( watchd = = m_labelText & & event - > type ( ) = = QEvent : : Resize ) {
int height = m_labelImage - > height ( ) + m_labelOtherUser - > height ( ) +
m_username - > height ( ) + m_password - > height ( ) +
m_environment - > height ( ) + m_pbForgetPassword - > height ( ) +
m_labelText - > height ( ) + m_layout - > spacing ( ) * 6 +
m_layout - > contentsMargins ( ) . top ( ) + m_layout - > contentsMargins ( ) . bottom ( ) ;
m_topWidget - > setFixedHeight ( height ) ;
}
return QWidget : : eventFilter ( watchd , event ) ;
}