void ImageWidget::restore(Graph *g, const QStringList& lst) { int frameStyle = 0; QPen pen = QPen(Qt::black, 1, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); double x = 0.0, y = 0.0, right = 0.0, bottom = 0.0; QStringList::const_iterator line; QString fn; bool save_xpm = false; ImageWidget *i = NULL; AttachPolicy attachTo = FrameWidget::Page; bool onTop = true; for (line = lst.begin(); line != lst.end(); line++){ QString s = *line; if (s.contains("<Frame>")) frameStyle = s.remove("<Frame>").remove("</Frame>").toInt(); else if (s.contains("<Color>")) pen.setColor(QColor(s.remove("<Color>").remove("</Color>"))); else if (s.contains("<FrameWidth>")) pen.setWidth(s.remove("<FrameWidth>").remove("</FrameWidth>").toInt()); else if (s.contains("<LineStyle>")) pen.setStyle(PenStyleBox::penStyle(s.remove("<LineStyle>").remove("</LineStyle>").toInt())); else if (s.contains("<x>")) x = s.remove("<x>").remove("</x>").toDouble(); else if (s.contains("<y>")) y = s.remove("<y>").remove("</y>").toDouble(); else if (s.contains("<right>")) right = s.remove("<right>").remove("</right>").toDouble(); else if (s.contains("<bottom>")) bottom = s.remove("<bottom>").remove("</bottom>").toDouble(); else if (s.contains("<attachTo>")) attachTo = (FrameWidget::AttachPolicy)s.remove("<attachTo>").remove("</attachTo>").toInt(); else if (s.contains("<onTop>")) onTop = s.remove("<onTop>").remove("</onTop>").toInt(); else if (s.contains("<path>")) i = g->addImage(s.remove("<path>").remove("</path>")); else if (s.contains("<xpm>")){ save_xpm = true; if (!i){ QString xpm; while ( s != "</xpm>" ){ s = *(++line); xpm += s + "\n"; } QImage image; if (image.loadFromData(xpm.toAscii())) i = g->addImage(image); } } } if (i){ i->setFrameStyle(frameStyle); i->setFramePen(pen); i->setCoordinates(x, y, right, bottom); i->setSaveInternally(save_xpm); i->setAttachPolicy(attachTo); i->setOnTop(onTop); } }
void EnrichmentDialog::saveImagesInternally(bool save) { ImageWidget *i = qobject_cast<ImageWidget *>(d_widget); if (i) i->setSaveInternally(boxSaveImagesInternally->isChecked()); d_plot->multiLayer()->notifyChanges(); if (save) return; QString fn = imagePathBox->text(); if (fn.isEmpty() || !QFile::exists(fn)){ QMessageBox::warning(d_app, tr("QtiPlot - Warning"), tr("The file %1 doesn't exist. The image cannot be restored when reloading the project file!").arg(fn)); chooseImageFile(); } }