Пример #1
0
void UBThumbnailAdaptor::generateMissingThumbnails(UBDocumentProxy* proxy)
{
    int existingPageCount = proxy->pageCount();

    for (int iPageNo = 0; iPageNo < existingPageCount; ++iPageNo)
    {
        QString thumbFileName = proxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", iPageNo);

        QFile thumbFile(thumbFileName);

        if (!thumbFile.exists())
        {
            bool displayMessage = (existingPageCount > 5);

            int thumbCount = 0;

            UBGraphicsScene* scene = UBSvgSubsetAdaptor::loadScene(proxy, iPageNo);

            if (scene)
            {
                thumbCount++;

                if (displayMessage && thumbCount == 1)
                    UBApplication::showMessage(tr("Generating preview thumbnails ..."));

                persistScene(proxy->persistencePath(), scene, iPageNo);
            }

            if (displayMessage && thumbCount > 0)
                UBApplication::showMessage(tr("%1 thumbnails generated ...").arg(thumbCount));

        }
    }
}
Пример #2
0
QList<QPixmap> UBThumbnailAdaptor::load(UBDocumentProxy* proxy)
{

    QList<QPixmap> thumbnails;

    if (!proxy || proxy->persistencePath().size() == 0)
        return thumbnails;

    //compatibility with older formats (<= 4.0.b.2.0) : generate missing thumbnails

    int existingPageCount = proxy->pageCount();

    QString thumbFileName = proxy->persistencePath() +
        UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", existingPageCount);

    QFile thumbFile(thumbFileName);

    if (!thumbFile.exists())
    {
        bool displayMessage = (existingPageCount > 5);

        int thumbCount = 0;

        for(int i = 0 ; i < existingPageCount; i++)
        {
            UBGraphicsScene* scene = UBSvgSubsetAdaptor::loadScene(proxy, i);

            if (scene)
            {
                thumbCount++;

                if (displayMessage && thumbCount == 1)
                    UBApplication::showMessage(tr("Generating preview thumbnails ..."));

                persistScene(proxy->persistencePath(), scene, i);
            }
        }

        if (displayMessage && thumbCount > 0)
            UBApplication::showMessage(tr("%1 thumbnails generated ...").arg(thumbCount));

    }

    //end compatibility with older format

    bool moreToProcess = true;
    int pageCount = 0;

    while (moreToProcess) {
        pageCount++;
        QString fileName = proxy->persistencePath() +
                UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", pageCount);

        QFile file(fileName);
        if (file.exists()) {
            QPixmap pix;
            //Warning. Works only with modified Qt
            pix.load(fileName, 0, Qt::AutoColor, false);
            thumbnails.append(pix);
        } else {
            moreToProcess = false;
        }
    }

    return thumbnails;
}