diff --git a/src/dialogs/SettingsDialog.cpp b/src/dialogs/SettingsDialog.cpp index 6fe3eb8fc2..ea56ae3cfd 100644 --- a/src/dialogs/SettingsDialog.cpp +++ b/src/dialogs/SettingsDialog.cpp @@ -109,6 +109,15 @@ class GeneralPanel : public QWidget { mStoreCredentials = new QCheckBox(tr("Store credentials in secure storage"), this); + mAutoSignoffCommits = + new QCheckBox(tr("Automatically signoff on commits"), this); + + mGpgSignCommits = new QCheckBox(tr("Sign all commits"), this); + + mGpgSignPushes = new QCheckBox(tr("Sign all pushes"), this); + + mGpgSignTags = new QCheckBox(tr("Sign all tags"), this); + QLabel *privacy = new QLabel(tr("View privacy policy")); connect(privacy, &QLabel::linkActivated, [] { AboutDialog::openSharedInstance(AboutDialog::Privacy); }); @@ -125,6 +134,10 @@ class GeneralPanel : public QWidget { form->addRow(QString(), mAutoPrune); form->addRow(tr("Language:"), mNoTranslation); form->addRow(tr("Credentials:"), mStoreCredentials); + form->addRow(tr("Auto Signoff:"), mAutoSignoffCommits); + form->addRow(tr("Sign Commits:"), mGpgSignCommits); + form->addRow(tr("Sign Pushes:"), mGpgSignPushes); + form->addRow(tr("Sign Tags:"), mGpgSignTags); form->addRow(QString(), privacy); #if defined(Q_OS_LINUX) || defined(Q_OS_WIN) @@ -184,6 +197,26 @@ class GeneralPanel : public QWidget { delete CredentialHelper::instance(); }); + connect(mAutoSignoffCommits, &QCheckBox::toggled, [](bool checked) { + git::Config config = git::Config::global(); + config.setValue("format.signOff", checked); + }); + + connect(mGpgSignCommits, &QCheckBox::toggled, [](bool checked) { + git::Config config = git::Config::global(); + config.setValue("commit.gpgSign", checked); + }); + + connect(mGpgSignPushes, &QCheckBox::toggled, [](bool checked) { + git::Config config = git::Config::global(); + config.setValue("push.gpgSign", checked); + }); + + connect(mGpgSignTags, &QCheckBox::toggled, [](bool checked) { + git::Config config = git::Config::global(); + config.setValue("tag.gpgSign", checked); + }); + connect(mSingleInstance, &QCheckBox::toggled, [](bool checked) { Settings::instance()->setValue(Setting::Id::AllowSingleInstanceOnly, checked); @@ -213,6 +246,10 @@ class GeneralPanel : public QWidget { settings->value(Setting::Id::DontTranslate).toBool()); mStoreCredentials->setChecked( settings->value(Setting::Id::StoreCredentials).toBool()); + mAutoSignoffCommits->setChecked(config.value("format.signOff")); + mGpgSignCommits->setChecked(config.value("commit.gpgSign")); + mGpgSignPushes->setChecked(config.value("push.gpgSign")); + mGpgSignTags->setChecked(config.value("tag.gpgSign")); mSingleInstance->setChecked( settings->value(Setting::Id::AllowSingleInstanceOnly).toBool()); @@ -229,6 +266,10 @@ class GeneralPanel : public QWidget { QCheckBox *mAutoPrune; QCheckBox *mNoTranslation; QCheckBox *mStoreCredentials; + QCheckBox *mAutoSignoffCommits; + QCheckBox *mGpgSignCommits; + QCheckBox *mGpgSignPushes; + QCheckBox *mGpgSignTags; QCheckBox *mSingleInstance; }; diff --git a/test/Setting.cpp b/test/Setting.cpp index 0a146bbadc..125b0cb2b1 100644 --- a/test/Setting.cpp +++ b/test/Setting.cpp @@ -23,7 +23,9 @@ private slots: template QStringList settingsKeys() { QStringList settingsKeys; - foreach (const TId id, ids()) { settingsKeys.append(T::key(id)); } + foreach (const TId id, ids()) { + settingsKeys.append(T::key(id)); + } return settingsKeys; }