savetotemplate.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #include "savetotemplate.h"
  2. #include "ui_savetotemplate.h"
  3. #include <QStyle>
  4. #include <QFile>
  5. #include <QPainter>
  6. #include "lhstylemanager.h"
  7. #include "LHQLogAPI.h"
  8. #include "oneshadow.h"
  9. SaveToTemplate::SaveToTemplate(QWidget *parent) :
  10. QDialog(parent),
  11. ui(new Ui::SaveToTemplate)
  12. {
  13. ui->setupUi(this);
  14. /* 设置隐藏边框 */
  15. this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
  16. /* 设置底层样式表 */
  17. this->setAttribute(Qt::WA_TranslucentBackground);
  18. /* 加载样式表 */
  19. // QFile file(":/QSS/QSS/savetotemplate_light.qss");
  20. // if(file.open(QFile::ReadOnly))
  21. // {
  22. // QString styleSheet = file.readAll();
  23. // this->setStyleSheet(styleSheet);
  24. // file.close();
  25. // }
  26. setQSS();
  27. /* 创建阴影,这里大小使用最外面的大小减去阴影宽度 */
  28. QSize size = this->size();
  29. size.setWidth(size.width() - 32);
  30. size.setHeight(size.height() - 32);
  31. m_shadow = new OneShadow(size, 16);
  32. m_templateNameList.clear();
  33. ui->label_warn->hide();
  34. /* 限制字数类型 */
  35. ui->lineEdit->setMaxLength(15);
  36. connect(ui->pBtn_close,SIGNAL(clicked()),this,SLOT(close()));
  37. connect(ui->pBtn_cancel,SIGNAL(clicked()),this,SLOT(close()));
  38. connect(ui->pBtn_ok,SIGNAL(clicked()),this,SLOT(do_ok()));
  39. }
  40. SaveToTemplate::~SaveToTemplate()
  41. {
  42. delete ui;
  43. }
  44. /* 设置周几 */
  45. void SaveToTemplate::setWeekDay(int weekDay)
  46. {
  47. m_weekDay = weekDay;
  48. }
  49. /* 传入计划项是否为空 */
  50. void SaveToTemplate::setItemEmpty(bool flag)
  51. {
  52. m_itemEmpty = flag;
  53. }
  54. /* 传入所有的模板名称 */
  55. void SaveToTemplate::setTemplateName(const QStringList &list)
  56. {
  57. m_templateNameList = list;
  58. }
  59. /* 获取模板名称 */
  60. QString SaveToTemplate::getTemplateName()
  61. {
  62. return m_templateName;
  63. }
  64. /* 设置QSS */
  65. void SaveToTemplate::setQSS()
  66. {
  67. auto appPath = QApplication::applicationDirPath();
  68. QString qssPath;
  69. if(LHStyleManager::Instance()->GetCurSkinStyle() == eWhiteStyle)
  70. {
  71. qssPath = appPath + "/white/savetotemplate.qss";
  72. }else if(LHStyleManager::Instance()->GetCurSkinStyle() == eBlackStyle)
  73. {
  74. qssPath = appPath + "/black/savetotemplate.qss";
  75. }
  76. QFile file(qssPath);
  77. if(file.open(QIODevice::ReadOnly))
  78. {
  79. QString stylesheet = file.readAll();
  80. this->setStyleSheet(stylesheet);
  81. file.close();
  82. } else
  83. {
  84. LH_WRITE_ERROR(QString("打开文件失败:%1").arg(file.fileName()));
  85. }
  86. }
  87. void SaveToTemplate::do_ok()
  88. {
  89. m_isOk = false;
  90. m_templateName.clear();
  91. ui->label_warn->hide();
  92. setWarning(false);
  93. /* 检查这一页的项是否为空 */
  94. if(m_itemEmpty)
  95. {
  96. ui->label_warn->setText("当前页没有计划项!");
  97. ui->label_warn->show();
  98. setWarning(true);
  99. return;
  100. }
  101. /* 检查名称是否是空的 */
  102. m_templateName = ui->lineEdit->text();
  103. if(m_templateName.isEmpty())
  104. {
  105. ui->label_warn->setText("请输入模版名称!");
  106. ui->label_warn->show();
  107. setWarning(true);
  108. return;
  109. }
  110. /* 检查模板名称是否重复 */
  111. bool flag = false;
  112. for(const auto& it : m_templateNameList)
  113. {
  114. if(it == m_templateName)
  115. {
  116. flag = true;
  117. break;
  118. }
  119. }
  120. if(flag)
  121. {
  122. ui->label_warn->setText("模版名称重复!");
  123. ui->label_warn->show();
  124. setWarning(true);
  125. return;
  126. }
  127. m_isOk = true;
  128. emit signal_templateName(m_templateName);
  129. this->close();
  130. }
  131. /* 设置报警 */
  132. void SaveToTemplate::setWarning(bool flag)
  133. {
  134. if(flag)
  135. {
  136. ui->lineEdit->setProperty("Warn", true);
  137. }else
  138. {
  139. ui->lineEdit->setProperty("Warn", false);
  140. }
  141. ui->lineEdit->style()->unpolish(ui->lineEdit);
  142. ui->lineEdit->style()->polish(ui->lineEdit);
  143. }
  144. /* 绘画事件 */
  145. void SaveToTemplate::paintEvent(QPaintEvent *event)
  146. {
  147. QPainter painter(this);
  148. painter.setRenderHint(QPainter::Antialiasing);
  149. painter.drawImage(QPoint(0, 0), m_shadow->image());
  150. }