MantidAbout::MantidAbout(QWidget *parent) : MantidQt::API::MantidDialog(parent) { m_uiForm.setupUi(this); QLabel* releasedate = m_uiForm.release_datevalue; QString releaseDate(Mantid::Kernel::MantidVersion::releaseDate()); releasedate->setText(releaseDate); QString version(Mantid::Kernel::MantidVersion::version()); QLabel* releaseversion = m_uiForm.release_versionvalue; releaseversion->setText(version); QString release(Mantid::Kernel::MantidVersion::revision()); release.insert(0, "<p>"); release.append(" (<a href=\"http://github.com/mantidproject/mantid/commit/"); release.append(Mantid::Kernel::MantidVersion::revisionFull()); release.append("\">on github</a>)</p>"); QLabel* releaselabel = m_uiForm.revision_value; releaselabel->setText(release); releaselabel->setOpenExternalLinks(true); QLabel* builtusing_labelvalue = m_uiForm.builtusing_labelvalue; QString builtusing = "QtiPlot " + QString::number(maj_version) + "." + QString::number(min_version) + "." + QString::number(patch_version) + extra_version + " "; builtusing += "Released: " + QString(release_date) + "<br>"; builtusing += QString(copyright_string); builtusing_labelvalue->setText(builtusing); QString mantidurl = "<p><a href = http://www.mantidproject.org/Main_Page>http://www.mantidproject.org</a></p>"; QLabel* url = m_uiForm.mantidurl; url->setText(mantidurl); url->setOpenExternalLinks(true); QString mantidDOI = QString::fromStdString("<p><a href = " +\ Mantid::Kernel::MantidVersion::doi() + ">" +\ Mantid::Kernel::MantidVersion::doi() + "</a></p>"); m_uiForm.mantiddoi->setText(mantidDOI); m_uiForm.mantiddoi->setOpenExternalLinks(true); }
bool Upload::adjustNewstuffFile(const Package &package) { if (m_xml.isNull()) { QTemporaryFile tempFile(QDir::tempPath() + "/monav-maps-XXXXXX.xml"); tempFile.setAutoRemove(false); tempFile.open(); QString monavFilename = tempFile.fileName(); tempFile.close(); QProcess wget; QStringList const arguments = QStringList() << "http://files.kde.org/marble/newstuff/maps-monav.xml" << "-O" << monavFilename; wget.start("wget", arguments); wget.waitForFinished(1000 * 60 * 60 * 12); // wait up to 12 hours for download to complete if (wget.exitStatus() != QProcess::NormalExit || wget.exitCode() != 0) { qDebug() << "Failed to download newstuff file from files.kde.org"; Logger::instance().setStatus(package.region.id(), package.region.name(), "error", "Failed to sync newstuff file: " + wget.readAllStandardError()); return false; } QFile file(monavFilename); if (!file.open(QFile::ReadOnly)) { qDebug() << "Failed to open newstuff file" << monavFilename; Logger::instance().setStatus(package.region.id(), package.region.name(), "error", "Failed to open newstuff file."); return false; } if ( !m_xml.setContent( &file ) ) { qDebug() << "Cannot parse newstuff xml file."; Logger::instance().setStatus(package.region.id(), package.region.name(), "error", "Failed to parse newstuff .xml file."); return false; } QFile::remove(monavFilename); } QDomElement root = m_xml.documentElement(); QDomNodeList regions = root.elementsByTagName( "stuff" ); for ( unsigned int i = 0; i < regions.length(); ++i ) { QDomNode node = regions.item( i ); if (!node.namedItem("payload").isNull()) { QUrl url = node.namedItem("payload").toElement().text(); QFileInfo fileInfo(url.path()); if (fileInfo.fileName() == package.file.fileName()) { QString removeFile; QDomNode dateNode = node.namedItem("releasedate"); if (!dateNode.isNull()) { dateNode.removeChild(dateNode.firstChild()); dateNode.appendChild(m_xml.createTextNode(releaseDate())); } QDomNode versionNode = node.namedItem("version"); if (!versionNode.isNull()) { double version = versionNode.toElement().text().toDouble(); versionNode.removeChild(versionNode.firstChild()); versionNode.appendChild(m_xml.createTextNode(QString::number(version+0.1, 'f', 1))); } QDomNode payloadNode = node.namedItem("payload"); payloadNode.removeChild(payloadNode.firstChild()); if (fileInfo.dir().dirName() != targetDir()) { removeFile = QString("/home/marble/web/monav/%1/%2").arg(fileInfo.dir().dirName()).arg(package.file.fileName()); qDebug() << "Going to remove the old file " << removeFile; } QString payload = "http://files.kde.org/marble/monav/%1/%2"; payload = payload.arg(targetDir()).arg(package.file.fileName()); payloadNode.appendChild(m_xml.createTextNode(payload)); return removeFile.isEmpty() ? uploadNewstuff() : (uploadNewstuff() && deleteRemoteFile(removeFile)); } } } QDomNode stuff = root.appendChild(m_xml.createElement("stuff")); stuff.toElement().setAttribute("category", "marble/routing/monav"); QDomNode nameNode = stuff.appendChild(m_xml.createElement("name")); nameNode.toElement().setAttribute("lang", "en"); QString name = "%1 / %2 (%3)"; if (package.region.country().isEmpty()) { name = name.arg(package.region.continent()).arg(package.region.name()); name = name.arg(package.transport); } else { name = "%1 / %2 / %3 (%4)"; name = name.arg(package.region.continent()).arg(package.region.country()); name = name.arg(package.region.name()).arg(package.transport); } nameNode.appendChild(m_xml.createTextNode(name)); QDomNode authorNode = stuff.appendChild(m_xml.createElement("author")); authorNode.appendChild(m_xml.createTextNode("Automatically created from map data assembled by the OpenStreetMap community")); QDomNode licenseNode = stuff.appendChild(m_xml.createElement("license")); licenseNode.appendChild(m_xml.createTextNode("Creative Commons by-SA 2.0")); QDomNode summaryNode = stuff.appendChild(m_xml.createElement("summary")); QString summary = "Requires KDE >= 4.6: Offline Routing in %1, %2"; summary = summary.arg(package.region.name()).arg(package.region.continent()); summaryNode.appendChild(m_xml.createTextNode(summary)); QDomNode versionNode = stuff.appendChild(m_xml.createElement("version")); versionNode.appendChild(m_xml.createTextNode("0.1")); QDomNode dateNode = stuff.appendChild(m_xml.createElement("releasedate")); dateNode.appendChild(m_xml.createTextNode(releaseDate())); QDomNode previewNode = stuff.appendChild(m_xml.createElement("preview")); QString preview = "http://files.kde.org/marble/monav/previews/%1-preview.png"; preview = preview.arg(package.region.id()); previewNode.appendChild(m_xml.createTextNode(preview)); QDomNode payloadNode = stuff.appendChild(m_xml.createElement("payload")); payloadNode.toElement().setAttribute("lang", "en"); QString payload = "http://files.kde.org/marble/monav/%1/%2"; payload = payload.arg(targetDir()).arg(package.file.fileName()); payloadNode.appendChild(m_xml.createTextNode(payload)); return uploadNewstuff(); }