modelselectform.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. #include "modelselectform.h"
  2. #include "ui_modelselectform.h"
  3. #include "QDebug"
  4. ModelSelectForm::ModelSelectForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::ModelSelectForm)
  7. {
  8. ui->setupUi(this);
  9. connect(glo,&GlobalInfo::boxModelUped,this,&ModelSelectForm::changeToSelectBoxWidget);
  10. connect(glo,&GlobalInfo::packModelUpde,this,&ModelSelectForm::changeToSelectPackWidget);
  11. // changeToSelectWidget();
  12. }
  13. ModelSelectForm::~ModelSelectForm()
  14. {
  15. delete ui;
  16. }
  17. void ModelSelectForm::changeStackedWidget(int status)
  18. {
  19. if(status == 1){
  20. changeToSelectBoxWidget();
  21. ui->stackedWidget->setCurrentWidget(ui->pageXiangDan);
  22. }else if(status == 2){
  23. changeToSelectPackWidget();
  24. ui->stackedWidget->setCurrentWidget(ui->pageMaDan);
  25. }
  26. }
  27. void ModelSelectForm::changeToSelectBoxWidget()
  28. {
  29. boxModelList = glo->BoxModelList();
  30. // qDebug()<<"size:"<<boxModelList.size();
  31. // for(int i = 0;i<boxModelList.size();i++){
  32. // qDebug()<<boxModelList.at(i)->toObject();
  33. // }
  34. ui->boxModelSelectWidget->clear();
  35. selectBoxModelFoName("基础模板1");
  36. }
  37. void ModelSelectForm::changeToSelectPackWidget()
  38. {
  39. packModelList = glo->PackModelList();
  40. ui->packModelSelectWidget->clear();
  41. selectPackModelFoName("基础模板1");
  42. }
  43. void ModelSelectForm::selectBoxModelFoName(QString baseModelName)
  44. {
  45. auto item = new QTreeWidgetItem(QStringList()<<baseModelName);
  46. QWidget *tmp_widget = new QWidget();
  47. tmp_widget->setMaximumWidth(200);
  48. QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
  49. auto addNew = new QPushButton("新建",tmp_widget);
  50. addNew->setMaximumWidth(40);
  51. auto modelView = new QPushButton("查看",tmp_widget);
  52. modelView->setMaximumWidth(40);
  53. tmp_layout->addWidget(addNew);
  54. tmp_layout->addWidget(modelView);
  55. tmp_layout->setSpacing(0);
  56. tmp_layout->setMargin(0);
  57. connect(addNew,&QPushButton::clicked,[baseModelName,this](){this->addNewBoxModel(baseModelName);});
  58. connect(modelView,&QPushButton::clicked,[baseModelName,this](){this->boxModelView(baseModelName);});
  59. ui->boxModelSelectWidget->addTopLevelItem(item);
  60. ui->boxModelSelectWidget->setItemWidget(item,1,tmp_widget);
  61. QStringList modelName;
  62. for(int i = 0;i<boxModelList.size();i++){
  63. if(boxModelList.at(i)->baseModel_Name!=baseModelName){
  64. continue;
  65. }
  66. modelName.append(boxModelList.at(i)->Model_Name);
  67. }
  68. for(int i = 0;i<modelName.size();i++){
  69. QWidget *tep_widget = new QWidget();
  70. tep_widget->setMaximumWidth(200);
  71. QHBoxLayout *tep_layout = new QHBoxLayout(tep_widget);
  72. QPushButton *edit = new QPushButton("编辑");
  73. edit->setMaximumWidth(40);
  74. QPushButton *del = new QPushButton("删除");
  75. del->setMaximumWidth(40);
  76. tep_layout->addWidget(edit);
  77. tep_layout->addWidget(del);
  78. tep_layout->setSpacing(0);
  79. tep_layout->setMargin(0);
  80. QTreeWidgetItem *childitem = new QTreeWidgetItem(QStringList()<<modelName.at(i));
  81. item->addChild(childitem);
  82. ui->boxModelSelectWidget->setItemWidget(childitem,1,tep_widget);
  83. QString ModelName = modelName.at(i);
  84. connect(edit,&QPushButton::clicked,[baseModelName,ModelName,this](){this->editBoxModel(baseModelName,ModelName);});
  85. connect(del,&QPushButton::clicked,[ModelName,this](){this->delBoxModel(ModelName);});
  86. }
  87. }
  88. void ModelSelectForm::on_backButton_clicked()
  89. {
  90. emit back();
  91. }
  92. void ModelSelectForm::addNewBoxModel(QString baseModelName)
  93. {
  94. if(baseModelName == "基础模板1"){
  95. emit addBoxModel(baseModelName,1);
  96. }
  97. }
  98. void ModelSelectForm::boxModelView(QString baseModelName)
  99. {
  100. emit showBaseBoxModel(baseModelName,2);
  101. }
  102. void ModelSelectForm::editBoxModel(QString baseModelName,QString modelName)
  103. {
  104. emit editBoxModeled(baseModelName,3,modelName);
  105. }
  106. void ModelSelectForm::delBoxModel(QString ModelName)
  107. {
  108. _dataDir = PQ::AppPath::this_()->dataDir();
  109. if(!_dataDir.exists("BoxModel")){
  110. _dataDir.mkdir("BoxModel");
  111. }
  112. _dataDir.cd("BoxModel");
  113. QString fileName = ModelName+"_Model.json";
  114. if(_dataDir.remove(fileName)){
  115. QMessageBox::information(this,tr("提示"),tr("删除成功"));
  116. glo->selectBoxModel();
  117. }
  118. }
  119. //以下是码单
  120. void ModelSelectForm::selectPackModelFoName(QString baseModelName)
  121. {
  122. auto item = new QTreeWidgetItem(QStringList()<<baseModelName);
  123. QWidget *tmp_widget = new QWidget();
  124. tmp_widget->setMaximumWidth(200);
  125. QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
  126. auto addNew = new QPushButton("新建",tmp_widget);
  127. addNew->setMaximumWidth(40);
  128. auto modelView = new QPushButton("查看",tmp_widget);
  129. modelView->setMaximumWidth(40);
  130. tmp_layout->addWidget(addNew);
  131. tmp_layout->addWidget(modelView);
  132. tmp_layout->setSpacing(0);
  133. tmp_layout->setMargin(0);
  134. connect(addNew,&QPushButton::clicked,[baseModelName,this](){this->addNewPackModel(baseModelName);});
  135. connect(modelView,&QPushButton::clicked,[baseModelName,this](){this->packModelView(baseModelName);});
  136. ui->packModelSelectWidget->addTopLevelItem(item);
  137. ui->packModelSelectWidget->setItemWidget(item,1,tmp_widget);
  138. QStringList modelName;
  139. for(int i = 0;i<packModelList.size();i++){
  140. if(packModelList.at(i)->BaseModel_Name!=baseModelName){
  141. continue;
  142. }
  143. modelName.append(packModelList.at(i)->Model_Name);
  144. }
  145. for(int i = 0;i<modelName.size();i++){
  146. QWidget *tep_widget = new QWidget();
  147. tep_widget->setMaximumWidth(200);
  148. QHBoxLayout *tep_layout = new QHBoxLayout(tep_widget);
  149. QPushButton *edit = new QPushButton("编辑");
  150. edit->setMaximumWidth(40);
  151. QPushButton *del = new QPushButton("删除");
  152. del->setMaximumWidth(40);
  153. tep_layout->addWidget(edit);
  154. tep_layout->addWidget(del);
  155. tep_layout->setSpacing(0);
  156. tep_layout->setMargin(0);
  157. QTreeWidgetItem *childitem = new QTreeWidgetItem(QStringList()<<modelName.at(i));
  158. item->addChild(childitem);
  159. ui->packModelSelectWidget->setItemWidget(childitem,1,tep_widget);
  160. QString ModelName = modelName.at(i);
  161. connect(edit,&QPushButton::clicked,[baseModelName,ModelName,this](){this->editPackModel(baseModelName,ModelName);});
  162. connect(del,&QPushButton::clicked,[ModelName,this](){this->delPackModel(ModelName);});
  163. }
  164. }
  165. void ModelSelectForm::on_backButton_2_clicked()
  166. {
  167. emit back();
  168. }
  169. void ModelSelectForm::addNewPackModel(QString baseModelName)
  170. {
  171. if(baseModelName == "基础模板1"){
  172. emit addPackModel(baseModelName,1);
  173. }
  174. }
  175. void ModelSelectForm::packModelView(QString baseModelName)
  176. {
  177. emit showBasePackModel(baseModelName,2);
  178. }
  179. void ModelSelectForm::editPackModel(QString baseModelName , QString ModelName)
  180. {
  181. emit editPackModeled(baseModelName,3,ModelName);
  182. }
  183. void ModelSelectForm::delPackModel(QString ModelName)
  184. {
  185. _dataDir = PQ::AppPath::this_()->dataDir();
  186. if(!_dataDir.exists("PackModel")){
  187. _dataDir.mkdir("PackModel");
  188. }
  189. _dataDir.cd("PackModel");
  190. QString fileName = ModelName+"_Model.json";
  191. if(_dataDir.remove(fileName)){
  192. QMessageBox::information(this,tr("提示"),tr("删除成功"));
  193. glo->selectPackModel();
  194. }
  195. }