Add a way to retrieve CTFontRef from QFont
authorJiang Jiang <jiang.jiang@nokia.com>
Wed, 4 May 2011 14:06:06 +0000 (16:06 +0200)
committerJiang Jiang <jiang.jiang@nokia.com>
Thu, 5 May 2011 11:39:05 +0000 (13:39 +0200)
Since macFontID restricts to quint32, we have to return that in
QFont::handle.

Task-number: QTBUG-17890
Reviewed-by: Eskil
(cherry picked from commit c8f299b7e675c839b16d750cd2633a57cdd0526f)

src/gui/text/qfont_mac.cpp
src/gui/text/qfontengine_coretext_p.h

index daf68c0..044fd84 100644 (file)
@@ -43,6 +43,7 @@
 #include "qfont_p.h"
 #include "qfontengine_p.h"
 #include "qfontengine_mac_p.h"
+#include "qfontengine_coretext_p.h"
 #include "qfontinfo.h"
 #include "qfontmetrics.h"
 #include "qpaintdevice.h"
@@ -119,10 +120,10 @@ quint32 QFont::macFontID() const  // ### need 64-bit version
 // Returns an ATSUFonFamilyRef
 Qt::HANDLE QFont::handle() const
 {
-#if 0
+#ifdef QT_MAC_USE_COCOA
     QFontEngine *fe = d->engineForScript(QUnicodeTables::Common);
-    if (fe && fe->type() == QFontEngine::Mac)
-        return (Qt::HANDLE)static_cast<QFontEngineMacMulti*>(fe)->fontFamilyRef();
+    if (fe && fe->type() == QFontEngine::Multi)
+        return (Qt::HANDLE)static_cast<QCoreTextFontEngineMulti*>(fe)->macFontID();
 #endif
     return 0;
 }
index bb80a9b..3775bc6 100644 (file)
@@ -124,6 +124,8 @@ public:
                       QScriptItem *si) const;
 
     virtual const char *name() const { return "CoreText"; }
+    inline CTFontRef macFontID() const { return ctfont; }
+
 protected:
     virtual void loadEngine(int at);