/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * * Copyright (C) 2013 by Dominik Riebeling * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/ #include "changelog.h" #include "rbsettings.h" #include "ui_changelogfrm.h" Changelog::Changelog(QWidget *parent) : QDialog(parent) { ui.setupUi(this); ui.browserChangelog->setOpenExternalLinks(true); // FIXME: support translated changelog file (changelog.de.txt etc) ui.browserChangelog->setHtml(parseChangelogFile(":/docs/changelog.txt")); ui.browserChangelog->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); ui.checkBoxShowAlways->setChecked(RbSettings::value(RbSettings::ShowChangelog).toBool()); connect(ui.buttonOk, SIGNAL(clicked()), this, SLOT(accept())); } void Changelog::accept(void) { RbSettings::setValue(RbSettings::ShowChangelog, ui.checkBoxShowAlways->isChecked()); this->hide(); this->deleteLater(); } QString Changelog::parseChangelogFile(QString filename) { QFile changelog(filename); changelog.open(QIODevice::ReadOnly); QTextStream c(&changelog); c.setCodec(QTextCodec::codecForName("UTF-8")); QString text; while(!c.atEnd()) { QString line = c.readLine(); if(line.startsWith("#")) continue; if(line.startsWith("Version")) { text.append(QString("

Rockbox Utility %1

").arg(line.remove("Version"))); line = c.readLine(); text.append(""); } } changelog.close(); return text; }