diff options
Diffstat (limited to 'src/qmmpui/aboutdialog.cpp')
| -rw-r--r-- | src/qmmpui/aboutdialog.cpp | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/src/qmmpui/aboutdialog.cpp b/src/qmmpui/aboutdialog.cpp new file mode 100644 index 000000000..d5f27e54a --- /dev/null +++ b/src/qmmpui/aboutdialog.cpp @@ -0,0 +1,142 @@ +/*************************************************************************** +* Copyright (C) 2006-2011 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., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + + +#include <QFile> +#include <QTextStream> +#include <qmmp/decoder.h> +#include <qmmp/decoderfactory.h> +#include <qmmp/output.h> +#include <qmmp/outputfactory.h> +#include <qmmp/visual.h> +#include <qmmp/visualfactory.h> +#include <qmmp/effect.h> +#include <qmmp/effectfactory.h> +#include <qmmp/qmmp.h> +#include <qmmpui/general.h> +#include <qmmpui/generalfactory.h> +#include "aboutdialog_p.h" + + +AboutDialog::AboutDialog(QWidget* parent, Qt::WFlags fl) + : QDialog( parent, fl ) +{ + setupUi(this); + setAttribute(Qt::WA_QuitOnClose, false); + licenseTextEdit->setPlainText(getstringFromResource(":COPYING")); + aboutTextEdit->setHtml(loadAbout()); + authorsTextEdit->setPlainText(getstringFromResource(":authors_")); + thanksToTextEdit->setPlainText(getstringFromResource(":thanks_")); + translatorsTextEdit->setPlainText(getstringFromResource(":translators_")); +} + +AboutDialog::~AboutDialog() +{} + +/*$SPECIALIZATION$*/ +void AboutDialog::accept() +{ + QDialog::accept(); +} + +QString AboutDialog::loadAbout() +{ + QString text; + text.append("<head>"); + text.append("<META content=\"text/html; charset=UTF-8\">"); + text.append("</head>"); + text.append("<h3>"+tr("Qt-based Multimedia Player (Qmmp)")+"</h3>"); + text.append("<h4>"+tr("Version:")+" "+ Qmmp::strVersion() + "</h4>"); + text.append("<p>"+getstringFromResource(tr(":txt/description_en.txt"))+"</p>"); + text.append("<h5>"+tr("Input plugins:")+"</h5>"); + text.append("<ul type=\"square\">"); + foreach(DecoderFactory *fact, *Decoder::factories()) + { + text.append("<li>"); + text.append(fact->properties().name); + text.append("</li>"); + } + text.append("</ul>"); + text.append("<h5>"+tr("Output plugins:")+"</h5>"); + text.append("<ul type=\"square\">"); + foreach(OutputFactory *fact, *Output::factories()) + { + text.append("<li>"); + text.append(fact->properties().name); + text.append("</li>"); + } + text.append("</ul>"); + text.append("<h5>"+tr("Visual plugins:")+"</h5>"); + text.append("<ul type=\"square\">"); + foreach(VisualFactory *fact, *Visual::factories()) + { + text.append("<li>"); + text.append(fact->properties().name); + text.append("</li>"); + } + text.append("</ul>"); + text.append("<h5>"+tr("Effect plugins:")+"</h5>"); + text.append("<ul type=\"square\">"); + foreach(EffectFactory *fact, *Effect::factories()) + { + text.append("<li>"); + text.append(fact->properties().name); + text.append("</li>"); + } + text.append("</ul>"); + text.append("<h5>"+tr("General plugins:")+"</h5>"); + text.append("<ul type=\"square\">"); + foreach(GeneralFactory *fact, *General::factories()) + { + text.append("<li>"); + text.append(fact->properties().name); + text.append("</li>"); + } + text.append("</ul>"); + + 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; +} |
