diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 0f47f9166d1ba1e90d949133e4bd8a1422dac7d6..aca2e8edfd8f6ea41c28364dbf01866ff5b56707 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -234,7 +234,7 @@ void AttachCoreDialog::setCoreFile(const QString &fileName) Profile *AttachCoreDialog::profile() const { - return m_ui->toolchainComboBox->profile(); + return m_ui->toolchainComboBox->currentProfile(); } void AttachCoreDialog::setProfileIndex(int i) @@ -381,7 +381,7 @@ QString AttachExternalDialog::executable() const Profile *AttachExternalDialog::profile() const { - return m_ui->toolchainComboBox->profile(); + return m_ui->toolchainComboBox->currentProfile(); } void AttachExternalDialog::setProfileIndex(int i) @@ -589,7 +589,7 @@ QString StartExternalDialog::executableFile() const Profile *StartExternalDialog::profile() const { - return m_ui->toolChainComboBox->profile(); + return m_ui->toolChainComboBox->currentProfile(); } bool StartExternalDialog::isValid() const @@ -719,8 +719,7 @@ public: QString overrideStartScript; bool useServerStartScript; QString serverStartScript; - QString sysroot; - int abiIndex; + Core::Id profileId; QString debugInfoLocation; }; @@ -739,7 +738,7 @@ inline bool operator!=(const StartRemoteParameters &p1, const StartRemoteParamet { return !p1.equals(p2); } StartRemoteParameters::StartRemoteParameters() : - useServerStartScript(false), abiIndex(0) + useServerStartScript(false), profileId(0) { } @@ -750,7 +749,7 @@ bool StartRemoteParameters::equals(const StartRemoteParameters &rhs) const && overrideStartScript == rhs.overrideStartScript && useServerStartScript == rhs.useServerStartScript && serverStartScript == rhs.serverStartScript - && sysroot == rhs.sysroot && abiIndex == rhs.abiIndex + && profileId == rhs.profileId && debugInfoLocation == rhs.debugInfoLocation; } @@ -758,12 +757,11 @@ void StartRemoteParameters::toSettings(QSettings *settings) const { settings->setValue(_("LastRemoteChannel"), remoteChannel); settings->setValue(_("LastLocalExecutable"), localExecutable); - settings->setValue(_("LastExternalAbiIndex"), abiIndex); settings->setValue(_("LastRemoteArchitecture"), remoteArchitecture); settings->setValue(_("LastServerStartScript"), serverStartScript); settings->setValue(_("LastUseServerStartScript"), useServerStartScript); settings->setValue(_("LastRemoteStartScript"), overrideStartScript); - settings->setValue(_("LastSysroot"), sysroot); + settings->setValue(_("LastProfileId"), profileId.toString()); settings->setValue(_("LastDebugInfoLocation"), debugInfoLocation); } @@ -771,12 +769,11 @@ void StartRemoteParameters::fromSettings(const QSettings *settings) { remoteChannel = settings->value(_("LastRemoteChannel")).toString(); localExecutable = settings->value(_("LastLocalExecutable")).toString(); - abiIndex = settings->value(_("LastExternalAbiIndex")).toInt(); + profileId = Core::Id(settings->value(_("LastProfileId")).toString()); remoteArchitecture = settings->value(_("LastRemoteArchitecture")).toString(); serverStartScript = settings->value(_("LastServerStartScript")).toString(); useServerStartScript = settings->value(_("LastUseServerStartScript")).toBool(); overrideStartScript = settings->value(_("LastRemoteStartScript")).toString(); - sysroot = settings->value(_("LastSysroot")).toString(); debugInfoLocation = settings->value(_("LastDebugInfoLocation")).toString(); } @@ -864,7 +861,6 @@ bool StartRemoteDialog::run(QWidget *parent, sp->overrideStartScript = newParameters.overrideStartScript; sp->useServerStartScript = newParameters.useServerStartScript; sp->serverStartScript = newParameters.serverStartScript; - sp->sysroot = newParameters.sysroot; sp->debugInfoLocation = newParameters.debugInfoLocation; return true; } @@ -878,8 +874,7 @@ StartRemoteParameters StartRemoteDialog::parameters() const result.overrideStartScript = m_ui->overrideStartScriptPathChooser->path(); result.useServerStartScript = m_ui->useServerStartScriptCheckBox->isChecked(); result.serverStartScript = m_ui->serverStartScriptPathChooser->path(); - result.sysroot = m_ui->sysrootPathChooser->path(); - result.abiIndex = m_ui->toolchainComboBox->currentIndex(); + result.profileId = m_ui->toolchainComboBox->currentProfileId(); result.debugInfoLocation = m_ui->debuginfoPathChooser->path(); return result; } @@ -894,9 +889,7 @@ void StartRemoteDialog::setParameters(const StartRemoteParameters &p) m_ui->overrideStartScriptPathChooser->setPath(p.overrideStartScript); m_ui->useServerStartScriptCheckBox->setChecked(p.useServerStartScript); m_ui->serverStartScriptPathChooser->setPath(p.serverStartScript); - m_ui->sysrootPathChooser->setPath(p.sysroot); - if (p.abiIndex >= 0 && p.abiIndex < m_ui->toolchainComboBox->count()) - m_ui->toolchainComboBox->setCurrentIndex(p.abiIndex); + m_ui->toolchainComboBox->setCurrentProfileId(p.profileId); m_ui->debuginfoPathChooser->setPath(p.debugInfoLocation); } @@ -920,7 +913,7 @@ void StartRemoteDialog::historyIndexChanged(int index) Profile *StartRemoteDialog::profile() const { - return m_ui->toolchainComboBox->profile(); + return m_ui->toolchainComboBox->currentProfile(); } void StartRemoteDialog::setRemoteArchitectures(const QStringList &list) diff --git a/src/plugins/debugger/debuggertoolchaincombobox.cpp b/src/plugins/debugger/debuggertoolchaincombobox.cpp index 5e552b98774ff599e011983c9513476eeb6f650f..96a079fdfc79208ba2338737cb650075cbb27845 100644 --- a/src/plugins/debugger/debuggertoolchaincombobox.cpp +++ b/src/plugins/debugger/debuggertoolchaincombobox.cpp @@ -85,11 +85,10 @@ void DebuggerToolChainComboBox::init(bool hostAbiOnly) setEnabled(count() > 1); } -void DebuggerToolChainComboBox::setProfile(const Profile *profile) +void DebuggerToolChainComboBox::setCurrentProfile(const Profile *profile) { QTC_ASSERT(profile->isValid(), return); - const int c = count(); - for (int i = 0; i < c; i++) { + for (int i = 0, n = count(); i != n; ++i) { if (profileAt(i) == profile) { setCurrentIndex(i); break; @@ -97,19 +96,25 @@ void DebuggerToolChainComboBox::setProfile(const Profile *profile) } } -Profile *DebuggerToolChainComboBox::profile() const +Profile *DebuggerToolChainComboBox::currentProfile() const { return profileAt(currentIndex()); } -//QString DebuggerToolChainComboBox::debuggerCommand() const -//{ -// int index = currentIndex(); -// Core::Id id = qvariant_cast<Core::Id>(itemData(index)); -// Profile *st = ProfileManager::instance()->find(id); -// QTC_ASSERT(st, return QString()); -// return DebuggerProfileInformation::debuggerCommand(st).toString(); -//} +void DebuggerToolChainComboBox::setCurrentProfileId(Core::Id id) +{ + for (int i = 0, n = count(); i != n; ++i) { + if (profileAt(i)->id() == id) { + setCurrentIndex(i); + break; + } + } +} + +Core::Id DebuggerToolChainComboBox::currentProfileId() const +{ + return profileAt(currentIndex())->id(); +} Profile *DebuggerToolChainComboBox::profileAt(int index) const { diff --git a/src/plugins/debugger/debuggertoolchaincombobox.h b/src/plugins/debugger/debuggertoolchaincombobox.h index 4dbd05dc0120b01b0c9d3c1c4e7f8d7e51494f3e..d4dcf16bbd2c9d5684cebb6bf2fa84c053822a83 100644 --- a/src/plugins/debugger/debuggertoolchaincombobox.h +++ b/src/plugins/debugger/debuggertoolchaincombobox.h @@ -35,6 +35,7 @@ #include <QComboBox> +namespace Core { class Id; } namespace ProjectExplorer { class Profile; } namespace Debugger { @@ -50,9 +51,11 @@ public: void init(bool hostAbiOnly); - void setProfile(const ProjectExplorer::Profile *profile); - ProjectExplorer::Profile *profile() const; - //QString debuggerCommand() const; + void setCurrentProfileId(Core::Id id); + Core::Id currentProfileId() const; + + void setCurrentProfile(const ProjectExplorer::Profile *profile); + ProjectExplorer::Profile *currentProfile() const; private: ProjectExplorer::Profile *profileAt(int index) const;