dialogregister.cpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. #include "dialogregister.h"
  2. #include "ui_dialogregister.h"
  3. #include "sncdatabase.h"
  4. #include "WSSSO.h"
  5. #include "respuserreg.h"
  6. DialogRegister::DialogRegister(QWidget *parent) :
  7. QDialog(parent),
  8. ui(new Ui::DialogRegister)
  9. {
  10. ui->setupUi(this);
  11. movie = new QMovie(":/loading.gif");
  12. movie->start();
  13. ui->labelProgress->setMovie(movie);
  14. ui->labelProgress->setVisible(false);
  15. ui->labelTitle->setText("");
  16. ui->widget->setProperty("class","regbg");
  17. ui->labelTitle->setProperty("class","xxxl-white");
  18. // ui->label1->setProperty("class","xxl-white");
  19. // ui->label2->setProperty("class","xxl-white");
  20. // ui->label3->setProperty("class","xxl-white");
  21. // ui->label4->setProperty("class","xxl-white");
  22. // ui->label5->setProperty("class","xxl-white");
  23. // ui->label6->setProperty("class","xxl-white");
  24. ui->labelUserIDTip->setProperty("class","txt-newcolor");
  25. ui->labelPass2Tip->setProperty("class","txt-newcolor");
  26. ui->labelPassTip->setProperty("class","txt-newcolor");
  27. ui->labelMailTip->setProperty("class","txt-newcolor");
  28. ui->labelQQTip->setProperty("class","txt-newcolor");
  29. ui->lineEditUserID->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z_]{1}[a-zA-Z0-9_]{5,19}"), this));
  30. ui->lineEditUserPwd->setValidator(new QRegExpValidator(QRegExp(".{7,12}"), this));
  31. ui->lineEditQQ->setValidator(new QRegExpValidator(QRegExp("\\d{5,15}"), this));
  32. ui->lineEditValidateCode->setValidator(new QRegExpValidator(QRegExp("\\d{4}"), this));
  33. ui->lineEditEmail->setValidator(new QRegExpValidator(QRegExp("[\\.a-zA-Z0-9_]+\\@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9]+)+"), this));
  34. m_styleRight = "background:url(:/right.png) no-repeat;background-position:center right;";
  35. m_styleWrong = "background:url(:/wrong.png) no-repeat;background-position:center right;";
  36. m_label = new XValidateLabel(this);
  37. m_label->setProperty("class","xl-white");
  38. ui->horizontalLayout_8->addWidget(m_label);
  39. ui->pushButtonRefresh->setProperty("class","link-newcolor");
  40. genValidateCode();
  41. setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);
  42. }
  43. DialogRegister::~DialogRegister()
  44. {
  45. delete m_label;
  46. delete ui;
  47. }
  48. void DialogRegister::on_pushButtonRegister_clicked()
  49. {
  50. ui->pushButtonRegister->setEnabled(false);
  51. setCursor(Qt::WaitCursor);
  52. reg();
  53. setCursor(Qt::ArrowCursor);
  54. ui->pushButtonRegister->setEnabled(true);
  55. }
  56. void DialogRegister::genValidateCode()
  57. {
  58. m_label->refresh();
  59. }
  60. void DialogRegister::reg()
  61. {
  62. on_lineEditUserID_lostFocus();
  63. on_lineEditUserPwd_lostFocus();
  64. on_lineEditUserPwd2_lostFocus();
  65. on_lineEditQQ_lostFocus();
  66. on_lineEditEmail_lostFocus();
  67. on_lineEditValidateCode_lostFocus();
  68. if(!ui->lineEditUserID->hasAcceptableInput() ||
  69. !ui->lineEditUserPwd->hasAcceptableInput()||
  70. !ui->lineEditEmail->hasAcceptableInput()||
  71. !ui->lineEditQQ->hasAcceptableInput()||
  72. ui->lineEditUserPwd->text()!=ui->lineEditUserPwd2->text()||
  73. ui->lineEditValidateCode->text()!=m_label->text())
  74. {
  75. return ;
  76. }
  77. if(ui->lineEditUserID->text().contains("admin",Qt::CaseInsensitive)
  78. ||ui->lineEditUserID->text().contains("test",Qt::CaseInsensitive))
  79. return ;
  80. QString userid = ui->lineEditUserID->text();
  81. QString userpws = ui->lineEditUserPwd->text();
  82. QString userqq = ui->lineEditQQ->text();
  83. QString useremail = ui->lineEditEmail->text();
  84. QString src = "mf-"+ SNCDataBase::getAppVersion();
  85. QString username,corpname,userww,userphone,city;
  86. QString authcode;
  87. QByteArray ba;
  88. QString str = userid + SNCDataBase::getAuthCodeSeg()+ src;
  89. ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 );
  90. authcode.append(ba.toHex());
  91. QString apphash = SNCDataBase::getAppHash();
  92. this->ui->labelProgress->setVisible(true);
  93. movie->stop();
  94. movie->start();
  95. WSSSO sso;
  96. QString json = sso.userReg(userid,userpws,username,corpname,userqq,userww,useremail,userphone,city,src,apphash,authcode);
  97. this->ui->labelProgress->setVisible(false);
  98. if(!json.isEmpty()){
  99. RespUserReg response(json);
  100. if(response.getRtnCode()==1)
  101. {
  102. QMessageBox::information(NULL,"极速号码魔方",response.getRtnMemo(),QMessageBox::Ok);
  103. close();
  104. return ;
  105. }
  106. else
  107. QMessageBox::critical(NULL,"极速号码魔方",response.getRtnMemo(),QMessageBox::Ok);
  108. }
  109. else
  110. {
  111. QMessageBox::critical(NULL,"极速号码魔方","网络连接失败!",QMessageBox::Ok);
  112. }
  113. genValidateCode();
  114. }
  115. void DialogRegister::on_lineEditUserID_lostFocus()
  116. {
  117. QLineEdit *lineEdit = ui->lineEditUserID;
  118. if(lineEdit->hasAcceptableInput())
  119. {
  120. if(lineEdit->text().contains("admin",Qt::CaseInsensitive)
  121. ||lineEdit->text().contains("test",Qt::CaseInsensitive))
  122. lineEdit->setStyleSheet(m_styleWrong);
  123. else
  124. lineEdit->setStyleSheet(m_styleRight);
  125. }
  126. else
  127. {
  128. lineEdit->setStyleSheet(m_styleWrong);
  129. }
  130. }
  131. void DialogRegister::on_lineEditUserPwd_lostFocus()
  132. {
  133. QLineEdit *lineEdit = ui->lineEditUserPwd;
  134. if(lineEdit->hasAcceptableInput())
  135. {
  136. lineEdit->setStyleSheet(m_styleRight);
  137. }
  138. else
  139. {
  140. lineEdit->setStyleSheet(m_styleWrong);
  141. }
  142. }
  143. void DialogRegister::on_lineEditUserPwd2_lostFocus()
  144. {
  145. QLineEdit *lineEdit = ui->lineEditUserPwd2;
  146. if(lineEdit->text()==ui->lineEditUserPwd->text()&&ui->lineEditUserPwd->hasAcceptableInput())
  147. {
  148. lineEdit->setStyleSheet(m_styleRight);
  149. }
  150. else
  151. {
  152. lineEdit->setStyleSheet(m_styleWrong);
  153. }
  154. }
  155. void DialogRegister::on_lineEditQQ_lostFocus()
  156. {
  157. QLineEdit *lineEdit = ui->lineEditQQ;
  158. if(lineEdit->hasAcceptableInput())
  159. {
  160. lineEdit->setStyleSheet(m_styleRight);
  161. }
  162. else
  163. {
  164. lineEdit->setStyleSheet(m_styleWrong);
  165. }
  166. }
  167. void DialogRegister::on_lineEditEmail_lostFocus()
  168. {
  169. QLineEdit *lineEdit = ui->lineEditEmail;
  170. if(lineEdit->hasAcceptableInput())
  171. {
  172. lineEdit->setStyleSheet(m_styleRight);
  173. }
  174. else
  175. {
  176. lineEdit->setStyleSheet(m_styleWrong);
  177. }
  178. }
  179. void DialogRegister::on_lineEditValidateCode_lostFocus()
  180. {
  181. QLineEdit *lineEdit = ui->lineEditValidateCode;
  182. if(lineEdit->text()==m_label->text())
  183. {
  184. lineEdit->setStyleSheet(m_styleRight);
  185. }
  186. else
  187. {
  188. lineEdit->setStyleSheet(m_styleWrong);
  189. }
  190. }
  191. void DialogRegister::on_lineEditQQ_textChanged(const QString &arg1)
  192. {
  193. ui->lineEditEmail->setText(ui->lineEditQQ->text()+"@qq.com");
  194. }
  195. void DialogRegister::on_pushButtonRefresh_clicked()
  196. {
  197. m_label->refresh();
  198. }