diff options
| author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-02-23 14:57:52 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-02-23 14:57:52 +0100 |
| commit | 6ac7efba15c7678a55285e0d2e059b01758389e3 (patch) | |
| tree | cbe13df47ad3b5b7cc5b360388b5c79a6c318e96 /src/plugins/debugger/commonoptionspage.cpp | |
| parent | 373000a95460f0c16062ef2c14bfa6c0a56d6434 (diff) | |
| download | qt-creator-6ac7efba15c7678a55285e0d2e059b01758389e3.tar.gz | |
Debugger: Move debugger executables configuration into toolchains.
Diffstat (limited to 'src/plugins/debugger/commonoptionspage.cpp')
| -rw-r--r-- | src/plugins/debugger/commonoptionspage.cpp | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp index c947cea975..3f0e65e459 100644 --- a/src/plugins/debugger/commonoptionspage.cpp +++ b/src/plugins/debugger/commonoptionspage.cpp @@ -42,8 +42,6 @@ #include <coreplugin/manhattanstyle.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/toolchainmanager.h> -#include <projectexplorer/abi.h> #include <QtCore/QFileInfo> #include <QtCore/QTextStream> @@ -55,10 +53,6 @@ using namespace ProjectExplorer; namespace Debugger { namespace Internal { -static const char *DEBUGGER_MAPPING_ARRAY = "GdbMapping"; -static const char *DEBUGGER_ABI_KEY = "Abi"; -static const char *DEBUGGER_BINARY_KEY = "Binary"; - /////////////////////////////////////////////////////////////////////// // // CommonOptionsPage @@ -67,7 +61,6 @@ static const char *DEBUGGER_BINARY_KEY = "Binary"; CommonOptionsPage::CommonOptionsPage() { - m_abiToDebuggerMapChanged = true; } QString CommonOptionsPage::id() const @@ -96,12 +89,6 @@ QIcon CommonOptionsPage::categoryIcon() const void CommonOptionsPage::apply() { m_group.apply(ICore::instance()->settings()); - - if (m_ui.debuggerChooserWidget->isDirty()) { - m_abiToDebuggerMap = m_ui.debuggerChooserWidget->debuggerMapping(); - //m_ui.debuggerChooserWidget->setDebuggerMapping(m_abiToDebuggerMap); - m_abiToDebuggerMapChanged = true; - } } void CommonOptionsPage::finish() @@ -109,11 +96,6 @@ void CommonOptionsPage::finish() m_group.finish(); } -QString CommonOptionsPage::debuggerForAbi(const QString &abi) const -{ - return m_abiToDebuggerMap.value(abi); -} - QWidget *CommonOptionsPage::createPage(QWidget *parent) { QWidget *w = new QWidget(parent); @@ -170,40 +152,6 @@ QWidget *CommonOptionsPage::createPage(QWidget *parent) #ifndef Q_OS_WIN m_ui.checkBoxRegisterForPostMortem->setVisible(false); #endif - - // Tool - connect(ToolChainManager::instance(), - SIGNAL(toolChainAdded(ProjectExplorer::ToolChain*)), - SLOT(handleToolChainAdditions(ProjectExplorer::ToolChain*))); - - connect(ToolChainManager::instance(), - SIGNAL(toolChainRemoved(ProjectExplorer::ToolChain*)), - SLOT(handleToolChainRemovals(ProjectExplorer::ToolChain*))); - - // Update mapping now that toolchains are available - QList<ToolChain *> tcs = ToolChainManager::instance()->toolChains(); - - QStringList abiList; - foreach (ToolChain *tc, tcs) { - const QString abi = tc->targetAbi().toString(); - if (!abiList.contains(abi)) - abiList.append(abi); - if (!m_abiToDebuggerMap.contains(abi)) - handleToolChainAdditions(tc); - } - - QStringList toRemove; - for (QMap<QString, QString>::const_iterator i = m_abiToDebuggerMap.constBegin(); - i != m_abiToDebuggerMap.constEnd(); ++i) { - if (!abiList.contains(i.key())) - toRemove.append(i.key()); - } - - foreach (const QString &key, toRemove) - m_abiToDebuggerMap.remove(key); - - m_ui.debuggerChooserWidget->setDebuggerMapping(m_abiToDebuggerMap); - return w; } @@ -212,176 +160,6 @@ bool CommonOptionsPage::matches(const QString &s) const return m_searchKeywords.contains(s, Qt::CaseInsensitive); } -void CommonOptionsPage::readSettings() /* static */ -{ - // FIXME: Convert old settings! - QSettings *settings = Core::ICore::instance()->settings(); - - m_abiToDebuggerMap.clear(); - - int size = settings->beginReadArray(DEBUGGER_MAPPING_ARRAY); - for (int i = 0; i < size; ++i) { - settings->setArrayIndex(i); - Abi abi(settings->value(DEBUGGER_ABI_KEY).toString()); - if (!abi.isValid()) - continue; - QString binary = settings->value(DEBUGGER_BINARY_KEY).toString(); - if (binary.isEmpty()) - continue; - m_abiToDebuggerMap.insert(abi.toString(), binary); - } - settings->endArray(); - - // Map old settings (pre 2.2): - const QChar separator = QLatin1Char(','); - const QString keyRoot = QLatin1String("GdbBinaries/GdbBinaries"); - for (int i = 1; ; i++) { - const QString value = settings->value(keyRoot + QString::number(i)).toString(); - if (value.isEmpty()) - break; - // Split apart comma-separated binary and its numerical toolchains. - QStringList tokens = value.split(separator); - if (tokens.size() < 2) - break; - - const QString binary = tokens.front(); - // Skip non-existent absolute binaries allowing for upgrades by the installer. - // Force a rewrite of the settings file. - const QFileInfo binaryInfo(binary); - if (binaryInfo.isAbsolute() && !binaryInfo.isExecutable()) { - const QString msg = QString::fromLatin1("Warning: The gdb binary '%1' does not exist, skipping.\n").arg(binary); - qWarning("%s", qPrintable(msg)); - continue; - } - - // Create entries for all toolchains. - tokens.pop_front(); - foreach (const QString &t, tokens) { - // Paranoia: Check if the there is already a binary configured for the toolchain. - QString abi; - switch (t.toInt()) - { - case 0: // GCC - case 1: // Linux ICC -#ifndef Q_OS_WIN - abi = Abi::hostAbi().toString(); -#endif - break; - case 2: // MinGW - case 3: // MSVC - case 4: // WINCE -#ifdef Q_OS_WIN - abi = Abi::hostAbi().toString(); -#endif - break; - case 5: // WINSCW - abi = Abi(Abi::ARM, Abi::Symbian, - Abi::Symbian_emulator, - Abi::Format_ELF, - 32).toString(); - break; - case 6: // GCCE - case 7: // RVCT 2, ARM v5 - case 8: // RVCT 2, ARM v6 - case 11: // RVCT GNUPOC - case 12: // RVCT 4, ARM v5 - case 13: // RVCT 4, ARM v6 - abi = Abi(Abi::ARM, Abi::Symbian, - Abi::Symbian_device, - Abi::Format_ELF, - 32).toString(); - break; - case 9: // GCC Maemo5 - abi = Abi(Abi::ARM, Abi::Linux, - Abi::Linux_maemo, - Abi::Format_ELF, - 32).toString(); - - break; - case 14: // GCC Harmattan - abi = Abi(Abi::ARM, Abi::Linux, - Abi::Linux_harmattan, - Abi::Format_ELF, - 32).toString(); - break; - case 15: // GCC Meego - abi = Abi(Abi::ARM, Abi::Linux, - Abi::Linux_meego, - Abi::Format_ELF, - 32).toString(); - break; - default: - break; - } - if (abi.isEmpty() || m_abiToDebuggerMap.contains(abi)) - continue; - - m_abiToDebuggerMap.insert(abi, binary); - } - } - - m_abiToDebuggerMapChanged = false; -} - -void CommonOptionsPage::writeSettings() /* static */ -{ - if (!m_abiToDebuggerMapChanged) - return; - - QSettings *settings = Core::ICore::instance()->settings(); - - settings->beginWriteArray(DEBUGGER_MAPPING_ARRAY); - - int index = 0; - for (QMap<QString, QString>::const_iterator i = m_abiToDebuggerMap.constBegin(); - i != m_abiToDebuggerMap.constEnd(); ++i) { - if (i.value().isEmpty()) - continue; - - settings->setArrayIndex(index); - ++index; - - settings->setValue(DEBUGGER_ABI_KEY, i.key()); - settings->setValue(DEBUGGER_BINARY_KEY, i.value()); - } - settings->endArray(); - - m_abiToDebuggerMapChanged = false; -} - -void CommonOptionsPage::handleToolChainAdditions(ToolChain *tc) -{ - Abi tcAbi = tc->targetAbi(); - - if (tcAbi.binaryFormat() != Abi::Format_ELF - && tcAbi.binaryFormat() != Abi::Format_Mach_O - && !( tcAbi.os() == Abi::Windows - && tcAbi.osFlavor() == Abi::Windows_msys )) - return; - if (m_abiToDebuggerMap.contains(tcAbi.toString())) - return; - - QString binary; -#ifdef Q_OS_UNIX - Abi hostAbi = Abi::hostAbi(); - if (hostAbi == tcAbi) - binary = QLatin1String("gdb"); -#endif - m_abiToDebuggerMap.insert(tc->targetAbi().toString(), binary); -} - -void CommonOptionsPage::handleToolChainRemovals(ToolChain *tc) -{ - QList<ToolChain *> tcs = ToolChainManager::instance()->toolChains(); - foreach (ToolChain *current, tcs) { - if (current->targetAbi() == tc->targetAbi()) - return; - } - - m_abiToDebuggerMap.remove(tc->targetAbi().toString()); -} - - /////////////////////////////////////////////////////////////////////// // // DebuggingHelperOptionPage |
