summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/kitchooser.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-09-05 10:55:05 +0200
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-09-05 15:49:20 +0200
commitc3f50e3192cc36a0ddc938565ef5af0c00788146 (patch)
treee11d43378316515cb79cd2ab9f8ec6d025727315 /src/plugins/projectexplorer/kitchooser.cpp
parentaf6bbc442ecb60d2ddcb37752215f6a2e3e5bea4 (diff)
downloadqt-creator-c3f50e3192cc36a0ddc938565ef5af0c00788146.tar.gz
KitChooser: Introduce virtual methods for Debugger.
Introduce virtual methods such that it is possible to write derived classes for specific KitInformation classes, allowing for filtering and setting text and tooltip. Remove debugging-specific code of KitChooser from the ProjectExplorer. Move populate() away from the constructor as not to call virtuals from it. Implement DebuggerKitChooser. It should no longer be possible to to choose an invalid kit for debugging from the debugger starter dialogs. Add a protected constructor to DeviceProcessesDialog allowing to pass a KitChooser. Change-Id: I8c683a2da7d69bfbccdc08213cb47d69a0df8b3e Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/projectexplorer/kitchooser.cpp')
-rw-r--r--src/plugins/projectexplorer/kitchooser.cpp43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/plugins/projectexplorer/kitchooser.cpp b/src/plugins/projectexplorer/kitchooser.cpp
index 8273990ed7..3d75c370a7 100644
--- a/src/plugins/projectexplorer/kitchooser.cpp
+++ b/src/plugins/projectexplorer/kitchooser.cpp
@@ -38,42 +38,43 @@
namespace ProjectExplorer {
-KitChooser::KitChooser(QWidget *parent, unsigned flags) :
+KitChooser::KitChooser(QWidget *parent) :
QComboBox(parent)
{
- populate(flags);
- onCurrentIndexChanged(currentIndex());
connect(this, SIGNAL(currentIndexChanged(int)), SLOT(onCurrentIndexChanged(int)));
}
void KitChooser::onCurrentIndexChanged(int index)
{
if (Kit *kit = kitAt(index))
- setToolTip(kit->toHtml());
+ setToolTip(kitToolTip(kit));
else
setToolTip(QString());
}
-void KitChooser::populate(unsigned flags)
+bool KitChooser::kitMatches(const Kit *k) const
+{
+ return k->isValid();
+}
+
+QString KitChooser::kitText(const Kit *k) const
+{
+ return k->displayName();
+}
+
+QString KitChooser::kitToolTip(Kit *k) const
+{
+ return k->toHtml();
+}
+
+void KitChooser::populate()
{
clear();
- const Abi hostAbi = Abi::hostAbi();
foreach (Kit *kit, KitManager::instance()->kits()) {
- if (!kit->isValid() && !(flags & IncludeInvalidKits))
- continue;
- ToolChain *tc = ToolChainKitInformation::toolChain(kit);
- if (!tc)
- continue;
- const Abi abi = tc->targetAbi();
- if ((flags & HostAbiOnly) && hostAbi.os() != abi.os())
- continue;
- const QString debuggerCommand = kit->value(Core::Id("Debugger.Information")).toString();
- if ((flags & HasDebugger) && debuggerCommand.isEmpty())
- continue;
- const QString completeBase = QFileInfo(debuggerCommand).completeBaseName();
- const QString name = tr("%1 (%2)").arg(kit->displayName(), completeBase);
- addItem(name, qVariantFromValue(kit->id()));
- setItemData(count() - 1, kit->toHtml(), Qt::ToolTipRole);
+ if (kitMatches(kit)) {
+ addItem(kitText(kit), qVariantFromValue(kit->id()));
+ setItemData(count() - 1, kitToolTip(kit), Qt::ToolTipRole);
+ }
}
setEnabled(count() > 1);
}