util/s60theme/s60themeconvert.cpp
changeset 29 b72c6db6890b
parent 18 2f34d5167611
child 30 5dc02b23752f
equal deleted inserted replaced
25:e24348a560a6 29:b72c6db6890b
    43 
    43 
    44 #include <QtGui>
    44 #include <QtGui>
    45 #include <QtWebKit>
    45 #include <QtWebKit>
    46 
    46 
    47 static const int pictureSize = 256;
    47 static const int pictureSize = 256;
       
    48 static const char* const msgPartNotInTdf = "  Warning: The .tdf file does not have a part for ";
       
    49 static const char* const msgSvgNotFound = "  Fatal: Could not find part .svg ";
    48 
    50 
    49 void dumpPartPictures(const QHash<QString, QPicture> &partPictures) {
    51 void dumpPartPictures(const QHash<QString, QPicture> &partPictures) {
    50     foreach (const QString &partKey, partPictures.keys()) {
    52     foreach (const QString &partKey, partPictures.keys()) {
    51         QPicture partPicture = partPictures.value(partKey);
    53         QPicture partPicture = partPictures.value(partKey);
    52         qDebug() << partKey << partPicture.boundingRect();
    54         qDebug() << partKey << partPicture.boundingRect();
    82 };
    84 };
    83 
    85 
    84 WebKitSVGRenderer::WebKitSVGRenderer(QWidget *parent)
    86 WebKitSVGRenderer::WebKitSVGRenderer(QWidget *parent)
    85     : QWebView(parent)
    87     : QWebView(parent)
    86 {
    88 {
       
    89 
    87     connect(this, SIGNAL(loadFinished(bool)), SLOT(loadFinishedSlot(bool)));
    90     connect(this, SIGNAL(loadFinished(bool)), SLOT(loadFinishedSlot(bool)));
    88     setFixedSize(pictureSize, pictureSize);
    91     setFixedSize(pictureSize, pictureSize);
    89     QPalette pal = palette();
    92     QPalette pal = palette();
    90     pal.setColor(QPalette::Base, Qt::transparent);
    93     pal.setColor(QPalette::Base, Qt::transparent);
    91     setPalette(pal);
    94     setPalette(pal);
   200     bool success = parseTdfFile(tdfFile, parsedPartSvgs, parsedColors);
   203     bool success = parseTdfFile(tdfFile, parsedPartSvgs, parsedColors);
   201     if (!success)
   204     if (!success)
   202         return false;
   205         return false;
   203     const QString tdfBasePath = QFileInfo(tdfFile).absolutePath();
   206     const QString tdfBasePath = QFileInfo(tdfFile).absolutePath();
   204     WebKitSVGRenderer renderer;
   207     WebKitSVGRenderer renderer;
   205     foreach(const QString& partKey, parsedPartSvgs.keys()) {
   208     foreach (const QString &partKey, QS60Style::partKeys()) {
   206         const QString tdfFullName =
   209         qDebug() << partKey;
   207             tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey);
   210         QString tdfFullName;
   208         if (!QFile(tdfFullName).exists())
   211         if (parsedPartSvgs.contains(partKey)) {
   209             qWarning() << "Could not find part:" << parsedPartSvgs.value(partKey);
   212             tdfFullName = tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey);
       
   213         } else {
       
   214             qWarning() << msgPartNotInTdf << partKey;
       
   215             tdfFullName = tdfBasePath + QDir::separator() + partKey + QLatin1String(".svg");
       
   216         }
       
   217         if (!QFile(tdfFullName).exists()) {
       
   218             qWarning() << msgSvgNotFound << QDir::toNativeSeparators(tdfFullName);
       
   219             return false;
       
   220         }
   210         const QPicture partPicture = renderer.svgToQPicture(tdfFullName);
   221         const QPicture partPicture = renderer.svgToQPicture(tdfFullName);
   211         parsedPartPictures.insert(partKey, partPicture);
   222         parsedPartPictures.insert(partKey, partPicture);
   212     }
   223     }
   213 //    dumpPartPictures(parsedPartPictures);
   224 //    dumpPartPictures(parsedPartPictures);
   214 //    dumpColors(colors);
   225 //    dumpColors(colors);
   274     WebKitSVGRenderer renderer;
   285     WebKitSVGRenderer renderer;
   275     foreach (const QString &partKey, QS60Style::partKeys()) {
   286     foreach (const QString &partKey, QS60Style::partKeys()) {
   276         const QString partFileName = partKey + QLatin1String(".svg");		
   287         const QString partFileName = partKey + QLatin1String(".svg");		
   277         const QString partFile(dir.absolutePath() + QDir::separator() + partFileName);
   288         const QString partFile(dir.absolutePath() + QDir::separator() + partFileName);
   278         if (!QFile::exists(partFile)) {
   289         if (!QFile::exists(partFile)) {
   279             qWarning() << "Could not find part:" << partFileName;
   290             qWarning() << msgSvgNotFound << partFileName;
   280             continue;
   291             return false;
   281         }
   292         }
   282         const QPicture partPicture = renderer.svgToQPicture(partFile);
   293         const QPicture partPicture = renderer.svgToQPicture(partFile);
   283         partPictures.insert(partKey, partPicture);
   294         partPictures.insert(partKey, partPicture);
   284     }
   295     }
   285     return true;
   296     return true;