MCPcopy Create free account
hub / github.com/OpenMS/OpenMS / saveAsImage

Method saveAsImage

src/openms_gui/source/VISUAL/Plot1DWidget.cpp:194–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192 }
193
194 void Plot1DWidget::saveAsImage()
195 {
196 QString filter = "Raster images *.bmp *.png *.jpg *.gif (*.bmp *.png *.jpg *.gif);;Vector images *.svg (*.svg)";
197 QString sel_filter;
198 QString file_name = QFileDialog::getSaveFileName(this, "Save File", "", filter, &sel_filter);
199
200 bool x_visible = x_scrollbar_->isVisible();
201 bool y_visible = y_scrollbar_->isVisible();
202 x_scrollbar_->hide();
203 y_scrollbar_->hide();
204
205 if (sel_filter.contains(".svg", Qt::CaseInsensitive)) // svg vector format
206 {
207 QSvgGenerator generator;
208 generator.setFileName(file_name);
209 generator.setSize(QSize(this->width(), this->height()));
210 generator.setViewBox(QRect(0, 0, this->width() - 1, this->height() - 1));
211 generator.setTitle(file_name);
212 generator.setDescription("TOPPView generated SVG");
213 QPainter painter;
214 painter.begin(&generator);
215
216 painter.save();
217 painter.translate(QPoint(y_axis_->pos()));
218 y_axis_->paint(&painter, new QPaintEvent(y_axis_->contentsRect()));
219 painter.restore();
220
221 painter.save();
222 painter.translate(QPoint(canvas_->pos()));
223 dynamic_cast<Plot1DCanvas*>(canvas_)->paint(&painter, new QPaintEvent(canvas_->contentsRect()));
224 painter.restore();
225
226 painter.save();
227 painter.translate(QPoint(x_axis_->pos()));
228 x_axis_->paint(&painter, new QPaintEvent(x_axis_->contentsRect()));
229 painter.restore();
230
231 painter.end();
232 x_scrollbar_->setVisible(x_visible);
233 y_scrollbar_->setVisible(y_visible);
234 }
235 else // raster graphics formats
236 {
237 QPixmap pixmap = this->grab();
238 x_scrollbar_->setVisible(x_visible);
239 y_scrollbar_->setVisible(y_visible);
240 pixmap.save(file_name);
241 }
242 }
243
244} //namespace

Callers

nothing calls this directly

Calls 13

setFileNameMethod · 0.80
setSizeMethod · 0.80
widthMethod · 0.80
heightMethod · 0.80
setTitleMethod · 0.80
translateMethod · 0.80
posMethod · 0.80
QPointClass · 0.50
containsMethod · 0.45
setDescriptionMethod · 0.45
beginMethod · 0.45
paintMethod · 0.45

Tested by

no test coverage detected