summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/qt4target.cpp
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2010-02-23 16:52:03 +0100
committercon <qtc-committer@nokia.com>2010-02-23 16:52:44 +0100
commit04d90d9563f347af36db08602535da66ed1963aa (patch)
treea0b42f895ba5d7993c549b918ca346b1e1d716c3 /src/plugins/qt4projectmanager/qt4target.cpp
parentc3578f307db440ffb8c9fc115757c0dcd4ef2c92 (diff)
downloadqt-creator-04d90d9563f347af36db08602535da66ed1963aa.tar.gz
Show target overlay icon only in the active target button.
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4target.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qt4target.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 36c09cb8fa..b874c903e1 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -218,7 +218,7 @@ Qt4Target::Qt4Target(Qt4Project *parent, const QString &id) :
this, SLOT(updateToolTipAndIcon()));
setDisplayName(displayNameForId(id));
- updateToolTipAndIcon();
+ setIcon(iconForId(id));
}
Qt4Target::~Qt4Target()
@@ -407,7 +407,7 @@ bool Qt4Target::fromMap(const QVariantMap &map)
return false;
setDisplayName(displayNameForId(id()));
- updateToolTipAndIcon();
+ setIcon(iconForId(id()));
return true;
}
@@ -455,22 +455,14 @@ void Qt4Target::changeTargetInformation()
void Qt4Target::updateToolTipAndIcon()
{
+ static const int TARGET_OVERLAY_ORIGINAL_SIZE = 32;
if (const S60DeviceRunConfiguration *s60DeviceRc = qobject_cast<S60DeviceRunConfiguration *>(activeRunConfiguration())) {
- QPixmap pixmap(Core::Constants::TARGET_ICON_SIZE, Core::Constants::TARGET_ICON_SIZE);
- pixmap.fill(Qt::transparent);
- QPainter painter(&pixmap);
- const QIcon &icon = iconForId(id());
- QSize actualSize = icon.actualSize(QSize(Core::Constants::TARGET_ICON_SIZE, Core::Constants::TARGET_ICON_SIZE));
- painter.drawPixmap((Core::Constants::TARGET_ICON_SIZE-actualSize.width())/2,
- (Core::Constants::TARGET_ICON_SIZE-actualSize.height())/2,
- icon.pixmap(Core::Constants::TARGET_ICON_SIZE));
-
const SymbianUtils::SymbianDeviceManager *sdm = SymbianUtils::SymbianDeviceManager::instance();
const int deviceIndex = sdm->findByPortName(s60DeviceRc->serialPortName());
+ QPixmap overlay;
if (deviceIndex == -1) {
setToolTip(tr("<b>Device:</b> Not connected"));
- painter.drawPixmap(Core::Constants::TARGET_ICON_SIZE - m_disconnectedPixmap.width(),
- m_disconnectedPixmap.height(), m_disconnectedPixmap);
+ overlay = m_disconnectedPixmap;
} else {
// device connected
const SymbianUtils::SymbianDevice device = sdm->devices().at(deviceIndex);
@@ -478,12 +470,20 @@ void Qt4Target::updateToolTipAndIcon()
tr("<b>Device:</b> %1").arg(device.friendlyName()) :
tr("<b>Device:</b> %1, %2").arg(device.friendlyName(), device.additionalInformation());
setToolTip(tooltip);
- painter.drawPixmap(Core::Constants::TARGET_ICON_SIZE - m_connectedPixmap.width(),
- m_connectedPixmap.height(), m_connectedPixmap);
+ overlay = m_connectedPixmap;
}
- setIcon(QIcon(pixmap));
- return;
+ double factor = Core::Constants::TARGET_ICON_SIZE / (double)TARGET_OVERLAY_ORIGINAL_SIZE;
+ QSize overlaySize(overlay.size().width()*factor, overlay.size().height()*factor);
+ QPixmap pixmap(Core::Constants::TARGET_ICON_SIZE, Core::Constants::TARGET_ICON_SIZE);
+ pixmap.fill(Qt::transparent);
+ QPainter painter(&pixmap);
+ painter.drawPixmap(Core::Constants::TARGET_ICON_SIZE - overlaySize.width(),
+ Core::Constants::TARGET_ICON_SIZE - overlaySize.height(),
+ overlay.scaled(overlaySize));
+
+ setOverlayIcon(QIcon(pixmap));
+ } else {
+ setToolTip(QString());
+ setOverlayIcon(QIcon());
}
- setToolTip(QString());
- setIcon(iconForId(id()));
}