taskcreator.cpp 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #include "taskcreator.h"
  2. #include "ui_taskcreator.h"
  3. #include "QRandomGenerator"
  4. #include "QMessageBox"
  5. TaskCreator::TaskCreator(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::TaskCreator)
  8. {
  9. ui->setupUi(this);
  10. connect(&colorSelector, &QColorDialog::colorSelected, this, &TaskCreator::on_userSelectColor);
  11. }
  12. TaskCreator::~TaskCreator()
  13. { delete ui; }
  14. void TaskCreator::setTaskCreation(bool status, const QVector<Group*> *groups){
  15. isTaskCreating = status;
  16. this->groups = groups;
  17. ui->nameLineEdit->clear();
  18. if(status){//добавление задания
  19. ui->colorGroup->hide();
  20. ui->groupCB->clear();//В списке могут быть удалённые задания
  21. for(auto &group : *groups)
  22. ui->groupCB->addItem(*group->name);
  23. ui->taskCount->show();
  24. ui->groupTimerGroup->show();
  25. }
  26. else{//добавленеи группы
  27. ui->colorGroup->show();
  28. ui->taskCount->hide();
  29. ui->groupTimerGroup->hide();
  30. }
  31. ui->nameLineEdit->setFocus();
  32. }
  33. void TaskCreator::on_addTaskBtn_clicked(){
  34. QString name = ui->nameLineEdit->text();
  35. if(name.length() == 0)
  36. {
  37. ui->nameLineEdit->setFocus();
  38. return;
  39. }
  40. if(isTaskCreating){
  41. int groupId = -1;
  42. for(auto &group : *groups){
  43. if(group->name == ui->groupCB->currentText()){
  44. groupId = group->id;
  45. break;
  46. }
  47. }
  48. int taskCount = ui->taskCount->value();
  49. int timer = ui->timerEdit->value();
  50. emit sendTaskToParent(&name, groupId, timer, taskCount);
  51. ui->timerEdit->setValue(1);
  52. ui->taskCount->setValue(1);
  53. ui->groupCB->setCurrentIndex(0);
  54. }
  55. else{
  56. emit sendGroupToParent(&name, &groupColor);
  57. }
  58. ui->nameLineEdit->clear();
  59. hide();
  60. }
  61. void TaskCreator::on_exitTaskBtn_clicked()
  62. { hide(); }
  63. void TaskCreator::on_changeColorBtn_clicked(){
  64. QColor randColor = QColor::fromRgb(QRandomGenerator::global()->generate());
  65. colorSelector.setCurrentColor(randColor);
  66. colorSelector.show();
  67. }
  68. void TaskCreator::on_userSelectColor(const QColor &color){
  69. QPalette pal = palette();
  70. pal.setColor(QPalette::Background, color);
  71. ui->colorWgt->setAutoFillBackground(true);
  72. ui->colorWgt->setPalette(pal);
  73. groupColor = color;
  74. }