/*************************************************************************** * Copyright (C) 2006-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "aboutdialog_p.h" AboutDialog::AboutDialog(QWidget* parent, Qt::WFlags fl) : QDialog( parent, fl ) { setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); licenseTextBrowser->setPlainText(getStringFromResource(":COPYING")); aboutTextBrowser->setHtml(loadAbout()); authorsTextBrowser->setPlainText(getStringFromResource(":authors")); thanksToTextBrowser->setPlainText(getStringFromResource(":thanks")); translatorsTextBrowser->setPlainText(getStringFromResource(":translators")); } AboutDialog::~AboutDialog() {} /*$SPECIALIZATION$*/ QString AboutDialog::loadAbout() { QString text; text.append(""); text.append(""); text.append(""); if(layoutDirection() == Qt::RightToLeft) text.append("
"); else text.append("
"); text.append("

"+tr("Qt-based Multimedia Player (Qmmp)")+"

"); text.append("

"+getStringFromResource(":description")+"

"); text.append("

"+tr("Version: %1").arg(Qmmp::strVersion()) + "
"); text.append(tr("Using Qt %1 (compiled with Qt %2)" ).arg(qVersion()).arg(QT_VERSION_STR) + "

"); text.append("

"); text.append(tr("(c) %1-%2 Qmmp Development Team").arg(2006).arg(2014)+"
"); text.append("http://qmmp.ylsoftware.com/
"); text.append("http://code.google.com/p/qmmp/"); text.append("

"); text.append("
"+tr("Input plugins:")+"
"); text.append("
    "); foreach(DecoderFactory *fact, Decoder::factories()) { text.append("
  • "); text.append(fact->properties().name); text.append("
  • "); } text.append("
"); text.append("
"+tr("Output plugins:")+"
"); text.append("
    "); foreach(OutputFactory *fact, Output::factories()) { text.append("
  • "); text.append(fact->properties().name); text.append("
  • "); } text.append("
"); text.append("
"+tr("Visual plugins:")+"
"); text.append("
    "); foreach(VisualFactory *fact, Visual::factories()) { text.append("
  • "); text.append(fact->properties().name); text.append("
  • "); } text.append("
"); text.append("
"+tr("Effect plugins:")+"
"); text.append("
    "); foreach(EffectFactory *fact, Effect::factories()) { text.append("
  • "); text.append(fact->properties().name); text.append("
  • "); } text.append("
"); text.append("
"+tr("General plugins:")+"
"); text.append("
    "); foreach(GeneralFactory *fact, General::factories()) { text.append("
  • "); text.append(fact->properties().name); text.append("
  • "); } text.append("
"); text.append("
"); return text; } QString AboutDialog::getStringFromResource(const QString& res_file) { QString ret_string; QStringList paths; paths << res_file + "_" + Qmmp::systemLanguageID() + ".txt"; if(Qmmp::systemLanguageID().contains(".")) paths << res_file + "_" + Qmmp::systemLanguageID().split(".").at(0) + ".txt"; if(Qmmp::systemLanguageID().contains("_")) paths << res_file + "_" + Qmmp::systemLanguageID().split("_").at(0) + ".txt"; paths << res_file + ".txt"; paths << res_file; foreach(QString path, paths) { QFile file(path); if (file.open(QIODevice::ReadOnly)) { QTextStream ts(&file); ts.setCodec("UTF-8"); ret_string = ts.readAll(); file.close(); return ret_string; } } return ret_string; }