1 | #include "InitialRepoConfig.h" |
2 | #include "ui_InitialRepoConfig.h" |
3 | |
4 | #include <CredentialsDlg.h> |
5 | #include <GitConfig.h> |
6 | #include <GitCredentials.h> |
7 | #include <GitQlientSettings.h> |
8 | #include <GitQlientStyles.h> |
9 | |
10 | InitialRepoConfig::InitialRepoConfig(const QSharedPointer<GitBase> &git, |
11 | const QSharedPointer<GitQlientSettings> &settings, QWidget *parent) |
12 | : QDialog(parent) |
13 | , ui(new Ui::InitialRepoConfig) |
14 | , mGit(git) |
15 | , mSettings(settings) |
16 | { |
17 | setAttribute(Qt::WA_DeleteOnClose); |
18 | |
19 | ui->setupUi(this); |
20 | |
21 | setStyleSheet(GitQlientStyles::getInstance()->getStyles()); |
22 | |
23 | ui->autoFetch->setValue(mSettings->localValue("AutoFetch" , 5).toInt()); |
24 | ui->pruneOnFetch->setChecked(settings->localValue("PruneOnFetch" , true).toBool()); |
25 | ui->updateOnPull->setChecked(settings->localValue("UpdateOnPull" , false).toBool()); |
26 | ui->sbMaxCommits->setValue(settings->localValue("MaxCommits" , 0).toInt()); |
27 | |
28 | QScopedPointer<GitConfig> gitConfig(new GitConfig(git)); |
29 | |
30 | const auto url = gitConfig->getServerUrl(); |
31 | ui->credentialsFrames->setVisible(url.startsWith("https" )); |
32 | |
33 | connect(ui->buttonGroup, SIGNAL(buttonClicked(QAbstractButton *)), this, |
34 | SLOT(onCredentialsOptionChanged(QAbstractButton *))); |
35 | } |
36 | |
37 | InitialRepoConfig::~InitialRepoConfig() |
38 | { |
39 | mSettings->setLocalValue("AutoFetch" , ui->autoFetch->value()); |
40 | mSettings->setLocalValue("PruneOnFetch" , ui->pruneOnFetch->isChecked()); |
41 | mSettings->setLocalValue("UpdateOnPull" , ui->updateOnPull->isChecked()); |
42 | mSettings->setLocalValue("MaxCommits" , ui->sbMaxCommits->value()); |
43 | |
44 | delete ui; |
45 | } |
46 | |
47 | void InitialRepoConfig::accept() |
48 | { |
49 | // Store credentials if allowed and the user checked the box |
50 | if (ui->credentialsFrames->isVisible() && ui->chbCredentials->isChecked()) |
51 | { |
52 | if (ui->rbCache->isChecked()) |
53 | GitCredentials::configureCache(ui->sbTimeout->value(), mGit); |
54 | else |
55 | { |
56 | CredentialsDlg dlg(mGit, this); |
57 | dlg.exec(); |
58 | } |
59 | } |
60 | |
61 | QDialog::accept(); |
62 | } |
63 | |
64 | void InitialRepoConfig::onCredentialsOptionChanged(QAbstractButton *button) |
65 | { |
66 | ui->sbTimeout->setEnabled(button == ui->rbCache); |
67 | } |
68 | |