]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiFontLoader.h
do what the FIXME suggested
[lyx.git] / src / frontends / qt4 / GuiFontLoader.h
index 7329cc2ac21b6c1dd209fd88546f3302e453eaf3..b48bfd4cfd18351dd84d92c4d2b59304ac2c69cf 100644 (file)
 
 #include "frontends/FontLoader.h"
 
+#include "FontInfo.h"
+
 #include "GuiFontMetrics.h"
 
 #include "Encoding.h"
-#include "Font.h"
 
 #include <QFont>
 
+#include <boost/assert.hpp>
+
 namespace lyx {
 namespace frontend {
 
@@ -28,15 +31,15 @@ namespace frontend {
  * Qt font loader for LyX. Matches Fonts against
  * actual QFont instances, and also caches metrics.
  */
-class QLFontInfo
+class GuiFontInfo
 {
 public:
-       QLFontInfo(Font const & f);
+       GuiFontInfo(FontInfo const & f);
 
        /// The font instance
        QFont font;
        /// Metrics on the font
-       boost::scoped_ptr<GuiFontMetrics> metrics;
+       GuiFontMetrics metrics;
 };
 
 
@@ -48,37 +51,38 @@ public:
        GuiFontLoader();
 
        /// Destructor
-       ~GuiFontLoader();
+       virtual ~GuiFontLoader();
 
        virtual void update();
-       virtual bool available(Font const & f);
-       inline virtual FontMetrics const & metrics(Font const & f) {
-               return *fontinfo(f).metrics.get();
+       virtual bool available(FontInfo const & f);
+       inline virtual FontMetrics const & metrics(FontInfo const & f) {
+               return fontinfo(f).metrics;
        }
 
-       /// Get the QFont for this Font
-       QFont const & get(Font const & f) {
+       /// Get the QFont for this FontInfo
+       QFont const & get(FontInfo const & f) {
                return fontinfo(f).font;
        }
 
 
        /// Get font info (font + metrics) for the given LyX font.
-       QLFontInfo & fontinfo(Font const & f) {
-               // fi is a reference to the pointer type (QLFontInfo *) in the
+       GuiFontInfo & fontinfo(FontInfo const & f) {
+               BOOST_ASSERT(f.family() < NUM_FAMILIES);
+               BOOST_ASSERT(f.series() < 2);
+               BOOST_ASSERT(f.realShape() < 4);
+               BOOST_ASSERT(f.size() < 10);
+               // fi is a reference to the pointer type (GuiFontInfo *) in the
                // fontinfo_ table.
-               QLFontInfo * & fi =
+               GuiFontInfo * & fi =
                        fontinfo_[f.family()][f.series()][f.realShape()][f.size()];
                if (!fi)
-                       fi = new QLFontInfo(f);
+                       fi = new GuiFontInfo(f);
                return *fi;
        }
 
 private:
-#if QT_VERSION >= 0x040200
-       int * fontID;
-#endif
        /// BUTT ugly !
-       QLFontInfo * fontinfo_[Font::NUM_FAMILIES][2][4][10];
+       GuiFontInfo * fontinfo_[NUM_FAMILIES][2][4][10];
 };