]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiFontMetrics.cpp
Fix the tab ordering of GuiDocument components.
[lyx.git] / src / frontends / qt4 / GuiFontMetrics.cpp
index 01c8ce7738df4fe2c63dad5ae2ce2993e20aaf2d..799121b173703539b5c1699986d0412c36d5b71f 100644 (file)
 
 #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)
 {
 }
 
@@ -79,7 +80,7 @@ int GuiFontMetrics::lbearing(char_type c) const
        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));
@@ -104,7 +105,7 @@ int GuiFontMetrics::rbearing(char_type c) const
        } 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);
        }
 
@@ -125,7 +126,7 @@ int GuiFontMetrics::smallcapsWidth(char_type c) const
                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);
@@ -216,7 +217,7 @@ GuiFontMetrics::AscendDescend const GuiFontMetrics::fillMetricsCache(
        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