src/gui/text/qfontdatabase.cpp
changeset 33 3e2da88830cd
parent 25 e24348a560a6
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
   143     uchar pitch   : 8;
   143     uchar pitch   : 8;
   144 };
   144 };
   145 
   145 
   146 struct QtFontSize
   146 struct QtFontSize
   147 {
   147 {
   148     unsigned short pixelSize;
       
   149 
       
   150 #ifdef Q_WS_X11
   148 #ifdef Q_WS_X11
   151     int count;
       
   152     QtFontEncoding *encodings;
   149     QtFontEncoding *encodings;
   153     QtFontEncoding *encodingID(int id, uint xpoint = 0, uint xres = 0,
   150     QtFontEncoding *encodingID(int id, uint xpoint = 0, uint xres = 0,
   154                                 uint yres = 0, uint avgwidth = 0, bool add = false);
   151                                 uint yres = 0, uint avgwidth = 0, bool add = false);
       
   152     unsigned short count : 16;
   155 #endif // Q_WS_X11
   153 #endif // Q_WS_X11
   156 #if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
   154 #if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
   157     QByteArray fileName;
   155     QByteArray fileName;
   158     int fileIndex;
   156     int fileIndex;
   159 #endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
   157 #endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
       
   158 
       
   159     unsigned short pixelSize : 16;
   160 };
   160 };
   161 
   161 
   162 
   162 
   163 #ifdef Q_WS_X11
   163 #ifdef Q_WS_X11
   164 QtFontEncoding *QtFontSize::encodingID(int id, uint xpoint, uint xres,
   164 QtFontEncoding *QtFontSize::encodingID(int id, uint xpoint, uint xres,
   282             return pixelSizes + i;
   282             return pixelSizes + i;
   283     }
   283     }
   284     if (!add)
   284     if (!add)
   285         return 0;
   285         return 0;
   286 
   286 
   287     if (!(count % 8)) {
   287     if (!pixelSizes) {
       
   288         // Most style have only one font size, we avoid waisting memory
       
   289         QtFontSize *newPixelSizes = (QtFontSize *)malloc(sizeof(QtFontSize));
       
   290         Q_CHECK_PTR(newPixelSizes);
       
   291         pixelSizes = newPixelSizes;
       
   292     } else if (!(count % 8) || count == 1) {
   288         QtFontSize *newPixelSizes = (QtFontSize *)
   293         QtFontSize *newPixelSizes = (QtFontSize *)
   289                      realloc(pixelSizes,
   294                      realloc(pixelSizes,
   290                               (((count+8) >> 3) << 3) * sizeof(QtFontSize));
   295                               (((count+8) >> 3) << 3) * sizeof(QtFontSize));
   291         Q_CHECK_PTR(newPixelSizes);
   296         Q_CHECK_PTR(newPixelSizes);
   292         pixelSizes = newPixelSizes;
   297         pixelSizes = newPixelSizes;
   406 #endif
   411 #endif
   407 #if !defined(QWS) && defined(Q_OS_MAC)
   412 #if !defined(QWS) && defined(Q_OS_MAC)
   408     bool fixedPitchComputed : 1;
   413     bool fixedPitchComputed : 1;
   409 #endif
   414 #endif
   410 #ifdef Q_WS_X11
   415 #ifdef Q_WS_X11
   411     bool symbol_checked;
   416     bool symbol_checked : 1;
   412 #endif
   417 #endif
   413 
   418 
   414     QString name;
   419     QString name;
   415 #if defined(Q_WS_X11) ||   defined(Q_OS_SYMBIAN) && !defined(QT_NO_FREETYPE)
   420 #if defined(Q_WS_X11) ||   defined(Q_OS_SYMBIAN) && !defined(QT_NO_FREETYPE)
   416     QByteArray fontFilename;
   421     QByteArray fontFilename;