aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/aboutdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/skinned/aboutdialog.cpp')
-rw-r--r--src/plugins/Ui/skinned/aboutdialog.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/src/plugins/Ui/skinned/aboutdialog.cpp b/src/plugins/Ui/skinned/aboutdialog.cpp
new file mode 100644
index 000000000..5728697b9
--- /dev/null
+++ b/src/plugins/Ui/skinned/aboutdialog.cpp
@@ -0,0 +1,131 @@
+/***************************************************************************
+* Copyright (C) 2006 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.h"
+
+static QString getstringFromResource(const QString& res_file)
+{
+ QString ret_string;
+ QFile file(res_file);
+ if (file.open(QIODevice::ReadOnly))
+ {
+ QTextStream ts(&file);
+ ts.setCodec("UTF-8");
+ ret_string = ts.readAll();
+ file.close();
+ }
+ return ret_string;
+}
+
+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(tr(":/txt/authors_en.txt")));
+ thanksToTextEdit->setPlainText(getstringFromResource(tr(":/txt/thanks_en.txt")));
+ translatorsTextEdit->setPlainText(getstringFromResource(tr(":/txt/translators_en.txt")));
+}
+
+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;
+}