forked from qt-creator/qt-creator
GitLab: Use apply functor in GitLabOptionsWidget
Babystep towards removing QObject inheritance of IOptionsPage Change-Id: Ib36b8ce4dd1f6878abdfe20c0c4e3ddb95e927dd Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -134,18 +134,6 @@ class GitLabOptionsWidget : public Core::IOptionsPageWidget
|
|||||||
public:
|
public:
|
||||||
explicit GitLabOptionsWidget(GitLabOptionsPage *page, GitLabParameters *parameters);
|
explicit GitLabOptionsWidget(GitLabOptionsPage *page, GitLabParameters *parameters);
|
||||||
|
|
||||||
GitLabParameters parameters() const;
|
|
||||||
|
|
||||||
void apply() final
|
|
||||||
{
|
|
||||||
GitLabParameters newParameters = parameters();
|
|
||||||
if (newParameters != *m_parameters) {
|
|
||||||
*m_parameters = newParameters;
|
|
||||||
m_parameters->toSettings(Core::ICore::settings());
|
|
||||||
emit m_page->settingsChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void showEditServerDialog();
|
void showEditServerDialog();
|
||||||
void showAddServerDialog();
|
void showAddServerDialog();
|
||||||
@@ -154,7 +142,6 @@ private:
|
|||||||
void modifyCurrentServer(const GitLabServer &newServer);
|
void modifyCurrentServer(const GitLabServer &newServer);
|
||||||
void updateButtonsState();
|
void updateButtonsState();
|
||||||
|
|
||||||
GitLabOptionsPage *m_page = nullptr;
|
|
||||||
GitLabParameters *m_parameters = nullptr;
|
GitLabParameters *m_parameters = nullptr;
|
||||||
GitLabServerWidget *m_gitLabServerWidget = nullptr;
|
GitLabServerWidget *m_gitLabServerWidget = nullptr;
|
||||||
QPushButton *m_edit = nullptr;
|
QPushButton *m_edit = nullptr;
|
||||||
@@ -165,7 +152,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
GitLabOptionsWidget::GitLabOptionsWidget(GitLabOptionsPage *page, GitLabParameters *params)
|
GitLabOptionsWidget::GitLabOptionsWidget(GitLabOptionsPage *page, GitLabParameters *params)
|
||||||
: m_page(page), m_parameters(params)
|
: m_parameters(params)
|
||||||
{
|
{
|
||||||
auto defaultLabel = new QLabel(Tr::tr("Default:"), this);
|
auto defaultLabel = new QLabel(Tr::tr("Default:"), this);
|
||||||
m_defaultGitLabServer = new QComboBox(this);
|
m_defaultGitLabServer = new QComboBox(this);
|
||||||
@@ -213,18 +200,22 @@ GitLabOptionsWidget::GitLabOptionsWidget(GitLabOptionsPage *page, GitLabParamete
|
|||||||
m_gitLabServerWidget->setGitLabServer(
|
m_gitLabServerWidget->setGitLabServer(
|
||||||
m_defaultGitLabServer->currentData().value<GitLabServer>());
|
m_defaultGitLabServer->currentData().value<GitLabServer>());
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
GitLabParameters GitLabOptionsWidget::parameters() const
|
setOnApply([page, this] {
|
||||||
{
|
GitLabParameters result;
|
||||||
GitLabParameters result;
|
// get all configured gitlabservers
|
||||||
// get all configured gitlabservers
|
for (int i = 0, end = m_defaultGitLabServer->count(); i < end; ++i)
|
||||||
for (int i = 0, end = m_defaultGitLabServer->count(); i < end; ++i)
|
result.gitLabServers.append(m_defaultGitLabServer->itemData(i).value<GitLabServer>());
|
||||||
result.gitLabServers.append(m_defaultGitLabServer->itemData(i).value<GitLabServer>());
|
if (m_defaultGitLabServer->count())
|
||||||
if (m_defaultGitLabServer->count())
|
result.defaultGitLabServer = m_defaultGitLabServer->currentData().value<GitLabServer>().id;
|
||||||
result.defaultGitLabServer = m_defaultGitLabServer->currentData().value<GitLabServer>().id;
|
result.curl = m_curl.filePath();
|
||||||
result.curl = m_curl.filePath();
|
|
||||||
return result;
|
if (result != *m_parameters) {
|
||||||
|
*m_parameters = result;
|
||||||
|
m_parameters->toSettings(Core::ICore::settings());
|
||||||
|
emit page->settingsChanged();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void GitLabOptionsWidget::showEditServerDialog()
|
void GitLabOptionsWidget::showEditServerDialog()
|
||||||
|
|||||||
Reference in New Issue
Block a user