| 48 | #include <QWidget> |
| 49 | |
| 50 | SettingsDialog::SettingsDialog(ApplicationList *list, |
| 51 | TranslationHandler *translator, |
| 52 | bool premium, |
| 53 | QWidget *parent) : |
| 54 | QDialog(parent), |
| 55 | mApplications(list), |
| 56 | mTempApplications(new ApplicationList(this)), |
| 57 | mTranslator(translator), |
| 58 | mUI(new Ui::Settings), |
| 59 | mPremium(premium) |
| 60 | { |
| 61 | mUI->setupUi(this); |
| 62 | mUI->mPythonPathWarning->setStyleSheet("color: red"); |
| 63 | QSettings settings; |
| 64 | mTempApplications->copy(list); |
| 65 | |
| 66 | int maxjobs = QThread::idealThreadCount(); |
| 67 | |
| 68 | mUI->mJobs->setText(settings.value(SETTINGS_CHECK_THREADS, 1).toString()); |
| 69 | mUI->mJobs->setValidator(new QIntValidator(1, maxjobs, this)); |
| 70 | mUI->mForce->setCheckState(boolToCheckState(settings.value(SETTINGS_CHECK_FORCE, false).toBool())); |
| 71 | mUI->mShowFullPath->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_FULL_PATH, false).toBool())); |
| 72 | mUI->mShowNoErrorsMessage->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_NO_ERRORS, false).toBool())); |
| 73 | mUI->mShowDebugWarnings->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_DEBUG_WARNINGS, false).toBool())); |
| 74 | mUI->mSaveAllErrors->setCheckState(boolToCheckState(settings.value(SETTINGS_SAVE_ALL_ERRORS, false).toBool())); |
| 75 | mUI->mSaveFullPath->setCheckState(boolToCheckState(settings.value(SETTINGS_SAVE_FULL_PATH, false).toBool())); |
| 76 | mUI->mInlineSuppressions->setCheckState(boolToCheckState(settings.value(SETTINGS_INLINE_SUPPRESSIONS, false).toBool())); |
| 77 | mUI->mEnableInconclusive->setCheckState(boolToCheckState(settings.value(SETTINGS_INCONCLUSIVE_ERRORS, false).toBool())); |
| 78 | mUI->mShowStatistics->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_STATISTICS, false).toBool())); |
| 79 | mUI->mShowErrorId->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_ERROR_ID, true).toBool())); |
| 80 | mUI->mCheckForUpdates->setCheckState(boolToCheckState(settings.value(SETTINGS_CHECK_FOR_UPDATES, false).toBool())); |
| 81 | mUI->mEditPythonPath->setText(settings.value(SETTINGS_PYTHON_PATH, QString()).toString()); |
| 82 | validateEditPythonPath(); |
| 83 | if (premium) |
| 84 | mUI->mGroupBoxMisra->setVisible(false); |
| 85 | mUI->mEditMisraFile->setText(settings.value(SETTINGS_MISRA_FILE, QString()).toString()); |
| 86 | |
| 87 | #ifdef Q_OS_WIN |
| 88 | //mUI->mTabClang->setVisible(true); |
| 89 | mUI->mEditClangPath->setText(settings.value(SETTINGS_CLANG_PATH, QString()).toString()); |
| 90 | mUI->mEditVsIncludePaths->setText(settings.value(SETTINGS_VS_INCLUDE_PATHS, QString()).toString()); |
| 91 | connect(mUI->mBtnBrowseClangPath, &QPushButton::released, this, &SettingsDialog::browseClangPath); |
| 92 | #else |
| 93 | mUI->mTabClang->setVisible(false); |
| 94 | #endif |
| 95 | mCurrentStyle = new CodeEditorStyle(CodeEditorStyle::loadSettings(&settings)); |
| 96 | manageStyleControls(); |
| 97 | |
| 98 | connect(mUI->mEditPythonPath, SIGNAL(textEdited(QString)), |
| 99 | this, SLOT(validateEditPythonPath())); |
| 100 | |
| 101 | connect(mUI->mButtons, &QDialogButtonBox::accepted, this, &SettingsDialog::ok); |
| 102 | connect(mUI->mButtons, &QDialogButtonBox::rejected, this, &SettingsDialog::reject); |
| 103 | connect(mUI->mBtnAddApplication, SIGNAL(clicked()), |
| 104 | this, SLOT(addApplication())); |
| 105 | connect(mUI->mBtnRemoveApplication, SIGNAL(clicked()), |
| 106 | this, SLOT(removeApplication())); |
| 107 | connect(mUI->mBtnEditApplication, SIGNAL(clicked()), |