Browse Source
Merge pull request #4643
292cc07
qt: fix unicode character display on osx when building with 10.7 sdk (Cory Fields)
metaverse
Wladimir J. van der Laan
10 years ago
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
3 changed files with
34 additions and
0 deletions
-
src/qt/bitcoin.cpp
-
src/qt/guiutil.cpp
-
src/qt/guiutil.h
|
|
@ -489,6 +489,9 @@ int main(int argc, char *argv[]) |
|
|
|
|
|
|
|
Q_INIT_RESOURCE(bitcoin); |
|
|
|
Q_INIT_RESOURCE(bitcoin_locale); |
|
|
|
|
|
|
|
GUIUtil::SubstituteFonts(); |
|
|
|
|
|
|
|
BitcoinApplication app(argc, argv); |
|
|
|
#if QT_VERSION > 0x050100 |
|
|
|
// Generate high-dpi pixmaps
|
|
|
|
|
|
@ -63,6 +63,13 @@ |
|
|
|
static boost::filesystem::detail::utf8_codecvt_facet utf8; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(Q_OS_MAC) |
|
|
|
extern double NSAppKitVersionNumber; |
|
|
|
#if !defined(NSAppKitVersionNumber10_9) |
|
|
|
#define NSAppKitVersionNumber10_9 1265 |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
namespace GUIUtil { |
|
|
|
|
|
|
|
QString dateTimeStr(const QDateTime &date) |
|
|
@ -376,6 +383,26 @@ ToolTipToRichTextFilter::ToolTipToRichTextFilter(int size_threshold, QObject *pa |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void SubstituteFonts() |
|
|
|
{ |
|
|
|
#if defined(Q_OS_MAC) |
|
|
|
// Background:
|
|
|
|
// OSX's default font changed in 10.9 and QT is unable to find it with its
|
|
|
|
// usual fallback methods when building against the 10.7 sdk or lower.
|
|
|
|
// The 10.8 SDK added a function to let it find the correct fallback font.
|
|
|
|
// If this fallback is not properly loaded, some characters may fail to
|
|
|
|
// render correctly.
|
|
|
|
//
|
|
|
|
// Solution: If building with the 10.7 SDK or lower and the user's platform
|
|
|
|
// is 10.9 or higher at runtime, substitute the correct font. This needs to
|
|
|
|
// happen before the QApplication is created.
|
|
|
|
#if defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8 |
|
|
|
if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_9) |
|
|
|
QFont::insertSubstitution(".Lucida Grande UI", "Lucida Grande"); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
bool ToolTipToRichTextFilter::eventFilter(QObject *obj, QEvent *evt) |
|
|
|
{ |
|
|
|
if(evt->type() == QEvent::ToolTipChange) |
|
|
|
|
|
@ -106,6 +106,10 @@ namespace GUIUtil |
|
|
|
representation if needed. This assures that Qt can word-wrap long tooltip messages. |
|
|
|
Tooltips longer than the provided size threshold (in characters) are wrapped. |
|
|
|
*/ |
|
|
|
|
|
|
|
// Replace invalid default fonts with known good ones
|
|
|
|
void SubstituteFonts(); |
|
|
|
|
|
|
|
class ToolTipToRichTextFilter : public QObject |
|
|
|
{ |
|
|
|
Q_OBJECT |
|
|
|