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

using PDF to wait for SVG

parent 3adadddd
No related branches found
No related tags found
No related merge requests found
...@@ -145,11 +145,11 @@ void ProteinWindow::doSaveSvg() { ...@@ -145,11 +145,11 @@ void ProteinWindow::doSaveSvg() {
QSettings settings; QSettings settings;
QString default_location = settings.value("path/export_svg", "").toString(); QString default_location = settings.value("path/export_svg", "").toString();
QString proposed_filename = QString("%1/protein_%1.svg").arg(_p_protein_match->getProteinXtpSp().get()->getAccession()); QString proposed_filename = QString("%1/protein_%1.pdf").arg(_p_protein_match->getProteinXtpSp().get()->getAccession());
QString filename = QFileDialog::getSaveFileName(this, tr("Save SVG file"), QString filename = QFileDialog::getSaveFileName(this, tr("Save PDF file"),
proposed_filename, proposed_filename,
tr("Scalable Vector Graphic (*.svg)")); tr("pdf (*.pdf)"));
if (filename.isEmpty()) { if (filename.isEmpty()) {
return; return;
...@@ -157,13 +157,21 @@ void ProteinWindow::doSaveSvg() { ...@@ -157,13 +157,21 @@ void ProteinWindow::doSaveSvg() {
settings.setValue("path/export_svg", QFileInfo(filename).absolutePath()); settings.setValue("path/export_svg", QFileInfo(filename).absolutePath());
QSvgGenerator generator; //https://bugreports.qt.io/browse/QTBUG-52538
//generator.setOutputDevice(&buffer); QPrinter printer(QPrinter::PrinterResolution);
QSize size(600, 1000); printer.setOutputFormat(QPrinter::PdfFormat);
generator.setFileName(filename); printer.setPaperSize(QPrinter::A4);
generator.setSize(size); printer.setOutputFileName(filename);
generator.setViewBox(QRect(0, 0, size.width(), size.height())); /*
generator.setTitle(_p_protein_match->getProteinXtpSp().get()->getAccession()); QSvgGenerator generator;
//generator.setOutputDevice(&buffer);
QSize size(600, 1000);
generator.setFileName(filename);
generator.setSize(size);
generator.setViewBox(QRect(0, 0, size.width(), size.height()));
generator.setTitle(_p_protein_match->getProteinXtpSp().get()->getAccession());
*/
//generator.setDescription(description); //generator.setDescription(description);
//QPainter painter; //QPainter painter;
//painter.begin(&generator); //painter.begin(&generator);
...@@ -176,7 +184,7 @@ void ProteinWindow::doSaveSvg() { ...@@ -176,7 +184,7 @@ void ProteinWindow::doSaveSvg() {
font.setStyleHint(QFont::Monospace); font.setStyleHint(QFont::Monospace);
font.setLetterSpacing(QFont::AbsoluteSpacing,0); font.setLetterSpacing(QFont::AbsoluteSpacing,0);
font.setPointSize(16); //generator.setDefaultFont(font); font.setPointSize(16); //generator.setDefaultFont(font);
QTextOption text_option; QTextOption text_option;
text_option.setWrapMode(QTextOption::WrapAnywhere); text_option.setWrapMode(QTextOption::WrapAnywhere);
text_option.setFlags(QTextOption::IncludeTrailingSpaces|QTextOption::ShowTabsAndSpaces); text_option.setFlags(QTextOption::IncludeTrailingSpaces|QTextOption::ShowTabsAndSpaces);
...@@ -185,21 +193,22 @@ void ProteinWindow::doSaveSvg() { ...@@ -185,21 +193,22 @@ void ProteinWindow::doSaveSvg() {
QTextDocument *doc = ui->sequenceTextEdit->document()->clone(); QTextDocument *doc = ui->sequenceTextEdit->document()->clone();
doc->setUndoRedoEnabled(false); doc->setUndoRedoEnabled(false);
//doc->setHtml("<p><span style=\"color:#000000; font-weight:600\">"+text_x+"</span></p>"); //doc->setHtml("<p><span style=\"color:#000000; font-weight:600\">"+text_x+"</span></p>");
doc->setTextWidth(size.width()); doc->setTextWidth(printer.pageRect().size().width());
doc->setDefaultFont(font); doc->setDefaultFont(font);
doc->setPageSize(size); doc->setPageSize(printer.pageRect().size());
doc->setUseDesignMetrics(true);
doc->setDefaultTextOption ( QTextOption (Qt::AlignHCenter ) );
doc->setDefaultTextOption(text_option);
//// height from doc QTextDocument //// height from doc QTextDocument
//// http://fop-miniscribus.googlecode.com/svn/trunk/fop_miniscribus.1.0.0/src/floating_box/floatdiagram.cpp //// http://fop-miniscribus.googlecode.com/svn/trunk/fop_miniscribus.1.0.0/src/floating_box/floatdiagram.cpp
//////setMaximumHeight(DocumentHighgtActual()); //////setMaximumHeight(DocumentHighgtActual());
doc->setPageSize(printer.pageRect().size()); // This is necessary if you want to hide the page number
doc->print(&printer);
QPainter *painter = new QPainter(&generator); /*
painter->setRenderHint(QPainter::Antialiasing, true); QPainter *painter = new QPainter(&generator);
painter->setFont(font); painter->setRenderHint(QPainter::Antialiasing, true);
doc->drawContents(painter); painter->setFont(font);
painter->end(); doc->drawContents(painter);
painter->end();
*/
/* /*
......
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