generalpane.cpp 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "generalpane.h"
  2. void GeneralPane::setPaneContents() {
  3. mContentsWidget = new QWidget();
  4. QVBoxLayout* contentsLayout = new QVBoxLayout(mContentsWidget);
  5. mContentsWidget->setObjectName("innerPane");
  6. // Adding widgets
  7. QCheckBox* enableAnimationCheckBox = new QCheckBox("Enable Animation");
  8. enableAnimationCheckBox->setFont(mFont);
  9. contentsLayout->addWidget(enableAnimationCheckBox);
  10. QVBoxLayout* triangularTabsLayout = new QVBoxLayout();
  11. QCheckBox* useTriangularTabsCheckBox = new QCheckBox("Use Triangular Tabs");
  12. useTriangularTabsCheckBox->setFont(mFont);
  13. triangularTabsLayout->addWidget(useTriangularTabsCheckBox);
  14. QLabel* samplePictureLabel = new QLabel();
  15. triangularTabsLayout->addWidget(samplePictureLabel);
  16. contentsLayout->addLayout(triangularTabsLayout);
  17. contentsLayout->addSpacerItem(new QSpacerItem(0, 0,
  18. QSizePolicy::Ignored,
  19. QSizePolicy::MinimumExpanding));
  20. QPushButton* saveButton = new QPushButton(tr("Save settings"));
  21. saveButton->setFont(mFont);
  22. contentsLayout->addWidget(saveButton);
  23. saveButton->setVisible(false);
  24. // Setting current settings
  25. enableAnimationCheckBox->setChecked(getConfigValue("enableAnimation").toBool());
  26. useTriangularTabsCheckBox->setChecked(getConfigValue("useTriangularTabs").toBool());
  27. if (useTriangularTabsCheckBox->isChecked()) {
  28. samplePictureLabel->setPixmap(QPixmap("/usr/share/plainDE/triangular-tabs.png"));
  29. }
  30. else {
  31. samplePictureLabel->setPixmap(QPixmap("/usr/share/plainDE/flat-tabs.png"));
  32. }
  33. // Making connections
  34. connect(enableAnimationCheckBox, &QCheckBox::stateChanged, saveButton, &QPushButton::show);
  35. connect(useTriangularTabsCheckBox, &QCheckBox::stateChanged, this, [this, saveButton,
  36. useTriangularTabsCheckBox,
  37. samplePictureLabel]() {
  38. saveButton->setVisible(true);
  39. if (useTriangularTabsCheckBox->isChecked()) {
  40. samplePictureLabel->setPixmap(QPixmap("/usr/share/plainDE/triangular-tabs.png"));
  41. }
  42. else {
  43. samplePictureLabel->setPixmap(QPixmap("/usr/share/plainDE/flat-tabs.png"));
  44. }
  45. });
  46. connect(saveButton, &QPushButton::clicked, this, [this,
  47. enableAnimationCheckBox,
  48. useTriangularTabsCheckBox,
  49. saveButton]() {
  50. prepareToSave(enableAnimationCheckBox,
  51. useTriangularTabsCheckBox);
  52. saveConfig();
  53. saveButton->setVisible(false);
  54. });
  55. finalizeUI();
  56. }
  57. void GeneralPane::prepareToSave(QCheckBox* enableAnimationCheckBox,
  58. QCheckBox* useTriangularTabsCheckBox) {
  59. setEntry("enableAnimation", QJsonValue(enableAnimationCheckBox->isChecked()));
  60. setEntry("useTriangularTabs", QJsonValue(useTriangularTabsCheckBox->isChecked()));
  61. }
  62. GeneralPane::GeneralPane(QJsonObject* cfgObj) : Pane(nullptr,
  63. cfgObj,
  64. tr("General"),
  65. "cs-general") {
  66. }