| 29 | |
| 30 | |
| 31 | PreferencesDialog::PreferencesDialog(ApplicationSettings *settings, QWidget *parent) : |
| 32 | QDialog(parent, Qt::Tool), |
| 33 | ui(new Ui::PreferencesDialog), |
| 34 | settings(settings) |
| 35 | { |
| 36 | ui->setupUi(this); |
| 37 | |
| 38 | QIcon icon = style()->standardIcon(QStyle::SP_MessageBoxInformation); |
| 39 | QPixmap pixmap = icon.pixmap(QSize(16, 16)); |
| 40 | ui->labelAppRestartIcon->setPixmap(pixmap); |
| 41 | ui->labelAppRestartIcon->hide(); |
| 42 | ui->labelAppRestart->hide(); |
| 43 | |
| 44 | MapSettingToCheckBox(ui->checkBoxMenuBar, &ApplicationSettings::showMenuBar, &ApplicationSettings::setShowMenuBar, &ApplicationSettings::showMenuBarChanged); |
| 45 | MapSettingToCheckBox(ui->checkBoxToolBar, &ApplicationSettings::showToolBar, &ApplicationSettings::setShowToolBar, &ApplicationSettings::showToolBarChanged); |
| 46 | MapSettingToCheckBox(ui->checkBoxStatusBar, &ApplicationSettings::showStatusBar, &ApplicationSettings::setShowStatusBar, &ApplicationSettings::showStatusBarChanged); |
| 47 | MapSettingToCheckBox(ui->checkBoxRecenterSearchDialog, &ApplicationSettings::centerSearchDialog, &ApplicationSettings::setCenterSearchDialog, &ApplicationSettings::centerSearchDialogChanged); |
| 48 | |
| 49 | MapSettingToGroupBox(ui->gbxRestorePreviousSession, &ApplicationSettings::restorePreviousSession, &ApplicationSettings::setRestorePreviousSession, &ApplicationSettings::restorePreviousSessionChanged); |
| 50 | connect(ui->gbxRestorePreviousSession, &QGroupBox::toggled, this, [=](bool checked) { |
| 51 | if (!checked) { |
| 52 | ui->checkBoxUnsavedFiles->setChecked(false); |
| 53 | ui->checkBoxRestoreTempFiles->setChecked(false); |
| 54 | } |
| 55 | else { |
| 56 | QMessageBox::warning(this, tr("Warning"), tr("This feature is experimental and it should not be considered safe for critically important work. It may lead to possible data loss. Use at your own risk.")); |
| 57 | } |
| 58 | }); |
| 59 | |
| 60 | MapSettingToCheckBox(ui->checkBoxUnsavedFiles, &ApplicationSettings::restoreUnsavedFiles, &ApplicationSettings::setRestoreUnsavedFiles, &ApplicationSettings::restoreUnsavedFilesChanged); |
| 61 | MapSettingToCheckBox(ui->checkBoxRestoreTempFiles, &ApplicationSettings::restoreTempFiles, &ApplicationSettings::setRestoreTempFiles, &ApplicationSettings::restoreTempFilesChanged); |
| 62 | |
| 63 | MapSettingToCheckBox(ui->checkBoxCombineSearchResults, &ApplicationSettings::combineSearchResults, &ApplicationSettings::setCombineSearchResults, &ApplicationSettings::combineSearchResultsChanged); |
| 64 | |
| 65 | populateTranslationComboBox(); |
| 66 | connect(ui->comboBoxTranslation, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [=](int index) { |
| 67 | settings->setTranslation(ui->comboBoxTranslation->itemData(index).toString()); |
| 68 | showApplicationRestartRequired(); |
| 69 | }); |
| 70 | |
| 71 | MapSettingToCheckBox(ui->checkBoxExitOnLastTabClosed, &ApplicationSettings::exitOnLastTabClosed, &ApplicationSettings::setExitOnLastTabClosed, &ApplicationSettings::exitOnLastTabClosedChanged); |
| 72 | |
| 73 | ui->fcbDefaultFont->setCurrentFont(QFont(settings->fontName())); |
| 74 | connect(ui->fcbDefaultFont, &QFontComboBox::currentFontChanged, this, [=](const QFont &f) { |
| 75 | settings->setFontName(f.family()); |
| 76 | }); |
| 77 | connect(settings, &ApplicationSettings::fontNameChanged, this, [=](QString fontName){ |
| 78 | ui->fcbDefaultFont->setCurrentFont(QFont(fontName)); |
| 79 | }); |
| 80 | |
| 81 | ui->spbDefaultFontSize->setValue(settings->fontSize()); |
| 82 | connect(ui->spbDefaultFontSize, QOverload<int>::of(&QSpinBox::valueChanged), settings, &ApplicationSettings::setFontSize); |
| 83 | connect(settings, &ApplicationSettings::fontSizeChanged, ui->spbDefaultFontSize, &QSpinBox::setValue); |
| 84 | |
| 85 | ui->comboBoxLineEndings->addItem(tr("System Default"), QString("")); |
| 86 | ui->comboBoxLineEndings->addItem(tr("Windows (CR LF)"), ScintillaNext::eolModeToString(SC_EOL_CRLF)); |
| 87 | ui->comboBoxLineEndings->addItem(tr("Linux (LF)"), ScintillaNext::eolModeToString(SC_EOL_LF)); |
| 88 | ui->comboBoxLineEndings->addItem(tr("Macintosh (CR)"), ScintillaNext::eolModeToString(SC_EOL_CR)); |
nothing calls this directly
no test coverage detected