diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-02 21:21:15 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-02 21:21:15 +0000 |
commit | 96900dbce3aaa1fcac74a07a71482c5c6fcd3cab (patch) | |
tree | bf3fc68d0dcc660fce0e21171373a2d4e2395707 /kdeui/kfontcombo.cpp | |
parent | 5f99bff82d3413803bcc652999f4f631058179d6 (diff) | |
download | tdelibs-96900dbce3aaa1fcac74a07a71482c5c6fcd3cab.tar.gz tdelibs-96900dbce3aaa1fcac74a07a71482c5c6fcd3cab.zip |
* Large set of SuSE patches to fix bugs and add functionality
* kdemm is included but not used by knotify as it does not work out of the box
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1171141 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdeui/kfontcombo.cpp')
-rw-r--r-- | kdeui/kfontcombo.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kdeui/kfontcombo.cpp b/kdeui/kfontcombo.cpp index 4752a0bd1..ea123c38a 100644 --- a/kdeui/kfontcombo.cpp +++ b/kdeui/kfontcombo.cpp @@ -20,6 +20,7 @@ #include <tqfontdatabase.h> #include <tqlistbox.h> #include <tqpainter.h> +#include <tqregexp.h> #include <kcharsets.h> #include <kconfig.h> @@ -29,6 +30,18 @@ #include "kfontcombo.h" #include "kfontcombo.moc" +#include <ft2build.h> +#include FT_FREETYPE_H +#include <fontconfig/fontconfig.h> +#include <X11/Xlib.h> +#include <X11/Xatom.h> +#include <X11/Intrinsic.h> +#include <X11/StringDefs.h> +#include <X11/Shell.h> + +#include <X11/Xft/Xft.h> + + struct KFontComboPrivate { KFontComboPrivate() @@ -227,6 +240,22 @@ void KFontCombo::setCurrentFont(const TQString &family) return; } } + + // nothing matched yet, try a fontconfig reverse lookup and + // check again to solve an alias + FcPattern *pattern = NULL; + FcConfig *config = NULL; + TQString realFamily; + TQRegExp regExp("[-:]"); + pattern = FcNameParse( (unsigned char*) family.ascii() ); + FcDefaultSubstitute(pattern); + FcConfigSubstitute (config, pattern, FcMatchPattern); + pattern = FcFontMatch(NULL, pattern, NULL); + realFamily = (char*)FcNameUnparse(pattern); + realFamily.remove(realFamily.find(regExp), realFamily.length()); + + if ( !realFamily.isEmpty() && realFamily != family ) + setCurrentFont( realFamily ); } void KFontCombo::slotModified( int ) |