{
QWebView * webView (dynamic_cast<QWebView*>(parent));
if (webView && !id_.isEmpty())
- webView->page()->mainFrame()->addToJavaScriptWindowObject(id_,this);
+ webView->page()->mainFrame()->addToJavaScriptWindowObject(id_, this);
}
prefix_ pykit::PDFWidget::PDFWidget(QString const & id, QString const & document,
document_.reset(Poppler::Document::load(document));
QWebView * webView (dynamic_cast<QWebView*>(parent));
if (webView && !id_.isEmpty())
- webView->page()->mainFrame()->addToJavaScriptWindowObject(id_,this);
+ webView->page()->mainFrame()->addToJavaScriptWindowObject(id_, this);
documentSetup();
}
document_->setRenderHint(Poppler::Document::TextAntialiasing, true);
document_->setRenderHint(Poppler::Document::TextHinting, false);
resizeEvent(0);
+ Poppler::Page::SearchDirection dir (Poppler::Page::FromTop);
+ highlightAreas_.clear();
+ BOOST_FOREACH(QString const & str, highlightStrings_) {
+ QRectF highlightArea;
+ while (document_->page(currentPage_)->search(str, highlightArea, dir,
+ Poppler::Page::CaseInsensitive)) {
+ highlightAreas_.push_back(highlightArea);
+ dir = Poppler::Page::NextResult;
+ }
+ }
showPage();
}
prefix_ void pykit::PDFWidget::highlightString(QString const & str)
{
- QRectF highlightArea;
- Poppler::Page::SearchDirection dir (Poppler::Page::FromTop);
- while (document_->page(currentPage_)->search(str, highlightArea, dir,
- Poppler::Page::CaseInsensitive)) {
- highlightAreas_.push_back(highlightArea);
- dir = Poppler::Page::NextResult;
- }
+ highlightStrings_.append(str);
+ documentSetup();
}
prefix_ void pykit::PDFWidget::showPage()
dpi_, dpi_, 0, 0, width(), height()));
QMatrix matrix (dpi_ / 72.0, 0, 0, dpi_ / 72.0, 0, 0);
+ QPainter painter;
+ painter.begin(&image);
+ painter.setCompositionMode(QPainter::CompositionMode_Darken);
BOOST_FOREACH(QRectF const & highlightArea, highlightAreas_) {
QRect highlightRect = matrix.mapRect(highlightArea).toRect();
- highlightRect.adjust(-2, -2, 2, 2);
- QImage highlight = image.copy(highlightRect);
- QPainter painter;
- painter.begin(&image);
- painter.fillRect(image.rect(), QColor(0, 0, 0, 32));
- painter.drawImage(highlightRect, highlight);
- painter.end();
+ highlightRect.adjust(-2, -2, 2, 1);
+ painter.fillRect(highlightRect, QColor(244, 229, 0));
}
+ painter.end();
setPixmap(QPixmap::fromImage(image));
}