aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-01-14 21:34:21 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-01-14 21:34:21 +0000
commit1ac45ae67953898cbf207aefac81be7d99974d85 (patch)
treeba7a6ee8fbc0c109361775c60daf623d906b2bcc /src/plugins
parentb4dd48aaa81e0b7656b1fa7342a918313e192584 (diff)
downloadqmmp-1ac45ae67953898cbf207aefac81be7d99974d85.tar.gz
qmmp-1ac45ae67953898cbf207aefac81be7d99974d85.tar.bz2
qmmp-1ac45ae67953898cbf207aefac81be7d99974d85.zip
lyrics plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@745 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/General/CMakeLists.txt5
-rw-r--r--src/plugins/General/General.pro3
-rw-r--r--src/plugins/General/lyrics/CMakeLists.txt68
-rw-r--r--src/plugins/General/lyrics/lyrics.cpp56
-rw-r--r--src/plugins/General/lyrics/lyrics.h52
-rw-r--r--src/plugins/General/lyrics/lyrics.pro40
-rw-r--r--src/plugins/General/lyrics/lyricsfactory.cpp63
-rw-r--r--src/plugins/General/lyrics/lyricsfactory.h45
-rw-r--r--src/plugins/General/lyrics/lyricswindow.cpp79
-rw-r--r--src/plugins/General/lyrics/lyricswindow.h50
-rw-r--r--src/plugins/General/lyrics/lyricswindow.ui83
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_cs.ts92
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_de.ts92
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_ru.ts93
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_uk_UA.ts92
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_zh_CN.ts92
-rw-r--r--src/plugins/General/lyrics/translations/lyrics_plugin_zh_TW.ts92
-rw-r--r--src/plugins/General/lyrics/translations/translations.qrc11
18 files changed, 1107 insertions, 1 deletions
diff --git a/src/plugins/General/CMakeLists.txt b/src/plugins/General/CMakeLists.txt
index e78c28075..6e69595da 100644
--- a/src/plugins/General/CMakeLists.txt
+++ b/src/plugins/General/CMakeLists.txt
@@ -2,6 +2,7 @@ SET(USE_DBUS TRUE CACHE BOOL "enable/disable dbus plugin")
SET(USE_SCROBBLER TRUE CACHE BOOL "enable/disable scrobbler plugin")
SET(USE_STATICON TRUE CACHE BOOL "enable/disable status icon plugin")
SET(USE_NOTIFIER TRUE CACHE BOOL "enable/disable notifier plugin")
+SET(USE_LYRICS TRUE CACHE BOOL "enable/disable lyrics version")
IF(USE_DBUS)
add_subdirectory(mpris)
@@ -18,3 +19,7 @@ ENDIF(USE_STATICON)
IF(USE_NOTIFIER)
add_subdirectory(notifier)
ENDIF(USE_NOTIFIER)
+
+IF(USE_LYRICS)
+add_subdirectory(lyrics)
+ENDIF(USE_LYRICS)
diff --git a/src/plugins/General/General.pro b/src/plugins/General/General.pro
index 61fcd2967..c905a5254 100644
--- a/src/plugins/General/General.pro
+++ b/src/plugins/General/General.pro
@@ -1,5 +1,6 @@
SUBDIRS += statusicon \
scrobbler \
mpris \
- notifier
+ notifier \
+ lyrics
TEMPLATE = subdirs
diff --git a/src/plugins/General/lyrics/CMakeLists.txt b/src/plugins/General/lyrics/CMakeLists.txt
new file mode 100644
index 000000000..811f87031
--- /dev/null
+++ b/src/plugins/General/lyrics/CMakeLists.txt
@@ -0,0 +1,68 @@
+project(liblyrics)
+
+cmake_minimum_required(VERSION 2.4.7)
+
+SET(QT_USE_QTNETWORK TRUE)
+INCLUDE(FindQt4)
+
+include(${QT_USE_FILE})
+
+if(COMMAND cmake_policy)
+cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+
+# qt plugin
+ADD_DEFINITIONS( -Wall )
+ADD_DEFINITIONS(${QT_DEFINITIONS})
+ADD_DEFINITIONS(-DQT_PLUGIN)
+ADD_DEFINITIONS(-DQT_NO_DEBUG)
+ADD_DEFINITIONS(-DQT_SHARED)
+ADD_DEFINITIONS(-DQT_THREAD)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+SET(QT_INCLUDES
+ ${QT_INCLUDES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../
+)
+
+# libqmmpui & libqmmp
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
+
+SET(liblyrics_SRCS
+ lyrics.cpp
+ lyricsfactory.cpp
+ lyricswindow.cpp
+)
+
+SET(liblyrics_MOC_HDRS
+ lyricsfactory.h
+ lyrics.h
+ lyricswindow.h
+)
+
+SET(liblyrics_RCCS
+ translations/translations.qrc)
+
+QT4_ADD_RESOURCES(liblyrics_RCC_SRCS ${liblyrics_RCCS})
+
+QT4_WRAP_CPP(liblyrics_MOC_SRCS ${liblyrics_MOC_HDRS})
+
+# user interface
+
+SET(liblyrics_UIS
+ lyricswindow.ui
+)
+
+QT4_WRAP_UI(liblyrics_UIS_H ${liblyrics_UIS})
+# Don't forget to include output directory, otherwise
+# the UI file won't be wrapped!
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ADD_LIBRARY(lyrics SHARED ${liblyrics_SRCS} ${liblyrics_MOC_SRCS} ${liblyrics_UIS_H} ${liblyrics_RCC_SRCS})
+add_dependencies(lyrics qmmpui)
+target_link_libraries(lyrics ${QT_LIBRARIES} -lqmmpui -lqmmp)
+install(TARGETS lyrics DESTINATION ${LIB_DIR}/qmmp/General)
diff --git a/src/plugins/General/lyrics/lyrics.cpp b/src/plugins/General/lyrics/lyrics.cpp
new file mode 100644
index 000000000..fc5589165
--- /dev/null
+++ b/src/plugins/General/lyrics/lyrics.cpp
@@ -0,0 +1,56 @@
+/***************************************************************************
+ * Copyright (C) 2009 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 <QAction>
+#include <QApplication>
+
+#include <qmmp/soundcore.h>
+#include <qmmpui/generalhandler.h>
+#include <qmmpui/playlistmodel.h>
+#include <qmmpui/playlistitem.h>
+#include <qmmpui/mediaplayer.h>
+#include "lyricswindow.h"
+#include "lyrics.h"
+
+Lyrics::Lyrics(QObject *parent)
+ : General(parent)
+{
+ m_action = new QAction(tr("View Lyrics"), this);
+ GeneralHandler::instance()->addAction(m_action, GeneralHandler::PLAYLIST_MENU);
+ connect (m_action, SIGNAL(triggered ()), SLOT(showLyrics()));
+}
+
+Lyrics::~Lyrics()
+{}
+
+void Lyrics::showLyrics()
+{
+ foreach (PlayListItem *item, MediaPlayer::instance()->playListModel()->items())
+ {
+ if (item->isSelected())
+ {
+ if (item->artist().isEmpty() || item->title().isEmpty())
+ break;
+ LyricsWindow *w = new LyricsWindow(item->artist(), item->title(), qApp->activeWindow ());
+ w->show();
+ break;
+ }
+ }
+}
diff --git a/src/plugins/General/lyrics/lyrics.h b/src/plugins/General/lyrics/lyrics.h
new file mode 100644
index 000000000..1fdd6ebfe
--- /dev/null
+++ b/src/plugins/General/lyrics/lyrics.h
@@ -0,0 +1,52 @@
+/***************************************************************************
+ * Copyright (C) 2009 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. *
+ ***************************************************************************/
+#ifndef LYRICS_H
+#define LYRICS_H
+
+#include <QPointer>
+
+#include <qmmpui/general.h>
+#include <qmmp/qmmp.h>
+
+class QAction;
+
+class SoundCore;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+
+class Lyrics : public General
+{
+Q_OBJECT
+public:
+ Lyrics(QObject *parent = 0);
+
+ ~Lyrics();
+
+private slots:
+ void showLyrics();
+
+private:
+ QAction *m_action;
+
+};
+
+#endif
diff --git a/src/plugins/General/lyrics/lyrics.pro b/src/plugins/General/lyrics/lyrics.pro
new file mode 100644
index 000000000..cb5ab5f8a
--- /dev/null
+++ b/src/plugins/General/lyrics/lyrics.pro
@@ -0,0 +1,40 @@
+include(../../plugins.pri)
+
+INCLUDEPATH += ../../../../src
+CONFIG += release \
+warn_on \
+plugin
+
+TARGET =$$PLUGINS_PREFIX/General/lyrics
+QMAKE_CLEAN = $$PLUGINS_PREFIX/General/liblyrics.so
+
+
+TEMPLATE = lib
+QMAKE_LIBDIR += ../../../../lib
+LIBS += -lqmmpui -lqmmp
+
+TRANSLATIONS = translations/lyrics_plugin_cs.ts \
+ translations/lyrics_plugin_de.ts \
+ translations/lyrics_plugin_zh_CN.ts \
+ translations/lyrics_plugin_zh_TW.ts \
+ translations/lyrics_plugin_ru.ts \
+ translations/lyrics_plugin_uk_UA.ts
+RESOURCES = translations/translations.qrc
+
+isEmpty(LIB_DIR){
+ LIB_DIR = /lib
+}
+target.path = $$LIB_DIR/qmmp/General
+INSTALLS += target
+
+HEADERS += lyricsfactory.h \
+ lyrics.h \
+ lyricswindow.h
+SOURCES += lyricsfactory.cpp \
+ lyrics.cpp \
+ lyricswindow.cpp
+
+FORMS += lyricswindow.ui
+
+QT += network
+
diff --git a/src/plugins/General/lyrics/lyricsfactory.cpp b/src/plugins/General/lyrics/lyricsfactory.cpp
new file mode 100644
index 000000000..1e265c6af
--- /dev/null
+++ b/src/plugins/General/lyrics/lyricsfactory.cpp
@@ -0,0 +1,63 @@
+/***************************************************************************
+ * Copyright (C) 2009 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 <QtGui>
+
+#include "lyrics.h"
+#include "lyricsfactory.h"
+
+const GeneralProperties LyricsFactory::properties() const
+{
+ GeneralProperties properties;
+ properties.name = tr("Lyrics Plugin");
+ properties.hasAbout = TRUE;
+ properties.hasSettings = FALSE;
+ properties.visibilityControl = FALSE;
+ return properties;
+}
+
+General *LyricsFactory::create(QObject *parent)
+{
+ return new Lyrics(parent);
+}
+
+QDialog *LyricsFactory::createConfigDialog(QWidget *parent)
+{
+ Q_UNUSED(parent);
+ return 0;
+}
+
+void LyricsFactory::showAbout(QWidget *parent)
+{
+ QMessageBox::about (parent, tr("About Lyrics Plugin"),
+ tr("Qmmp Lyrics Plugin")+"\n"+
+ tr("This plugin retrieves lyrics from LyricWiki.org")+"\n"+
+ tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>"));
+}
+
+QTranslator *LyricsFactory::createTranslator(QObject *parent)
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = QLocale::system().name();
+ translator->load(QString(":/lyrics_plugin_") + locale);
+ return translator;
+}
+
+Q_EXPORT_PLUGIN(LyricsFactory)
diff --git a/src/plugins/General/lyrics/lyricsfactory.h b/src/plugins/General/lyrics/lyricsfactory.h
new file mode 100644
index 000000000..67bdccac6
--- /dev/null
+++ b/src/plugins/General/lyrics/lyricsfactory.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2009 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. *
+ ***************************************************************************/
+#ifndef NOTIFIERFACTORY_H
+#define NOTIFIERFACTORY_H
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+#include <QObject>
+#include <QTranslator>
+#include <QDialog>
+
+#include <qmmpui/general.h>
+#include <qmmpui/generalfactory.h>
+
+class LyricsFactory : public QObject, public GeneralFactory
+{
+Q_OBJECT
+Q_INTERFACES(GeneralFactory);
+public:
+ const GeneralProperties properties() const;
+ General *create(QObject *parent);
+ QDialog *createConfigDialog(QWidget *parent);
+ void showAbout(QWidget *parent);
+ QTranslator *createTranslator(QObject *parent);
+};
+
+#endif
diff --git a/src/plugins/General/lyrics/lyricswindow.cpp b/src/plugins/General/lyrics/lyricswindow.cpp
new file mode 100644
index 000000000..744ad07f0
--- /dev/null
+++ b/src/plugins/General/lyrics/lyricswindow.cpp
@@ -0,0 +1,79 @@
+/***************************************************************************
+ * Copyright (C) 2009 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 <QHttp>
+#include <QUrl>
+
+#include "lyricswindow.h"
+
+LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget *parent)
+ : QWidget(parent)
+{
+ ui.setupUi(this);
+ setWindowFlags(Qt::Dialog);
+ setAttribute(Qt::WA_DeleteOnClose);
+ setWindowTitle(QString(tr("Lyrics: %1 - %2")).arg(artist).arg(title));
+ //TODO proxy support
+ m_http = new QHttp(this);
+ connect(m_http, SIGNAL(done(bool)), SLOT(showText(bool)));
+ connect(m_http, SIGNAL(stateChanged(int)), SLOT(showState (int)));
+ m_http->setHost("lyricwiki.org");
+ m_http->get("/api.php?func=getSong&artist=" + QUrl::toPercentEncoding(artist) +"&song=" + QUrl::toPercentEncoding(title) +"&fmt=html");
+}
+
+
+LyricsWindow::~LyricsWindow()
+{
+}
+
+void LyricsWindow::showText(bool error)
+{
+ if (error)
+ ui.textEdit->setText(m_http->errorString());
+ else
+ ui.textEdit->setHtml(QString::fromUtf8(m_http->readAll().constData()));
+}
+
+void LyricsWindow::showState(int state)
+{
+ switch ((int) state)
+ {
+ case QHttp::Unconnected:
+ ui.stateLabel->setText(tr("No connection"));
+ break;
+ case QHttp::HostLookup:
+ ui.stateLabel->setText(tr("Looking up host..."));
+ break;
+ case QHttp::Connecting:
+ ui.stateLabel->setText(tr("Connecting..."));
+ break;
+ case QHttp::Sending:
+ ui.stateLabel->setText(tr("Sending request..."));
+ break;
+ case QHttp::Reading:
+ ui.stateLabel->setText(tr("Receiving"));
+ break;
+ case QHttp::Connected:
+ ui.stateLabel->setText(tr("Connected"));
+ break;
+ case QHttp::Closing:
+ ui.stateLabel->setText(tr("Closing connection..."));
+ }
+}
diff --git a/src/plugins/General/lyrics/lyricswindow.h b/src/plugins/General/lyrics/lyricswindow.h
new file mode 100644
index 000000000..9d0f97a0b
--- /dev/null
+++ b/src/plugins/General/lyrics/lyricswindow.h
@@ -0,0 +1,50 @@
+/***************************************************************************
+ * Copyright (C) 2009 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. *
+ ***************************************************************************/
+#ifndef LYRICSWINDOW_H
+#define LYRICSWINDOW_H
+
+#include <QWidget>
+
+#include "ui_lyricswindow.h"
+
+class QHttp;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class LyricsWindow : public QWidget
+{
+Q_OBJECT
+public:
+ LyricsWindow(const QString &artist, const QString &title, QWidget *parent = 0);
+
+ ~LyricsWindow();
+
+private slots:
+ void showText(bool error);
+ void showState(int state);
+
+private:
+ Ui::LyricsWindow ui;
+ QHttp *m_http;
+
+};
+
+#endif
diff --git a/src/plugins/General/lyrics/lyricswindow.ui b/src/plugins/General/lyrics/lyricswindow.ui
new file mode 100644
index 000000000..25c916f30
--- /dev/null
+++ b/src/plugins/General/lyrics/lyricswindow.ui
@@ -0,0 +1,83 @@
+<ui version="4.0" >
+ <class>LyricsWindow</class>
+ <widget class="QWidget" name="LyricsWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>464</width>
+ <height>400</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Lyrics Plugin</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout" >
+ <property name="leftMargin" >
+ <number>4</number>
+ </property>
+ <property name="topMargin" >
+ <number>9</number>
+ </property>
+ <property name="rightMargin" >
+ <number>4</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>4</number>
+ </property>
+ <item row="0" column="0" colspan="3" >
+ <widget class="QTextEdit" name="textEdit" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="stateLabel" >
+ <property name="text" >
+ <string>No connection</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>383</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QPushButton" name="pushButton" >
+ <property name="text" >
+ <string>Close</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>pushButton</sender>
+ <signal>clicked()</signal>
+ <receiver>LyricsWindow</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>440</x>
+ <y>333</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>174</x>
+ <y>343</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_cs.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_cs.ts
new file mode 100644
index 000000000..33bfb549f
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_cs.ts
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_de.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_de.ts
new file mode 100644
index 000000000..33bfb549f
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_de.ts
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_ru.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_ru.ts
new file mode 100644
index 000000000..a70c44a7b
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_ru.ts
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1" language="pl">
+<defaultcodec></defaultcodec>
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation>Текст песни</translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation>Модуль показа текстов</translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation>О модуле показа текстов песен</translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation>Модуль показа текстов песен для Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation>Этот модуль предназначен для получания текстов песен из LyricWiki.org</translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation>Текст песни: %1 - %2</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation>Нет соединения</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation>Поиск сервера...</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation>Соединение...</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation>Отправка запроса...</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation>Получение</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation>Соединено</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation>Завершение соединения...</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation>Модуль показа текстов</translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation>Закрыть</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_uk_UA.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_uk_UA.ts
new file mode 100644
index 000000000..33bfb549f
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_uk_UA.ts
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_zh_CN.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_zh_CN.ts
new file mode 100644
index 000000000..33bfb549f
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_zh_CN.ts
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/lyrics_plugin_zh_TW.ts b/src/plugins/General/lyrics/translations/lyrics_plugin_zh_TW.ts
new file mode 100644
index 000000000..33bfb549f
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/lyrics_plugin_zh_TW.ts
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1">
+<context>
+ <name>Lyrics</name>
+ <message>
+ <location filename="../lyrics.cpp" line="35"/>
+ <source>View Lyrics</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsFactory</name>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="29"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="48"/>
+ <source>About Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="49"/>
+ <source>Qmmp Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="51"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricsfactory.cpp" line="50"/>
+ <source>This plugin retrieves lyrics from LyricWiki.org</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>LyricsWindow</name>
+ <message>
+ <location filename="../lyricswindow.cpp" line="32"/>
+ <source>Lyrics: %1 - %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="38"/>
+ <source>No connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="62"/>
+ <source>Looking up host...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="65"/>
+ <source>Connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="68"/>
+ <source>Sending request...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="71"/>
+ <source>Receiving</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="74"/>
+ <source>Connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.cpp" line="77"/>
+ <source>Closing connection...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="13"/>
+ <source>Lyrics Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lyricswindow.ui" line="58"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/General/lyrics/translations/translations.qrc b/src/plugins/General/lyrics/translations/translations.qrc
new file mode 100644
index 000000000..b84a22b7a
--- /dev/null
+++ b/src/plugins/General/lyrics/translations/translations.qrc
@@ -0,0 +1,11 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>lyrics_plugin_ru.qm</file>
+ <file>lyrics_plugin_uk_UA.qm</file>
+ <file>lyrics_plugin_zh_CN.qm</file>
+ <file>lyrics_plugin_zh_TW.qm</file>
+ <file>lyrics_plugin_cs.qm</file>
+ <file>lyrics_plugin_de.qm</file>
+ </qresource>
+</RCC>