diff options
author | Artur Shepilko <artur.shepilko@nomadbyte.com> | 2016-11-16 12:51:32 -0600 |
---|---|---|
committer | Artur Shepilko <artur.shepilko@nomadbyte.com> | 2017-02-09 16:43:38 +0000 |
commit | dea25a6b62d97ddbe4a94c028c3431d91dac5b86 (patch) | |
tree | 638759dc25964c3b88bba4d461a8ca3f2df43f71 /plugins/fossil/configuredialog.cpp | |
parent | 21580dae57709995363cc4e8d50ec4f14025c59c (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.cpp | 99 |
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 |