From cb95fff1c7dfcfc00b1bf93d18b80485aca9dd0c Mon Sep 17 00:00:00 2001 From: Jani Heikkinen Date: Mon, 16 Feb 2015 11:44:46 +0200 Subject: Fixed license headers Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen --- src/platformsupport/cglconvenience/cglconvenience.mm | 2 +- src/platformsupport/clipboard/qmacmime.mm | 2 +- src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm | 2 +- src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm | 2 +- src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/cglconvenience/cglconvenience.mm b/src/platformsupport/cglconvenience/cglconvenience.mm index d0663078f5..6b0a91e13f 100644 --- a/src/platformsupport/cglconvenience/cglconvenience.mm +++ b/src/platformsupport/cglconvenience/cglconvenience.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. diff --git a/src/platformsupport/clipboard/qmacmime.mm b/src/platformsupport/clipboard/qmacmime.mm index a1a91e5347..ffa548bf83 100644 --- a/src/platformsupport/clipboard/qmacmime.mm +++ b/src/platformsupport/clipboard/qmacmime.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. diff --git a/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm b/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm index fe3dfba635..bd0f89ba2f 100644 --- a/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm +++ b/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm index 58c275c0a8..f7165bec91 100644 --- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm index 123a2c4c79..48ec78951d 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtGui module of the Qt Toolkit. -- cgit v1.2.3 From 23e9b57e3d261f66168a8a28ccb8e5c886b4841f Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 19 Feb 2015 13:47:22 +0100 Subject: D-Bus system tray: properly check whether StatusNotifierHost available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "org.kde.StatusNotifierWatcher" is just a watcher/helper, whereas the actual systray object is "org.kde.StatusNotifierHost-$PID". The org.kde.StatusNotifierWatcher.IsStatusNotifierHostRegistered property can tell us whether there is an actual system tray. Also renamed the accessor to isStatusNotifierHostRegistered since we are checking for the host, and also because it can be confusing that it's a member of QDBusMenuConnection if the name isn't clear. See also KDE bug 339707 Change-Id: I218c5357b9cc5a62e5cc07abe980893b826f98f4 Reviewed-by: Martin Klapetek Reviewed-by: Jørgen Lind Reviewed-by: Dmitry Shachnev --- src/platformsupport/dbusmenu/qdbusmenuconnection.cpp | 10 +++++----- src/platformsupport/dbusmenu/qdbusmenuconnection_p.h | 4 ++-- src/platformsupport/dbustray/qdbustrayicon.cpp | 7 ++----- src/platformsupport/themes/genericunix/qgenericunixthemes.cpp | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp index a8211f63ce..73793d7497 100644 --- a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp +++ b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp @@ -63,14 +63,14 @@ QDBusMenuConnection::QDBusMenuConnection(QObject *parent) : QObject(parent) , m_connection(QDBusConnection::sessionBus()) , m_dbusWatcher(new QDBusServiceWatcher(StatusNotifierWatcherService, m_connection, QDBusServiceWatcher::WatchForRegistration, this)) - , m_watcherRegistered(false) + , m_statusNotifierHostRegistered(false) { #ifndef QT_NO_SYSTEMTRAYICON - // Start monitoring if any known tray-related services are registered. - if (m_connection.interface()->isServiceRegistered(StatusNotifierWatcherService)) - m_watcherRegistered = true; + QDBusInterface systrayHost(StatusNotifierWatcherService, StatusNotifierWatcherPath, StatusNotifierWatcherService, m_connection); + if (systrayHost.isValid() && systrayHost.property("IsStatusNotifierHostRegistered").toBool()) + m_statusNotifierHostRegistered = true; else - qCDebug(qLcMenu) << "failed to find service" << StatusNotifierWatcherService; + qCDebug(qLcMenu) << "StatusNotifierHost is not registered"; #endif } diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h index 377999c365..8d230bd3bf 100644 --- a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h +++ b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h @@ -63,7 +63,7 @@ class QDBusMenuConnection : public QObject public: QDBusMenuConnection(QObject *parent = 0); QDBusConnection connection() const { return m_connection; } - bool isWatcherRegistered() const { return m_watcherRegistered; } + bool isStatusNotifierHostRegistered() const { return m_statusNotifierHostRegistered; } #ifndef QT_NO_SYSTEMTRAYICON bool registerTrayIcon(QDBusTrayIcon *item); bool unregisterTrayIcon(QDBusTrayIcon *item); @@ -80,7 +80,7 @@ private Q_SLOTS: private: QDBusConnection m_connection; QDBusServiceWatcher *m_dbusWatcher; - bool m_watcherRegistered; + bool m_statusNotifierHostRegistered; }; QT_END_NAMESPACE diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp index 18e72d852a..d85d29a5c7 100644 --- a/src/platformsupport/dbustray/qdbustrayicon.cpp +++ b/src/platformsupport/dbustray/qdbustrayicon.cpp @@ -281,11 +281,8 @@ void QDBusTrayIcon::notificationClosed(uint id, uint reason) bool QDBusTrayIcon::isSystemTrayAvailable() const { QDBusMenuConnection * conn = const_cast(this)->dBusConnection(); - - // If the KDE watcher service is registered, we must be on a desktop - // where a StatusNotifier-conforming system tray exists. - qCDebug(qLcTray) << conn->isWatcherRegistered(); - return conn->isWatcherRegistered(); + qCDebug(qLcTray) << conn->isStatusNotifierHostRegistered(); + return conn->isStatusNotifierHostRegistered(); } QT_END_NAMESPACE diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index 3fffec0dfd..ba328bfb41 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -98,7 +98,7 @@ static bool isDBusTrayAvailable() { static bool dbusTrayAvailableKnown = false; if (!dbusTrayAvailableKnown) { QDBusMenuConnection conn; - if (conn.isWatcherRegistered()) + if (conn.isStatusNotifierHostRegistered()) dbusTrayAvailable = true; dbusTrayAvailableKnown = true; qCDebug(qLcTray) << "D-Bus tray available:" << dbusTrayAvailable; -- cgit v1.2.3 From 9bf8b2a412b77fa01e88c3f9ad9a9e7792cd4ac5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 16 Feb 2015 15:46:55 +0100 Subject: Do not attempt to unregister an unregistered dbus service If a QSystemTrayIcon is created but never shown, it will trigger a warning on exit when it fails to unregister. This patch ensures we only try to unregister if the service was registered in the first place. Change-Id: I0e245d19be55c58aea180dbcbe5215e738d05280 Reviewed-by: Shawn Rutledge --- src/platformsupport/dbustray/qdbustrayicon.cpp | 7 +++++-- src/platformsupport/dbustray/qdbustrayicon_p.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp index d85d29a5c7..61849024da 100644 --- a/src/platformsupport/dbustray/qdbustrayicon.cpp +++ b/src/platformsupport/dbustray/qdbustrayicon.cpp @@ -77,6 +77,7 @@ QDBusTrayIcon::QDBusTrayIcon() , m_status(m_defaultStatus) , m_tempIcon(Q_NULLPTR) , m_tempAttentionIcon(Q_NULLPTR) + , m_registered(false) { qCDebug(qLcTray); if (instanceCount == 1) { @@ -101,15 +102,17 @@ QDBusTrayIcon::~QDBusTrayIcon() void QDBusTrayIcon::init() { qCDebug(qLcTray) << "registering" << m_instanceId; - dBusConnection()->registerTrayIcon(this); + m_registered = dBusConnection()->registerTrayIcon(this); } void QDBusTrayIcon::cleanup() { qCDebug(qLcTray) << "unregistering" << m_instanceId; - dBusConnection()->unregisterTrayIcon(this); + if (m_registered) + dBusConnection()->unregisterTrayIcon(this); delete m_dbusConnection; m_dbusConnection = Q_NULLPTR; + m_registered = false; } void QDBusTrayIcon::activate(int x, int y) diff --git a/src/platformsupport/dbustray/qdbustrayicon_p.h b/src/platformsupport/dbustray/qdbustrayicon_p.h index d3d1c5bb8f..78dfae7c02 100644 --- a/src/platformsupport/dbustray/qdbustrayicon_p.h +++ b/src/platformsupport/dbustray/qdbustrayicon_p.h @@ -156,6 +156,7 @@ private: QTimer m_attentionTimer; bool m_isRequestingAttention; bool m_hasMenu; + bool m_registered; }; QT_END_NAMESPACE -- cgit v1.2.3 From 571908f7fc8f5e4ef9a4dfd90102566f6f0fcad2 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Fri, 13 Feb 2015 22:20:12 +0100 Subject: QCoreTextFontEngine: Cache face_id. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This involves a significant amount of memory allocation, which made it rather more expensive than one would expect. The FT engine also caches face id, so this seems like a reasonable prospect. Increases delegates_text by another few ops/frame. Change-Id: If31e6b54478e4caf46a3a12a9ac45254a1f01525 Reviewed-by: Konstantin Ritt Reviewed-by: Morten Johan Sørvig --- .../fontdatabases/mac/qfontengine_coretext.mm | 12 +++++------- .../fontdatabases/mac/qfontengine_coretext_p.h | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm index 48ec78951d..64de364bfb 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm @@ -162,6 +162,10 @@ void QCoreTextFontEngine::init() Q_ASSERT(ctfont != NULL); Q_ASSERT(cgFont != NULL); + face_id.index = 0; + QCFString name = CTFontCopyName(ctfont, kCTFontUniqueNameKey); + face_id.filename = QCFString::toQString(name).toUtf8(); + QCFString family = CTFontCopyFamilyName(ctfont); fontDef.family = family; @@ -696,13 +700,7 @@ void QCoreTextFontEngine::recalcAdvances(QGlyphLayout *glyphs, QFontEngine::Shap QFontEngine::FaceId QCoreTextFontEngine::faceId() const { - FaceId result; - result.index = 0; - - QCFString name = CTFontCopyName(ctfont, kCTFontUniqueNameKey); - result.filename = QCFString::toQString(name).toUtf8(); - - return result; + return face_id; } bool QCoreTextFontEngine::canRender(const QChar *string, int len) const diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h index 4a6c8e57e6..88ce2c726d 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h @@ -135,6 +135,7 @@ private: int synthesisFlags; CGAffineTransform transform; QFixed avgCharWidth; + QFontEngine::FaceId face_id; }; CGAffineTransform qt_transform_from_fontdef(const QFontDef &fontDef); -- cgit v1.2.3