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

trying to write protein as SVG file

parent b1986e34
No related branches found
No related tags found
No related merge requests found
......@@ -15,11 +15,8 @@
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
......@@ -141,55 +138,75 @@
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>coverage</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="coverage_label">
<property name="text">
<string>0%</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>MW</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="mw_label">
<property name="text">
<string>1Da</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>coverage</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="coverage_label">
<property name="text">
<string>0%</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>MW</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="mw_label">
<property name="text">
<string>1Da</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Evalue</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="evalue_label">
<property name="text">
<string>1</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Evalue</string>
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="evalue_label">
<property name="text">
<string>1</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<string>get SVG</string>
</property>
</widget>
</item>
......@@ -212,5 +229,25 @@
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>ProteinDetailView</receiver>
<slot>doSaveSvg()</slot>
<hints>
<hint type="sourcelabel">
<x>564</x>
<y>360</y>
</hint>
<hint type="destinationlabel">
<x>834</x>
<y>340</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>doSaveSvg()</slot>
</slots>
</ui>
......@@ -27,7 +27,10 @@
#include <pappsomspp/pappsoexception.h>
#include <QMessageBox>
#include <QDesktopServices>
#include <QSvgGenerator>
#include <cmath>
//#include <QWebEnginePage>
//#include <QtWebEngine>
DbXrefButton::DbXrefButton(QWidget * parent, DbXref dbxref): QPushButton(parent) {
_dbxref = dbxref;
......@@ -135,3 +138,75 @@ void ProteinWindow::setProteinMatch(ProteinMatch * p_protein_match) {
_p_protein_match = p_protein_match;
updateDisplay();
}
void ProteinWindow::doSaveSvg() {
try {
QSettings settings;
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 filename = QFileDialog::getSaveFileName(this, tr("Save SVG file"),
proposed_filename,
tr("Scalable Vector Graphic (*.svg)"));
if (filename.isEmpty()) {
return;
}
settings.setValue("path/export_svg", QFileInfo(filename).absolutePath());
/*
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);
QPainter painter;
painter.begin(&generator);
painter.setViewport(0,0, size.width(), size.height());
ui->sequenceTextEdit->document()->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());
}
*/
}
......@@ -53,13 +53,14 @@ public:
explicit ProteinWindow(ProjectWindow * parent = 0);
~ProteinWindow();
void setProteinMatch(ProteinMatch * p_protein_match);
public slots:
void doIdentificationGroupGrouped(IdentificationGroup * p_identification_group);
void doPeptideEvidenceSelected(PeptideEvidence * peptide_evidence);
protected slots:
protected slots:
void browseUrl(int i);
void doSaveSvg();
protected :
void updateDisplay();
void clearDbXrefLayout();
......
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