forked from qt-creator/qt-creator
Mercurial: Follow the Fossil settings setup
Change-Id: I3261669991d55c6da5c80c116c2a66c8b7b0d577 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -81,7 +81,8 @@ QStringList MercurialDiffEditorController::addConfigurationArguments(const QStri
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
MercurialClient::MercurialClient(MercurialSettings *settings) : VcsBaseClient(settings)
|
||||
MercurialClient::MercurialClient()
|
||||
: VcsBaseClient(&Internal::settings())
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -16,8 +16,9 @@ class MercurialDiffEditorController;
|
||||
class MercurialClient : public VcsBase::VcsBaseClient
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MercurialClient(MercurialSettings *settings);
|
||||
MercurialClient();
|
||||
|
||||
bool synchronousClone(const Utils::FilePath &workingDir,
|
||||
const QString &srcLocation,
|
||||
|
@@ -169,9 +169,8 @@ private:
|
||||
void createRepositoryActions(const Core::Context &context);
|
||||
|
||||
// Variables
|
||||
MercurialSettings m_settings;
|
||||
MercurialClient m_client{&m_settings};
|
||||
MercurialSettingsPage m_settingsPage{&m_settings};
|
||||
MercurialClient m_client;
|
||||
MercurialSettingsPage m_settingsPage;
|
||||
|
||||
Core::CommandLocator *m_commandLocator = nullptr;
|
||||
Core::ActionContainer *m_mercurialContainer = nullptr;
|
||||
@@ -254,7 +253,7 @@ MercurialPluginPrivate::MercurialPluginPrivate()
|
||||
|
||||
createMenu(context);
|
||||
|
||||
connect(&m_settings, &AspectContainer::applied, this, &IVersionControl::configurationChanged);
|
||||
connect(&settings(), &AspectContainer::applied, this, &IVersionControl::configurationChanged);
|
||||
}
|
||||
|
||||
void MercurialPluginPrivate::createMenu(const Core::Context &context)
|
||||
@@ -633,8 +632,8 @@ void MercurialPluginPrivate::showCommitWidget(const QList<VcsBaseClient::StatusI
|
||||
|
||||
const QString branch = vcsTopic(m_submitRepository);
|
||||
commitEditor->setFields(m_submitRepository, branch,
|
||||
m_settings.userName.value(),
|
||||
m_settings.userEmail.value(), status);
|
||||
settings().userName(),
|
||||
settings().userEmail(), status);
|
||||
}
|
||||
|
||||
void MercurialPluginPrivate::diffFromEditorSelected(const QStringList &files)
|
||||
@@ -716,7 +715,7 @@ bool MercurialPluginPrivate::managesFile(const FilePath &workingDirectory, const
|
||||
|
||||
bool MercurialPluginPrivate::isConfigured() const
|
||||
{
|
||||
const FilePath binary = m_settings.binaryPath.filePath();
|
||||
const FilePath binary = settings().binaryPath.filePath();
|
||||
if (binary.isEmpty())
|
||||
return false;
|
||||
QFileInfo fi = binary.toFileInfo();
|
||||
@@ -784,7 +783,7 @@ VcsCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const QString &
|
||||
QStringList args;
|
||||
args << QLatin1String("clone") << extraArgs << url << localName;
|
||||
auto command = VcsBaseClient::createVcsCommand(baseDirectory, m_client.processEnvironment());
|
||||
command->addJob({m_settings.binaryPath.filePath(), args}, -1);
|
||||
command->addJob({settings().binaryPath.filePath(), args}, -1);
|
||||
return command;
|
||||
}
|
||||
|
||||
|
@@ -46,15 +46,15 @@ MercurialSettings::MercurialSettings()
|
||||
|
||||
// MercurialSettingsPage
|
||||
|
||||
MercurialSettingsPage::MercurialSettingsPage(MercurialSettings *settings)
|
||||
MercurialSettingsPage::MercurialSettingsPage()
|
||||
{
|
||||
setId(VcsBase::Constants::VCS_ID_MERCURIAL);
|
||||
setDisplayName(Tr::tr("Mercurial"));
|
||||
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
|
||||
setSettings(settings);
|
||||
setSettings(&settings());
|
||||
|
||||
setLayouter([settings](QWidget *widget) {
|
||||
MercurialSettings &s = *settings;
|
||||
setLayouter([](QWidget *widget) {
|
||||
MercurialSettings &s = settings();
|
||||
using namespace Layouting;
|
||||
|
||||
Column {
|
||||
@@ -85,4 +85,10 @@ MercurialSettingsPage::MercurialSettingsPage(MercurialSettings *settings)
|
||||
});
|
||||
}
|
||||
|
||||
MercurialSettings &settings()
|
||||
{
|
||||
static MercurialSettings theSettings;
|
||||
return theSettings;
|
||||
}
|
||||
|
||||
} // Mercurial::Internal
|
||||
|
@@ -18,10 +18,12 @@ public:
|
||||
Utils::StringAspect diffIgnoreBlankLines;
|
||||
};
|
||||
|
||||
MercurialSettings &settings();
|
||||
|
||||
class MercurialSettingsPage final : public Core::IOptionsPage
|
||||
{
|
||||
public:
|
||||
explicit MercurialSettingsPage(MercurialSettings *settings);
|
||||
MercurialSettingsPage();
|
||||
};
|
||||
|
||||
} // Mercurial::Internal
|
||||
|
Reference in New Issue
Block a user