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;
}