editcolordialog.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "editcolordialog.h"
  2. #include "ui_editcolordialog.h"
  3. EditColorDialog::EditColorDialog(QWidget *parent) : QDialog(parent), ui(new Ui::EditColorDialog)
  4. {
  5. ui->setupUi(this);
  6. setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
  7. m_colorIndex = -1;
  8. ui->lvRecent->setViewMode(QListWidget::IconMode);
  9. ui->lvData->setViewMode(QListWidget::IconMode);
  10. ColorTable *colorTable = ColorTable::getInstance();
  11. QList<QColor> colors = colorTable->colors();
  12. for (int i = 0; i < colors.count(); i++) {
  13. ColorWidget *w = new ColorWidget(ui->lvData);
  14. w->setColor(colors.at(i));
  15. w->setIndex(i);
  16. connect(w, &ColorWidget::onClick, this, &EditColorDialog::onColorWidgetClick);
  17. QListWidgetItem *item = new QListWidgetItem(ui->lvData);
  18. item->setData(Qt::UserRole, i);
  19. item->setSizeHint(QSize(32, 32));
  20. ui->lvData->addItem(item);
  21. ui->lvData->setItemWidget(item, w);
  22. }
  23. for (int i : ColorTable::colorIndexes) {
  24. ColorWidget *w = new ColorWidget(ui->lvRecent);
  25. w->setColor(colors.at(i));
  26. w->setIndex(i);
  27. connect(w, &ColorWidget::onClick, this, &EditColorDialog::onColorWidgetClick);
  28. QListWidgetItem *item = new QListWidgetItem(ui->lvRecent);
  29. item->setData(Qt::UserRole, i);
  30. item->setSizeHint(QSize(32, 32));
  31. ui->lvRecent->addItem(item);
  32. ui->lvRecent->setItemWidget(item, w);
  33. }
  34. }
  35. EditColorDialog::~EditColorDialog()
  36. {
  37. delete ui;
  38. }
  39. int EditColorDialog::colorIndex()
  40. {
  41. ColorTable::addColorIndex(m_colorIndex);
  42. emit onAddColorIndex(m_colorIndex);
  43. return m_colorIndex;
  44. }
  45. void EditColorDialog::on_btnCancel_clicked()
  46. {
  47. reject();
  48. }
  49. void EditColorDialog::on_btnOk_clicked()
  50. {
  51. accept();
  52. }
  53. void EditColorDialog::onColorWidgetClick(int index, QColor color)
  54. {
  55. m_colorIndex = index;
  56. }