void createLegalFiles( const QString &directory, const QString &name, const QString &email ) { QDir input( directory ); QFile authorsFile( input.filePath( "AUTHORS.txt" ) ); if ( authorsFile.open( QFile::WriteOnly | QFile::Truncate ) ) { QTextStream stream( &authorsFile ); stream << name << " <" << email << ">"; } authorsFile.close(); QFile licenseFile( input.filePath( "LICENSE.txt" ) ); if ( licenseFile.open( QFile::WriteOnly | QFile::Truncate ) ) { QTextStream stream( &licenseFile ); stream << "The ogg files in this directory are licensed under the creative commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. "; stream << "See http://creativecommons.org/licenses/by-sa/3.0/ and the file CC-BY-SA-3.0 in this directory."; } licenseFile.close(); QFile installFile( input.filePath( "INSTALL.txt" ) ); if ( installFile.open( QFile::WriteOnly | QFile::Truncate ) ) { QTextStream stream( &installFile ); stream << "To install this voice guidance speaker in Marble, copy the entire directory to the audio/speakers/ directory in Marble's data path.\n\n"; stream << "For example, if this directory is called 'MySpeaker' and you want to use it on the Nokia N900, copy the directory with all files to /home/user/MyDocs/.local/share/marble/audio/speakers/MySpeaker\n\n"; stream << "Afterwards start Marble on the N900 and press the routing info box (four icons on the bottom) for two seconds with the pen. Enter the configuration dialog and choose the 'MySpeaker' speaker.\n\n"; stream << "Check http://edu.kde.org/marble/speakers.php for updates and more speakers."; } installFile.close(); }
/** Constructor */ HelpDialog::HelpDialog(QWidget *parent) : QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint), ui(new(Ui::HelpDialog)) { /* Invoke the Qt Designer generated object setup routine */ ui->setupUi(this); //QFile licenseFile(QLatin1String(":/images/COPYING")); QFile licenseFile(QLatin1String(":/help/licence.html")); if (licenseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&licenseFile); ui->license->setText(in.readAll()); } QFile authorsFile(QLatin1String(":/help/authors.html")); if (authorsFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&authorsFile); ui->authors->setText(in.readAll()); } QFile thanksFile(QLatin1String(":/help/thanks.html")); if (thanksFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&thanksFile); ui->thanks->setText(in.readAll()); } QFile versionFile(QLatin1String(":/help/version.html")); if (versionFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&versionFile); QString version = in.readAll(); ui->version->setText(version); } /* Add version numbers of libretroshare */ std::list<RsLibraryInfo> libraries; RsControl::instance()->getLibraries(libraries); addLibraries(ui->libraryLayout, "libretroshare", libraries); #ifdef ENABLE_WEBUI /* Add version numbers of RetroShare */ // Add versions here. Find a better place. libraries.clear(); libraries.push_back(RsLibraryInfo("Libmicrohttpd", MHD_get_version())); addLibraries(ui->libraryLayout, "RetroShare", libraries); #endif // ENABLE_WEBUI /* Add version numbers of plugins */ if (rsPlugins) { for (int i = 0; i < rsPlugins->nbPlugins(); ++i) { RsPlugin *plugin = rsPlugins->plugin(i); if (plugin) { libraries.clear(); plugin->getLibraries(libraries); addLibraries(ui->libraryLayout, plugin->getPluginName(), libraries); } } } }
/** Constructor */ HelpDialog::HelpDialog(QWidget *parent) :QDialog(parent) { /* Invoke the Qt Designer generated object setup routine */ ui.setupUi(this); //QFile licenseFile(QLatin1String(":/images/COPYING")); QFile licenseFile(QLatin1String(":/help/licence.html")); if (licenseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&licenseFile); ui.license->setText(in.readAll()); } QFile authorsFile(QLatin1String(":/help/authors.html")); if (authorsFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&authorsFile); ui.authors->setText(in.readAll()); } QFile thanksFile(QLatin1String(":/help/thanks.html")); if (thanksFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&thanksFile); ui.thanks->setText(in.readAll()); } QFile versionFile(QLatin1String(":/help/version.html")); if (versionFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&versionFile); QString version = in.readAll(); #ifdef ADD_LIBRETROSHARE_VERSION_INFO /* get libretroshare version */ std::map<std::string, std::string>::iterator vit; std::map<std::string, std::string> versions; const RsConfig &conf = rsiface->getConfig(); bool retv = rsDisc->getDiscVersions(versions); if (retv && versions.end() != (vit = versions.find(conf.ownId))) { version += QString::fromStdString("Retroshare library version : \n") + QString::fromStdString(vit->second); } #endif ui.version->setText(version); } ui.label_2->setMinimumWidth(20); /* Hide platform specific features */ #ifdef Q_WS_WIN #endif }
/*! * parse a text file and return an author list in an html table: * left the names and right the contact address * the html table can be "split" in sections * @param QString fileName the file to be parsed * @return QString the html table */ QString About::parseAuthorFile(QString fileName) { QString result; QString file; QFile authorsFile(fileName); if (authorsFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream inTS(&authorsFile); inTS.setCodec("UTF-8"); inTS.setAutoDetectUnicode(true); QString lineTS; QStringList fieldTS; QString name; QString contact; bool isTitle = true; bool startText = false; bool startTitle = false; result = "<table>"; while (!inTS.atEnd()) { lineTS = inTS.readLine(); // convert (r) "�" to ®, "�" to ™ // lineTS = QString::fromUtf8(lineTS); lineTS.replace("<", "<"); lineTS.replace(">", ">"); lineTS.replace("�", "®"); lineTS.replace("�", "™"); name = ""; contact = ""; if (!lineTS.isEmpty()) { if (isTitle) { startTitle = false; result += "<tr><td><b>"+About::trAuthorTitle(lineTS)+"</b></td><td></td></tr>"; } // if is title else { startText = false; fieldTS = lineTS.split(" "); contact = (fieldTS.isEmpty() ? "" : fieldTS.takeLast()); name = (fieldTS.isEmpty() ? "" : fieldTS.join(" ")); result += "<tr><td>"+name+"</td><td>"+(contact == "@" ? "" : contact)+"</td></tr>"; } // else is title } // if is empty line else { // empty lines switch between title and text if (!startText && !startTitle) { isTitle = !isTitle; if (isTitle) { result += "<tr><td></td><td></td></tr>"; startTitle = true; } else { startText = true; } } } // else is empty line } // while ! atEnd result += "<table>"; } // if file found else { if (!fileName.isEmpty()) { QStringList field = fileName.split("/"); if (!field.isEmpty()) { file = field.takeLast(); } } result = tr("Unable to open %1 file. Please check your install directory or the Scribus website for %1 information.").arg(file); result = ""; } // else file found return result; } // parseTextFile()