void SpeedDial::loadThumbnail(const QString &url) { if (url.isEmpty()) { return; } PageThumbnailer* thumbnailer = new PageThumbnailer(this); thumbnailer->setUrl(QUrl(url)); connect(thumbnailer, SIGNAL(thumbnailCreated(QPixmap)), this, SLOT(thumbnailCreated(QPixmap))); thumbnailer->start(); }
void TsEnv::createThumbnail(const QPixmap& source, int angle, const void* userData) { try { QPixmap thumbnailSource; const Qt::Axis rotationAxis(Qt::ZAxis); if ( 270 <= angle ) { thumbnailSource = source.transformed(QTransform().rotate(270.0f, rotationAxis), Qt::SmoothTransformation); } else if( 180 <= angle ) { thumbnailSource = source.transformed(QTransform().rotate(180.0f, rotationAxis), Qt::SmoothTransformation); } else if( 90 <= angle ) { thumbnailSource = source.transformed(QTransform().rotate(90.0f, rotationAxis), Qt::SmoothTransformation); } else { thumbnailSource = source; } const QRect expectedRect(0, 0, thumbnailWidth, thumbnailHeight); const QPixmap thumbanail(thumbnailSource.scaled(expectedRect.size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)); emit thumbnailCreated(thumbanail.copy(expectedRect), userData); } catch (...) { } }
QString Turks::createThumbnail(QString imgPath, int width, int height, QString javascriptOnResult) { ThumbnailWorker *thumbWorker = new ThumbnailWorker(imgPath, width, height, javascriptOnResult); thumbWorker->setAutoDelete(false); QThreadPool::globalInstance()->start(thumbWorker); QString thumbnailPath = thumbWorker->thumbnailPath(); connect(thumbWorker, SIGNAL(thumbnailCreated(QString)), this, SLOT(evaluateJavascript(QString))); thumbnails.append(thumbnailPath); return thumbnailPath; }
void StartPageModel::reloadTile(const QModelIndex &index, bool full) { const QUrl url(index.data(BookmarksModel::UrlRole).toUrl()); if (url.isValid()) { QSize size; if (SettingsManager::getValue(SettingsManager::StartPage_TileBackgroundModeOption) == QLatin1String("thumbnail")) { size.setWidth(SettingsManager::getValue(SettingsManager::StartPage_TileWidthOption).toInt()); size.setHeight(SettingsManager::getValue(SettingsManager::StartPage_TileHeightOption).toInt()); } else if (!full) { return; } if (url.scheme() == QLatin1String("about")) { const AddonsManager::SpecialPageInformation information(AddonsManager::getSpecialPage(url.path())); QPixmap thumbnail(size); thumbnail.fill(); QPainter painter(&thumbnail); information.icon.paint(&painter, QRect(QPoint(0, 0), size)); m_reloads[index.data(BookmarksModel::UrlRole).toUrl()] = qMakePair(index.data(BookmarksModel::IdentifierRole).toULongLong(), full); thumbnailCreated(url, thumbnail, information.getTitle()); } else if (AddonsManager::getWebBackend()->requestThumbnail(url, size)) { m_reloads[index.data(BookmarksModel::UrlRole).toUrl()] = qMakePair(index.data(BookmarksModel::IdentifierRole).toULongLong(), full); } } }
void StartPageModel::optionChanged(int identifier) { if (identifier == SettingsManager::Backends_WebOption) { connect(AddonsManager::getWebBackend(), SIGNAL(thumbnailAvailable(QUrl,QPixmap,QString)), this, SLOT(thumbnailCreated(QUrl,QPixmap,QString))); } else if (identifier == SettingsManager::StartPage_BookmarksFolderOption || identifier == SettingsManager::StartPage_ShowAddTileOption) { reloadModel(); } }