/src/dialog/preferences/exitpreferences.cpp

https://github.com/robert7/nixnote2 · C++ · 249 lines · 180 code · 50 blank · 19 comment · 12 complexity · c1f0ec9bc3766671c66d51ffd0159fd8 MD5 · raw file

  1. /*********************************************************************************
  2. NixNote - An open-source client for the Evernote service.
  3. Copyright (C) 2017 Randy Baumgarte
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software
  14. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  15. ***********************************************************************************/
  16. #include <QFrame>
  17. #include <QSpacerItem>
  18. #include <QDesktopServices>
  19. #include "exitpreferences.h"
  20. #include "src/global.h"
  21. extern Global global;
  22. ExitPreferences::ExitPreferences(QWidget *parent) : QWidget(parent) {
  23. this->setFont(global.getGuiFont(font()));
  24. loadExitFile = new QLineEdit();
  25. loadExitButton = new QPushButton();
  26. loadExitButton->setText("...");
  27. loadExitFileLabel = new QLabel();
  28. loadExitFileLabel->setText(tr("Note Load Exit"));
  29. connect(loadExitButton, SIGNAL(clicked(bool)), this, SLOT(loadExitButtonPressed(bool)));
  30. loadExitEnabledCombo = new QComboBox();
  31. loadExitEnabledCombo->addItem(tr("Enabled"), true);
  32. loadExitEnabledCombo->addItem(tr("Disabled"), false);
  33. saveExitFile = new QLineEdit();
  34. saveExitButton = new QPushButton();
  35. saveExitButton->setText("...");
  36. saveExitFileLabel = new QLabel();
  37. saveExitFileLabel->setText(tr("Note Save Exit"));
  38. connect(saveExitButton, SIGNAL(clicked(bool)), this, SLOT(saveExitButtonPressed(bool)));
  39. saveExitEnabledCombo = new QComboBox();
  40. saveExitEnabledCombo->addItem(tr("Enabled"), true);
  41. saveExitEnabledCombo->addItem(tr("Disabled"), false);
  42. importKeepFile = new QLineEdit();
  43. importKeepButton = new QPushButton();
  44. importKeepButton->setText("...");
  45. importKeepFileLabel = new QLabel();
  46. importKeepFileLabel->setText(tr("Import Keep Exit"));
  47. connect(importKeepButton, SIGNAL(clicked(bool)), this, SLOT(importKeepExitButtonPressed(bool)));
  48. importKeepEnabledCombo = new QComboBox();
  49. importKeepEnabledCombo->addItem(tr("Enabled"), true);
  50. importKeepEnabledCombo->addItem(tr("Disabled"), false);
  51. importDeleteFile = new QLineEdit();
  52. importDeleteButton = new QPushButton();
  53. importDeleteButton->setText("...");
  54. importDeleteFileLabel = new QLabel();
  55. importDeleteFileLabel->setText(tr("Import Delete Exit"));
  56. connect(importDeleteButton, SIGNAL(clicked(bool)), this, SLOT(importDeleteExitButtonPressed(bool)));
  57. importDeleteEnabledCombo = new QComboBox();
  58. importDeleteEnabledCombo->addItem(tr("Enabled"), true);
  59. importDeleteEnabledCombo->addItem(tr("Disabled"), false);
  60. QVBoxLayout *mainLayout = new QVBoxLayout(this);
  61. mainLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
  62. int row = 0;
  63. QGridLayout *loadLayout = new QGridLayout();
  64. mainLayout->addLayout(loadLayout);
  65. loadLayout->addWidget(loadExitFileLabel, row, 0);
  66. loadLayout->addWidget(loadExitFile, row, 1);
  67. loadLayout->addWidget(loadExitButton, row, 2);
  68. loadLayout->addWidget(loadExitEnabledCombo, row++, 3);
  69. QGridLayout *saveLayout = new QGridLayout();
  70. mainLayout->addLayout(saveLayout);
  71. saveLayout->addWidget(saveExitFileLabel, row, 0);
  72. saveLayout->addWidget(saveExitFile, row, 1);
  73. saveLayout->addWidget(saveExitButton, row, 2);
  74. saveLayout->addWidget(saveExitEnabledCombo, row++, 3);
  75. QGridLayout *importKeepLayout = new QGridLayout();
  76. mainLayout->addLayout(importKeepLayout);
  77. saveLayout->addWidget(importKeepFileLabel, row, 0);
  78. saveLayout->addWidget(importKeepFile, row, 1);
  79. saveLayout->addWidget(importKeepButton, row, 2);
  80. saveLayout->addWidget(importKeepEnabledCombo, row++, 3);
  81. QGridLayout *importDeleteLayout = new QGridLayout();
  82. mainLayout->addLayout(importDeleteLayout);
  83. saveLayout->addWidget(importDeleteFileLabel, row, 0);
  84. saveLayout->addWidget(importDeleteFile, row, 1);
  85. saveLayout->addWidget(importDeleteButton, row, 2);
  86. saveLayout->addWidget(importDeleteEnabledCombo, row++, 3);
  87. QPushButton *infoButton = new QPushButton(tr("More Info"));
  88. connect(infoButton, SIGNAL(pressed()), this, SLOT(showInfo()));
  89. QGridLayout *buttonLayout = new QGridLayout();
  90. mainLayout->addLayout(buttonLayout);
  91. buttonLayout->addWidget(infoButton);
  92. loadValues();
  93. }
  94. void ExitPreferences::showInfo() {
  95. QDesktopServices::openUrl(QUrl(NN_GITHUB_WIKI_URL "/Scripting-(Exits)"));
  96. }
  97. void ExitPreferences::loadExitButtonPressed(bool value) {
  98. Q_UNUSED(value);
  99. QFileDialog f;
  100. loadExitFile->setText(f.getOpenFileName(this, tr("Select Exit File")));
  101. }
  102. void ExitPreferences::saveExitButtonPressed(bool value) {
  103. Q_UNUSED(value);
  104. QFileDialog f;
  105. saveExitFile->setText(f.getOpenFileName(this, tr("Select Exit File")));
  106. }
  107. void ExitPreferences::importDeleteExitButtonPressed(bool value) {
  108. Q_UNUSED(value);
  109. QFileDialog f;
  110. importDeleteFile->setText(f.getOpenFileName(this, tr("Select Exit File")));
  111. }
  112. void ExitPreferences::importKeepExitButtonPressed(bool value) {
  113. Q_UNUSED(value);
  114. QFileDialog f;
  115. importKeepFile->setText(f.getOpenFileName(this, tr("Select Exit File")));
  116. }
  117. void ExitPreferences::saveValues() {
  118. global.settings->beginGroup("ExitPoint_LoadNote");
  119. int idx = loadExitEnabledCombo->currentIndex();
  120. if (idx == 0)
  121. global.settings->setValue("enabled", true);
  122. else
  123. global.settings->setValue("enabled", false);
  124. global.settings->setValue("script", loadExitFile->text());
  125. global.settings->setValue("version", "1");
  126. global.settings->endGroup();
  127. global.settings->beginGroup("ExitPoint_SaveNote");
  128. idx = saveExitEnabledCombo->currentIndex();
  129. if (idx == 0)
  130. global.settings->setValue("enabled", true);
  131. else
  132. global.settings->setValue("enabled", false);
  133. global.settings->setValue("script", saveExitFile->text());
  134. global.settings->setValue("version", "1");
  135. global.settings->endGroup();
  136. global.settings->beginGroup("ExitPoint_ImportDelete");
  137. idx = importDeleteEnabledCombo->currentIndex();
  138. if (idx == 0)
  139. global.settings->setValue("enabled", true);
  140. else
  141. global.settings->setValue("enabled", false);
  142. global.settings->setValue("script", importDeleteFile->text());
  143. global.settings->setValue("version", "1");
  144. global.settings->endGroup();
  145. global.settings->beginGroup("ExitPoint_ImportKeep");
  146. idx = importKeepEnabledCombo->currentIndex();
  147. if (idx == 0)
  148. global.settings->setValue("enabled", true);
  149. else
  150. global.settings->setValue("enabled", false);
  151. global.settings->setValue("script", importKeepFile->text());
  152. global.settings->setValue("version", "1");
  153. global.settings->endGroup();
  154. // Reload exits
  155. global.exitManager->loadExits();
  156. }
  157. void ExitPreferences::loadValues() {
  158. QString file = "";
  159. bool enabled = false;
  160. global.settings->beginGroup("ExitPoint_LoadNote");
  161. enabled = global.settings->value("enabled", false).toBool();
  162. file = global.settings->value("script", "").toString();
  163. if (enabled)
  164. loadExitEnabledCombo->setCurrentIndex(0);
  165. else
  166. loadExitEnabledCombo->setCurrentIndex(1);
  167. loadExitFile->setText(file);
  168. global.settings->endGroup();
  169. global.settings->beginGroup("ExitPoint_SaveNote");
  170. enabled = global.settings->value("enabled", false).toBool();
  171. file = global.settings->value("script", "").toString();
  172. if (enabled)
  173. saveExitEnabledCombo->setCurrentIndex(0);
  174. else
  175. saveExitEnabledCombo->setCurrentIndex(1);
  176. saveExitFile->setText(file);
  177. global.settings->endGroup();
  178. global.settings->beginGroup("ExitPoint_ImportDelete");
  179. enabled = global.settings->value("enabled", false).toBool();
  180. file = global.settings->value("script", "").toString();
  181. if (enabled)
  182. importDeleteEnabledCombo->setCurrentIndex(0);
  183. else
  184. importDeleteEnabledCombo->setCurrentIndex(1);
  185. importDeleteFile->setText(file);
  186. global.settings->endGroup();
  187. global.settings->beginGroup("ExitPoint_ImportKeep");
  188. enabled = global.settings->value("enabled", false).toBool();
  189. file = global.settings->value("script", "").toString();
  190. if (enabled)
  191. importKeepEnabledCombo->setCurrentIndex(0);
  192. else
  193. importKeepEnabledCombo->setCurrentIndex(1);
  194. importKeepFile->setText(file);
  195. global.settings->endGroup();
  196. }