tableinsertdialog.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #include "tableinsertdialog.h"
  2. #include <QSpinBox>
  3. #include <QRadioButton>
  4. #include <QGridLayout>
  5. #include <QHBoxLayout>
  6. #include <QLabel>
  7. #include <QButtonGroup>
  8. #include <widgets/widgetsfactory.h>
  9. using namespace vnotex;
  10. TableInsertDialog::TableInsertDialog(const QString &p_title, QWidget *p_parent)
  11. : ScrollDialog(p_parent)
  12. {
  13. setupUI(p_title);
  14. }
  15. void TableInsertDialog::setupUI(const QString &p_title)
  16. {
  17. auto mainWidget = new QWidget(this);
  18. setCentralWidget(mainWidget);
  19. auto mainLayout = new QGridLayout(mainWidget);
  20. m_rowCountSpinBox = WidgetsFactory::createSpinBox(mainWidget);
  21. m_rowCountSpinBox->setToolTip(tr("Row count of the table body"));
  22. m_rowCountSpinBox->setMaximum(1000);
  23. m_rowCountSpinBox->setMinimum(0);
  24. mainLayout->addWidget(new QLabel(tr("Row:")), 0, 0, 1, 1);
  25. mainLayout->addWidget(m_rowCountSpinBox, 0, 1, 1, 1);
  26. m_colCountSpinBox = WidgetsFactory::createSpinBox(mainWidget);
  27. m_colCountSpinBox->setToolTip(tr("Column count of the table"));
  28. m_colCountSpinBox->setMaximum(1000);
  29. m_colCountSpinBox->setMinimum(1);
  30. mainLayout->addWidget(new QLabel(tr("Column:")), 0, 2, 1, 1);
  31. mainLayout->addWidget(m_colCountSpinBox, 0, 3, 1, 1);
  32. {
  33. auto noneBtn = new QRadioButton(tr("None"), mainWidget);
  34. auto leftBtn = new QRadioButton(tr("Left"), mainWidget);
  35. auto centerBtn = new QRadioButton(tr("Center"), mainWidget);
  36. auto rightBtn = new QRadioButton(tr("Right"), mainWidget);
  37. auto alignLayout = new QHBoxLayout();
  38. alignLayout->addWidget(noneBtn);
  39. alignLayout->addWidget(leftBtn);
  40. alignLayout->addWidget(centerBtn);
  41. alignLayout->addWidget(rightBtn);
  42. alignLayout->addStretch();
  43. mainLayout->addWidget(new QLabel(tr("Alignment:")), 1, 0, 1, 1);
  44. mainLayout->addLayout(alignLayout, 1, 1, 1, 3);
  45. auto buttonGroup = new QButtonGroup(mainWidget);
  46. buttonGroup->addButton(noneBtn, static_cast<int>(Alignment::None));
  47. buttonGroup->addButton(leftBtn, static_cast<int>(Alignment::Left));
  48. buttonGroup->addButton(centerBtn, static_cast<int>(Alignment::Center));
  49. buttonGroup->addButton(rightBtn, static_cast<int>(Alignment::Right));
  50. noneBtn->setChecked(true);
  51. connect(buttonGroup, (void(QButtonGroup::*)(int, bool))(&QButtonGroup::buttonToggled),
  52. this, [this](int p_id, bool p_checked){
  53. if (p_checked) {
  54. m_alignment = static_cast<Alignment>(p_id);
  55. }
  56. });
  57. }
  58. setDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
  59. setWindowTitle(p_title);
  60. }
  61. int TableInsertDialog::getRowCount() const
  62. {
  63. return m_rowCountSpinBox->value();
  64. }
  65. int TableInsertDialog::getColumnCount() const
  66. {
  67. return m_colCountSpinBox->value();
  68. }
  69. Alignment TableInsertDialog::getAlignment() const
  70. {
  71. return m_alignment;
  72. }