summaryrefslogtreecommitdiffstats
path: root/plugins/fossil/configuredialog.cpp
diff options
context:
space:
mode:
authorArtur Shepilko <artur.shepilko@nomadbyte.com>2016-11-16 12:51:32 -0600
committerArtur Shepilko <artur.shepilko@nomadbyte.com>2017-02-09 16:43:38 +0000
commitdea25a6b62d97ddbe4a94c028c3431d91dac5b86 (patch)
tree638759dc25964c3b88bba4d461a8ca3f2df43f71 /plugins/fossil/configuredialog.cpp
parent21580dae57709995363cc4e8d50ec4f14025c59c (diff)
Vcs: Add Fossil SCM integration plugin
* Qt Creator base-commit: f77af5e3362cc6c4360ea1d197fb834cd5b072fa * Stand-alone plugin source tree for integration into qtc super-project * Original release: https://github.com/nomadbyte/qtcreator-plugin-fossil * Adapted from Bazaar plugin implementation Configuring Fossil ------------------ 1. Download the [Fossil SCM client](http://fossil-scm.org) and install `fossil` executable file in your `PATH`. 2. Create or designate a directory to store local Fossil repositories and remote clones. For example: `~/fossils/qt`. 3. Configure Version Control Options for the Fossil plugin to use the designated directory as `Local Repositories Default path`. Now Fossil should become available as a VCS choice to create new local repositories, as well as a choice in `New File or Project` to clone a remote Fossil repository. Change-Id: I630184c1b344184d9e08ae2fc24a5e4766f834b9 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'plugins/fossil/configuredialog.cpp')
-rw-r--r--plugins/fossil/configuredialog.cpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/plugins/fossil/configuredialog.cpp b/plugins/fossil/configuredialog.cpp
new file mode 100644
index 0000000..49ab100
--- /dev/null
+++ b/plugins/fossil/configuredialog.cpp
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (c) 2016 Artur Shepilko
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#include "configuredialog.h"
+#include "ui_configuredialog.h"
+
+#include "fossilsettings.h"
+
+#include <utils/pathchooser.h>
+
+#include <QDir>
+
+namespace Fossil {
+namespace Internal {
+
+class ConfigureDialogPrivate {
+public:
+ RepositorySettings settings() {
+ m_settings.user = m_ui.userLineEdit->text().trimmed();
+ m_settings.sslIdentityFile = m_ui.sslIdentityFilePathChooser->path();
+ m_settings.autosync =
+ (m_ui.disableAutosyncCheckBox->isChecked() ? RepositorySettings::AutosyncOff
+ : RepositorySettings::AutosyncOn);
+ return m_settings;
+ }
+
+ void updateUi() {
+ m_ui.userLineEdit->setText(m_settings.user.trimmed());
+ m_ui.userLineEdit->selectAll();
+ m_ui.sslIdentityFilePathChooser->setPath(QDir::toNativeSeparators(m_settings.sslIdentityFile));
+ m_ui.disableAutosyncCheckBox->setChecked(m_settings.autosync == RepositorySettings::AutosyncOff);
+ }
+
+ Ui::ConfigureDialog m_ui;
+ RepositorySettings m_settings;
+};
+
+ConfigureDialog::ConfigureDialog(QWidget *parent) : QDialog(parent),
+ d(new ConfigureDialogPrivate)
+{
+ d->m_ui.setupUi(this);
+ d->m_ui.sslIdentityFilePathChooser->setExpectedKind(Utils::PathChooser::File);
+ d->m_ui.sslIdentityFilePathChooser->setPromptDialogTitle(tr("SSL/TLS Identity Key"));
+ setWindowTitle(tr("Configure Repository"));
+ d->updateUi();
+}
+
+ConfigureDialog::~ConfigureDialog()
+{
+ delete d;
+}
+
+const RepositorySettings ConfigureDialog::settings() const
+{
+ return d->settings();
+}
+
+void ConfigureDialog::setSettings(const RepositorySettings &settings)
+{
+ d->m_settings = settings;
+ d->updateUi();
+}
+
+void ConfigureDialog::changeEvent(QEvent *e)
+{
+ QDialog::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ d->m_ui.retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
+} // namespace Internal
+} // namespace Fossil