Skip to content
Snippets Groups Projects
Commit 3adadddd authored by Langella Olivier's avatar Langella Olivier
Browse files

problem with svg generator bug QTBUG-52538

parent 2ba2c9c3
No related branches found
No related tags found
No related merge requests found
......@@ -364,7 +364,7 @@ const QString ProteinMatch::getHtmlSequence(PeptideEvidence * peptide_evidence_t
}
}
QString sequence = getProteinXtpSp().get()->getSequence();
QString sequence_html;
QString sequence_html("<style type=\"text/css\">\nspan { margin: 0px;padding: 0px; }\n</style>");
for (unsigned int i=0; i < prot_size; i++) {
if(highlight_bool[i]) {
sequence_html.append(QString("<span style=\"background-color:%2;\">%1").arg(sequence[i]).arg(_color_highlighted_peptide_background.name()));
......
......@@ -168,62 +168,76 @@ void ProteinWindow::doSaveSvg() {
//QPainter painter;
//painter.begin(&generator);
//painter.setViewport(0,0, size.width(), size.height());
// ui->sequenceTextEdit->document()->drawContents(&painter);
// painter.end();
//QFont::Monospace
QFont font("Monospace");
font.setStyleHint(QFont::Monospace);
font.setLetterSpacing(QFont::AbsoluteSpacing,0);
font.setPointSize(16); //generator.setDefaultFont(font);
// ui->sequenceTextEdit->document()->drawContents(&painter);
// painter.end();
QTextDocument *doc = ui->sequenceTextEdit->document()->clone();
doc->setUndoRedoEnabled(false);
//doc->setHtml("<p><span style=\"color:#000000; font-weight:600\">"+text_x+"</span></p>");
doc->setTextWidth(size.width());
doc->setUseDesignMetrics(true);
doc->setDefaultTextOption ( QTextOption (Qt::AlignHCenter ) );
//// height from doc QTextDocument
//// http://fop-miniscribus.googlecode.com/svn/trunk/fop_miniscribus.1.0.0/src/floating_box/floatdiagram.cpp
//////setMaximumHeight(DocumentHighgtActual());
QPainter *p = new QPainter(&generator);
p->setRenderHint(QPainter::Antialiasing, true);
doc->drawContents(p);
p->end();
/*
QSvgGenerator svg;
svg.setFileName(filename);
QTextDocument *doc = ui->sequenceTextEdit->document()->clone();
QRect rectSize(0, 0, (int) doc->size().width(), (int) doc->size().height());
QPainter painter(&svg);
//painter.setViewport(rectSize);
//doc->documentLayout()->setPaintDevice(&svg);
doc->drawContents(&painter);
*/
/*
QtWebEngine::initialize();
QWebEnginePage page;
QEventLoop loop;
loop.connect(&page, &QWebEnginePage::loadFinished, [&page, &loop, &filename]() {
page.printToPdf([&loop, &filename] (QByteArray ba) {
QFile f(filename);
if (f.open(QIODevice::WriteOnly))
{
f.write(ba);
f.close();
} else {
qDebug() << "Error opening file for writing" << filename << f.errorString();
}
loop.exit();
});
});
qDebug() << ui->sequenceTextEdit->toHtml();
page.setHtml(ui->sequenceTextEdit->toHtml());
loop.exec();
*/
QTextOption text_option;
text_option.setWrapMode(QTextOption::WrapAnywhere);
text_option.setFlags(QTextOption::IncludeTrailingSpaces|QTextOption::ShowTabsAndSpaces);
text_option.setUseDesignMetrics(0);
QTextDocument *doc = ui->sequenceTextEdit->document()->clone();
doc->setUndoRedoEnabled(false);
//doc->setHtml("<p><span style=\"color:#000000; font-weight:600\">"+text_x+"</span></p>");
doc->setTextWidth(size.width());
doc->setDefaultFont(font);
doc->setPageSize(size);
doc->setUseDesignMetrics(true);
doc->setDefaultTextOption ( QTextOption (Qt::AlignHCenter ) );
doc->setDefaultTextOption(text_option);
//// height from doc QTextDocument
//// http://fop-miniscribus.googlecode.com/svn/trunk/fop_miniscribus.1.0.0/src/floating_box/floatdiagram.cpp
//////setMaximumHeight(DocumentHighgtActual());
QPainter *painter = new QPainter(&generator);
painter->setRenderHint(QPainter::Antialiasing, true);
painter->setFont(font);
doc->drawContents(painter);
painter->end();
/*
QSvgGenerator svg;
svg.setFileName(filename);
QTextDocument *doc = ui->sequenceTextEdit->document()->clone();
QRect rectSize(0, 0, (int) doc->size().width(), (int) doc->size().height());
QPainter painter(&svg);
//painter.setViewport(rectSize);
//doc->documentLayout()->setPaintDevice(&svg);
doc->drawContents(&painter);
*/
/*
QtWebEngine::initialize();
QWebEnginePage page;
QEventLoop loop;
loop.connect(&page, &QWebEnginePage::loadFinished, [&page, &loop, &filename]() {
page.printToPdf([&loop, &filename] (QByteArray ba) {
QFile f(filename);
if (f.open(QIODevice::WriteOnly))
{
f.write(ba);
f.close();
} else {
qDebug() << "Error opening file for writing" << filename << f.errorString();
}
loop.exit();
});
});
qDebug() << ui->sequenceTextEdit->toHtml();
page.setHtml(ui->sequenceTextEdit->toHtml());
loop.exec();
*/
}
catch (pappso::PappsoException & error) {
QMessageBox::warning(this,
tr("Error trying to save spectrum to SVG file :"), error.qwhat());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment