#include "insets/Inset.h"
-#include <boost/assert.hpp>
+#include "support/lassert.h"
using namespace std;
namespace lyx {
namespace frontend {
+namespace {
/**
* Convert a UCS4 character into a QChar.
* This is a hack (it does only make sense for the common part of the UCS4
* and UTF16 encodings) and should not be used.
* This does only exist because of performance reasons (a real conversion
* using iconv is too slow on windows).
- */
-static inline QChar const ucs4_to_qchar(char_type const ucs4)
+ *
+ * This is no real conversion but a simple cast in reality. This is the reason
+ * why this works well for symbol fonts used in mathed too, even though
+ * these are not real ucs4 characters. These are codepoints in the
+ * modern fonts used, nothing unicode related.
+ * See comment in QLPainter::text() for more explanation.
+ **/
+inline QChar const ucs4_to_qchar(char_type const ucs4)
{
- BOOST_ASSERT(is_utf16(ucs4));
+ LASSERT(is_utf16(ucs4), /**/);
return QChar(static_cast<unsigned short>(ucs4));
}
+} // anon namespace
-// Caution: When using ucs4_to_qchar() in these methods, this is no
-// real conversion but a simple cast in reality. This is the reason
-// why this works well for symbol fonts used in mathed too, even though
-// these are not real ucs4 characters. These are codepoints in the
-// modern fonts used, nothing unicode related.
-// See comment in QLPainter::text() for more explanation.
-
GuiFontMetrics::GuiFontMetrics(QFont const & font)
-: metrics_(font), smallcaps_metrics_(font), smallcaps_shape_(false)
+: metrics_(font, 0), smallcaps_metrics_(font), smallcaps_shape_(false)
{
}
GuiFontMetrics::GuiFontMetrics(QFont const & font, QFont const & smallcaps_font)
-: metrics_(font), smallcaps_metrics_(smallcaps_font), smallcaps_shape_(true)
+: metrics_(font, 0), smallcaps_metrics_(smallcaps_font), smallcaps_shape_(true)
{
}
if (!is_utf16(c))
// FIXME: QFontMetrics::leftBearingdoes not support the
// full unicode range. Once it does, we could use:
- //return metrics_.leftBearing(toqstr(docstring(1,c)));
+ //return metrics_.leftBearing(toqstr(docstring(1, c)));
return 0;
return metrics_.leftBearing(ucs4_to_qchar(c));
} else {
// FIXME: QFontMetrics::leftBearing does not support the
// full unicode range. Once it does, we could use:
- // metrics_.rightBearing(toqstr(docstring(1,c)));
+ // metrics_.rightBearing(toqstr(docstring(1, c)));
value = width(c);
}
else
return metrics_.width(qc);
} else {
- QString const s = toqstr(docstring(1,c));
+ QString const s = toqstr(docstring(1, c));
QString const us = s.toUpper();
if (s != us)
return smallcaps_metrics_.width(us);
if (is_utf16(c))
r = metrics_.boundingRect(ucs4_to_qchar(c));
else
- r = metrics_.boundingRect(toqstr(docstring(1,c)));
+ r = metrics_.boundingRect(toqstr(docstring(1, c)));
AscendDescend ad = { -r.top(), r.bottom() + 1};
// We could as well compute the width but this is not really