Mercurial: Follow the Fossil settings setup

Change-Id: I3261669991d55c6da5c80c116c2a66c8b7b0d577
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2023-05-15 14:05:39 +02:00
parent 8bdb528f86
commit 1697ff8748
5 changed files with 24 additions and 15 deletions

View File

@@ -81,7 +81,8 @@ QStringList MercurialDiffEditorController::addConfigurationArguments(const QStri
/////////////////////////////////////////////////////////////
MercurialClient::MercurialClient(MercurialSettings *settings) : VcsBaseClient(settings)
MercurialClient::MercurialClient()
: VcsBaseClient(&Internal::settings())
{
}

View File

@@ -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,

View File

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

View File

@@ -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

View File

@@ -18,10 +18,12 @@ public:
Utils::StringAspect diffIgnoreBlankLines;
};
MercurialSettings &settings();
class MercurialSettingsPage final : public Core::IOptionsPage
{
public:
explicit MercurialSettingsPage(MercurialSettings *settings);
MercurialSettingsPage();
};
} // Mercurial::Internal