diff options
author | hjk <hjk@qt.io> | 2020-01-10 16:13:25 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-14 08:45:43 +0000 |
commit | 01ce55f7dd71d069dc4a01e1bf033f531b7f75d4 (patch) | |
tree | a27420180820f840af918f08e8ce0e068946b6b8 | |
parent | 7c35c447e1ce31bbe904191d8972a284b1757b89 (diff) | |
download | qt-creator-01ce55f7dd71d069dc4a01e1bf033f531b7f75d4.tar.gz |
ClearCase: Use new IOptionPage convenience functions
Change-Id: Ie239a972de57f8f145fc3343f7cabac86917760e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r-- | src/plugins/clearcase/clearcaseplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/clearcase/settingspage.cpp | 90 | ||||
-rw-r--r-- | src/plugins/clearcase/settingspage.h | 34 |
3 files changed, 51 insertions, 75 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 9ba8c9db9f..0d64c470ad 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -424,7 +424,7 @@ bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *er connect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, &ClearCasePlugin::projectChanged); - new SettingsPage(this); + new ClearCaseSettingsPage(this); new VcsSubmitEditorFactory(&submitParameters, []() { return new ClearCaseSubmitEditor(&submitParameters); }, this); diff --git a/src/plugins/clearcase/settingspage.cpp b/src/plugins/clearcase/settingspage.cpp index 8414e0eaf0..ae5c3255e8 100644 --- a/src/plugins/clearcase/settingspage.cpp +++ b/src/plugins/clearcase/settingspage.cpp @@ -28,52 +28,44 @@ #include "clearcaseconstants.h" #include "clearcasesettings.h" #include "clearcaseplugin.h" +#include "ui_settingspage.h" #include <coreplugin/icore.h> -#include <extensionsystem/pluginmanager.h> + #include <utils/environment.h> #include <utils/hostosinfo.h> #include <utils/pathchooser.h> #include <QCoreApplication> -#include <QFileDialog> -#include <QTextStream> -using namespace ClearCase::Internal; using namespace Utils; -SettingsPageWidget::SettingsPageWidget(QWidget *parent) : QWidget(parent) +namespace ClearCase { +namespace Internal { + +class SettingsPageWidget final : public Core::IOptionsPageWidget +{ + Q_DECLARE_TR_FUNCTIONS(ClearCase::Internal::SettingsPageWidget) + +public: + SettingsPageWidget(); + +private: + void apply() final; + void finish() final { } + + Ui::SettingsPage m_ui; +}; + +SettingsPageWidget::SettingsPageWidget() { m_ui.setupUi(this); m_ui.commandPathChooser->setPromptDialogTitle(tr("ClearCase Command")); m_ui.commandPathChooser->setExpectedKind(PathChooser::ExistingCommand); m_ui.commandPathChooser->setHistoryCompleter(QLatin1String("ClearCase.Command.History")); -} -ClearCaseSettings SettingsPageWidget::settings() const -{ - ClearCaseSettings rc; - rc.ccCommand = m_ui.commandPathChooser->rawPath(); - rc.ccBinaryPath = m_ui.commandPathChooser->path(); - rc.timeOutS = m_ui.timeOutSpinBox->value(); - rc.autoCheckOut = m_ui.autoCheckOutCheckBox->isChecked(); - rc.noComment = m_ui.noCommentCheckBox->isChecked(); - if (m_ui.graphicalDiffRadioButton->isChecked()) - rc.diffType = GraphicalDiff; - else if (m_ui.externalDiffRadioButton->isChecked()) - rc.diffType = ExternalDiff; - rc.autoAssignActivityName = m_ui.autoAssignActivityCheckBox->isChecked(); - rc.historyCount = m_ui.historyCountSpinBox->value(); - rc.promptToCheckIn = m_ui.promptCheckBox->isChecked(); - rc.disableIndexer = m_ui.disableIndexerCheckBox->isChecked(); - rc.diffArgs = m_ui.diffArgsEdit->text(); - rc.indexOnlyVOBs = m_ui.indexOnlyVOBsEdit->text(); - rc.extDiffAvailable = m_ui.externalDiffRadioButton->isEnabled(); - return rc; -} + ClearCaseSettings s = ClearCasePlugin::instance()->settings(); -void SettingsPageWidget::setSettings(const ClearCaseSettings &s) -{ m_ui.commandPathChooser->setPath(s.ccCommand); m_ui.timeOutSpinBox->setValue(s.timeOutS); m_ui.autoCheckOutCheckBox->setChecked(s.autoCheckOut); @@ -104,22 +96,36 @@ void SettingsPageWidget::setSettings(const ClearCaseSettings &s) m_ui.indexOnlyVOBsEdit->setText(s.indexOnlyVOBs); } -SettingsPage::SettingsPage(QObject *parent) - : VcsBaseOptionsPage(parent) +void SettingsPageWidget::apply() { - setId(ClearCase::Constants::VCS_ID_CLEARCASE); - setDisplayName(tr("ClearCase")); -} + ClearCaseSettings rc; + rc.ccCommand = m_ui.commandPathChooser->rawPath(); + rc.ccBinaryPath = m_ui.commandPathChooser->path(); + rc.timeOutS = m_ui.timeOutSpinBox->value(); + rc.autoCheckOut = m_ui.autoCheckOutCheckBox->isChecked(); + rc.noComment = m_ui.noCommentCheckBox->isChecked(); + if (m_ui.graphicalDiffRadioButton->isChecked()) + rc.diffType = GraphicalDiff; + else if (m_ui.externalDiffRadioButton->isChecked()) + rc.diffType = ExternalDiff; + rc.autoAssignActivityName = m_ui.autoAssignActivityCheckBox->isChecked(); + rc.historyCount = m_ui.historyCountSpinBox->value(); + rc.promptToCheckIn = m_ui.promptCheckBox->isChecked(); + rc.disableIndexer = m_ui.disableIndexerCheckBox->isChecked(); + rc.diffArgs = m_ui.diffArgsEdit->text(); + rc.indexOnlyVOBs = m_ui.indexOnlyVOBsEdit->text(); + rc.extDiffAvailable = m_ui.externalDiffRadioButton->isEnabled(); -QWidget *SettingsPage::widget() -{ - if (!m_widget) - m_widget = new SettingsPageWidget; - m_widget->setSettings(ClearCasePlugin::instance()->settings()); - return m_widget; + ClearCasePlugin::instance()->setSettings(rc); } -void SettingsPage::apply() +ClearCaseSettingsPage::ClearCaseSettingsPage(QObject *parent) + : VcsBaseOptionsPage(parent) { - ClearCasePlugin::instance()->setSettings(m_widget->settings()); + setId(ClearCase::Constants::VCS_ID_CLEARCASE); + setDisplayName(tr("ClearCase")); + setWidgetCreator([] { return new SettingsPageWidget; }); } + +} // Internal +} // ClearCase diff --git a/src/plugins/clearcase/settingspage.h b/src/plugins/clearcase/settingspage.h index 75d5516ab3..726798c5e6 100644 --- a/src/plugins/clearcase/settingspage.h +++ b/src/plugins/clearcase/settingspage.h @@ -28,43 +28,13 @@ #include <vcsbase/vcsbaseoptionspage.h> -#include "ui_settingspage.h" - -#include <QPointer> - namespace ClearCase { namespace Internal { -class ClearCaseSettings; - -class SettingsPageWidget : public QWidget -{ - Q_OBJECT - -public: - explicit SettingsPageWidget(QWidget *parent = nullptr); - - ClearCaseSettings settings() const; - void setSettings(const ClearCaseSettings &); - -private: - Ui::SettingsPage m_ui; -}; - - -class SettingsPage : public VcsBase::VcsBaseOptionsPage +class ClearCaseSettingsPage : public VcsBase::VcsBaseOptionsPage { - Q_OBJECT - public: - explicit SettingsPage(QObject *parent); - - QWidget *widget() override; - void apply() override; - void finish() override { } - -private: - QPointer<SettingsPageWidget> m_widget; + explicit ClearCaseSettingsPage(QObject *parent); }; } // namespace ClearCase |