aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-02-03 21:00:34 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-02-03 21:00:34 +0000
commit0c969362a32a2990c5b77e2720bc0f343957469d (patch)
tree1bcee268dfa149bd05cd4d57d5d98b046273e3cb
parent72f0f5c74aa64a60d6c39f8490d7dd876bdf2885 (diff)
downloadqmmp-0c969362a32a2990c5b77e2720bc0f343957469d.tar.gz
qmmp-0c969362a32a2990c5b77e2720bc0f343957469d.tar.bz2
qmmp-0c969362a32a2990c5b77e2720bc0f343957469d.zip
cue plugin: added automatic charset detection (Closes issue 50)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1542 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--CMakeLists.txt5
-rw-r--r--qmmp.pri5
-rw-r--r--src/plugins/CMakeLists.txt3
-rw-r--r--src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts5
-rw-r--r--src/plugins/Input/cue/CMakeLists.txt9
-rw-r--r--src/plugins/Input/cue/cue.pro22
-rw-r--r--src/plugins/Input/cue/cueparser.cpp38
-rw-r--r--src/plugins/Input/cue/cueparser.h2
-rw-r--r--src/plugins/Input/cue/settingsdialog.cpp28
-rw-r--r--src/plugins/Input/cue/settingsdialog.h6
-rw-r--r--src/plugins/Input/cue/settingsdialog.ui109
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_cs.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_de.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_it.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_lt.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_pl.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_ru.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_tr.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_uk_UA.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_zh_CN.ts14
-rw-r--r--src/plugins/Input/cue/translations/cue_plugin_zh_TW.ts14
-rw-r--r--src/plugins/Transports/http/translations/http_plugin_uk_UA.ts4
-rw-r--r--src/plugins/Visual/projectm/projectm.pro4
-rw-r--r--src/qmmpui/translations/libqmmpui_uk_UA.ts7
-rw-r--r--src/ui/translations/qmmp_uk_UA.ts36
25 files changed, 338 insertions, 85 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 304c08b86..c6e80ab06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,4 +136,9 @@ PRINT_SUMMARY ("KDE4 notifications support ........" USE_KDENOTIFY 1)
MESSAGE("")
MESSAGE("File Dialogs:")
PRINT_SUMMARY ("QMMP File Dialog .................." USE_QMMP_DIALOG 1)
+
+MESSAGE("")
+MESSAGE("Advanced:")
+PRINT_SUMMARY ("Automatic charset detection ......." USE_ENCA ENCA_FOUND)
+
MESSAGE("")
diff --git a/qmmp.pri b/qmmp.pri
index 620cae3f5..fca4d997c 100644
--- a/qmmp.pri
+++ b/qmmp.pri
@@ -27,3 +27,8 @@ CONFIG += CDAUDIO_PLUGIN
CONFIG += BS2B_PLUGIN
CONFIG += LADSPA_PLUGIN
CONFIG += PROJECTM_PLUGIN
+
+#additional features
+
+CONFIG += WITH_ENCA
+#CONFIG += WITH_PROJECTM20
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
index 629437460..1100795a8 100644
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -1,3 +1,6 @@
+SET(USE_ENCA TRUE CACHE BOOL "enable/disable libenca support")
+include(FindPkgConfig)
+pkg_search_module(ENCA enca>=1.11)
add_subdirectory(Input)
add_subdirectory(Output)
add_subdirectory(Visual)
diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts
index 26c322f64..38d580600 100644
--- a/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts
+++ b/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>SettingsDialog</name>
<message>
@@ -14,6 +14,7 @@
<translation>Підказка</translation>
</message>
<message>
+ <location filename="../settingsdialog.ui" line="38"/>
<location filename="../settingsdialog.ui" line="105"/>
<source>Delay, ms:</source>
<translation>Затримка, мс:</translation>
diff --git a/src/plugins/Input/cue/CMakeLists.txt b/src/plugins/Input/cue/CMakeLists.txt
index 27541b9e0..f1ae8a4cc 100644
--- a/src/plugins/Input/cue/CMakeLists.txt
+++ b/src/plugins/Input/cue/CMakeLists.txt
@@ -26,6 +26,11 @@ SET(QT_INCLUDES
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
+IF(USE_ENCA AND ENCA_FOUND)
+ADD_DEFINITIONS(-DWITH_ENCA)
+include_directories(${ENCA_INCLUDE_DIRS})
+link_directories(${ENCA_LIBRARY_DIRS})
+ENDIF(USE_ENCA AND ENCA_FOUND)
SET(libcue_SRCS
decoder_cue.cpp
@@ -63,6 +68,10 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
ADD_LIBRARY(cue MODULE ${libcue_SRCS} ${libcue_MOC_SRCS} ${libcue_RCC_SRCS} ${libcue_UIS_H})
add_dependencies(cue qmmp)
+IF(USE_ENCA AND ENCA_FOUND)
+target_link_libraries(cue ${QT_LIBRARIES} -lqmmp ${ENCA_LDFLAGS} ${ENCA_CFLAGS})
+ELSE(USE_ENCA AND ENCA_FOUND)
target_link_libraries(cue ${QT_LIBRARIES} -lqmmp)
+ENDIF(USE_ENCA AND ENCA_FOUND)
install(TARGETS cue DESTINATION ${LIB_DIR}/qmmp/Input)
install(FILES qmmp_cue.desktop DESTINATION share/applications)
diff --git a/src/plugins/Input/cue/cue.pro b/src/plugins/Input/cue/cue.pro
index 8d6e877c8..21078dd2e 100644
--- a/src/plugins/Input/cue/cue.pro
+++ b/src/plugins/Input/cue/cue.pro
@@ -19,11 +19,21 @@ CONFIG += release \
warn_on \
plugin
TEMPLATE = lib
-unix:QMAKE_LIBDIR += ../../../../lib
-win32:QMAKE_LIBDIR += ../../../../bin
-unix:LIBS += -lqmmp \
- -L/usr/lib
-win32:LIBS += -lqmmp0
+unix{
+ QMAKE_LIBDIR += ../../../../lib
+ LIBS += -lqmmp -L/usr/lib
+ contains(CONFIG, WITH_ENCA){
+ CONFIG += link_pkgconfig
+ PKGCONFIG += enca
+ DEFINES += WITH_ENCA
+ }
+}
+
+win32{
+ QMAKE_LIBDIR += ../../../../bin
+ LIBS += -lqmmp0
+}
+
TRANSLATIONS = translations/cue_plugin_ru.ts \
translations/cue_plugin_uk_UA.ts \
translations/cue_plugin_zh_CN.ts \
@@ -41,5 +51,5 @@ unix {
desktop.files = qmmp_cue.desktop
desktop.path = /share/applications
INSTALLS += target \
- desktop
+ desktop
}
diff --git a/src/plugins/Input/cue/cueparser.cpp b/src/plugins/Input/cue/cueparser.cpp
index 6343bf647..63c55c83d 100644
--- a/src/plugins/Input/cue/cueparser.cpp
+++ b/src/plugins/Input/cue/cueparser.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2009 by Ilya Kotov *
+ * Copyright (C) 2008-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,10 +23,11 @@
#include <QSettings>
#include <QTextStream>
#include <QTextCodec>
-
#include <qmmp/decoder.h>
#include <qmmp/metadatamanager.h>
-
+#ifdef WITH_ENCA
+#include <enca.h>
+#endif
#include "cueparser.h"
CUEParser::CUEParser(const QString &fileName)
@@ -39,7 +40,32 @@ CUEParser::CUEParser(const QString &fileName)
}
QTextStream textStream (&file);
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- QTextCodec *codec = QTextCodec::codecForName(settings.value("CUE/encoding","ISO-8859-1").toByteArray ());
+ settings.beginGroup("CUE");
+ QTextCodec *codec = QTextCodec::codecForName(settings.value("encoding","ISO-8859-1").toByteArray ());
+ if(!codec)
+ codec = QTextCodec::codecForName("UTF-8");
+#ifdef WITH_ENCA
+ EncaAnalyser analyser = 0;
+ if(settings.value("use_enca", FALSE).toBool())
+ {
+ analyser = enca_analyser_alloc(settings.value("enca_lang").toByteArray ().constData());
+ if(analyser)
+ {
+ EncaEncoding encoding = enca_analyse(analyser,
+ (uchar *)file.readAll().constData(),
+ file.size());
+ file.reset();
+ if(encoding.charset != ENCA_CS_UNKNOWN)
+ {
+ codec = QTextCodec::codecForName(enca_charset_name(encoding.charset,ENCA_NAME_STYLE_ENCA));
+ //qDebug("CUEParser: detected charset: %s",
+ // enca_charset_name(encoding.charset,ENCA_NAME_STYLE_ENCA));
+ }
+ }
+ }
+#endif
+ settings.endGroup();
+ //qDebug("CUEParser: using %s encoding", codec->name().constData());
textStream.setCodec(codec);
QString album, genre, date, comment, artist, file_path;
bool new_file = FALSE;
@@ -120,6 +146,10 @@ CUEParser::CUEParser(const QString &fileName)
}
}
file.close();
+#ifdef WITH_ENCA
+ if(analyser)
+ enca_analyser_free(analyser);
+#endif
if(m_infoList.isEmpty())
{
qWarning("CUEParser: invalid cue file");
diff --git a/src/plugins/Input/cue/cueparser.h b/src/plugins/Input/cue/cueparser.h
index cdf943127..ebba82224 100644
--- a/src/plugins/Input/cue/cueparser.h
+++ b/src/plugins/Input/cue/cueparser.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2009 by Ilya Kotov *
+ * Copyright (C) 2008-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Input/cue/settingsdialog.cpp b/src/plugins/Input/cue/settingsdialog.cpp
index 9c80736ed..aa2d73a93 100644
--- a/src/plugins/Input/cue/settingsdialog.cpp
+++ b/src/plugins/Input/cue/settingsdialog.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -19,9 +19,12 @@
***************************************************************************/
#include <QTextCodec>
#include <QSettings>
-
#include <qmmp/qmmp.h>
+#ifdef WITH_ENCA
+#include <enca.h>
+#endif
+
#include "settingsdialog.h"
SettingsDialog::SettingsDialog(QWidget *parent)
@@ -31,17 +34,28 @@ SettingsDialog::SettingsDialog(QWidget *parent)
setAttribute(Qt::WA_DeleteOnClose);
findCodecs();
foreach (QTextCodec *codec, codecs)
- {
ui.cueEncComboBox->addItem(codec->name());
- }
+
+#ifdef WITH_ENCA
+ size_t n = 0;
+ const char **langs = enca_get_languages(&n);
+ for (size_t i = 0; i < n; ++i)
+ ui.encaAnalyserComboBox->addItem(langs[i]);
+#endif
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("CUE");
int pos = ui.cueEncComboBox->findText(settings.value("encoding","ISO-8859-1").toString());
ui.cueEncComboBox->setCurrentIndex(pos);
+#ifdef WITH_ENCA
+ ui.autoCharsetCheckBox->setChecked(settings.value("use_enca", FALSE).toBool());
+ pos = ui.encaAnalyserComboBox->findText(settings.value("enca_lang", langs[n-1]).toString());
+ ui.encaAnalyserComboBox->setCurrentIndex(pos);
+#else
+ ui.autoCharsetCheckBox->setEnabled(FALSE);
+#endif
settings.endGroup();
}
-
SettingsDialog::~SettingsDialog()
{}
@@ -50,6 +64,10 @@ void SettingsDialog::accept()
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("CUE");
settings.setValue("encoding", ui.cueEncComboBox->currentText());
+#ifdef WITH_ENCA
+ settings.setValue("use_enca", ui.autoCharsetCheckBox->isChecked());
+ settings.setValue("enca_lang", ui.encaAnalyserComboBox->currentText());
+#endif
settings.endGroup();
QDialog::accept();
}
diff --git a/src/plugins/Input/cue/settingsdialog.h b/src/plugins/Input/cue/settingsdialog.h
index 0f3ae1f87..d81fc969a 100644
--- a/src/plugins/Input/cue/settingsdialog.h
+++ b/src/plugins/Input/cue/settingsdialog.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -21,11 +21,10 @@
#define SETTINGSDIALOG_H
#include <QDialog>
-
#include "ui_settingsdialog.h"
/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
+ @author Ilya Kotov <forkotov02@hotmail.ru>
*/
class SettingsDialog : public QDialog
{
@@ -35,7 +34,6 @@ public:
~SettingsDialog();
-
public slots:
virtual void accept();
diff --git a/src/plugins/Input/cue/settingsdialog.ui b/src/plugins/Input/cue/settingsdialog.ui
index 978971033..4972b7759 100644
--- a/src/plugins/Input/cue/settingsdialog.ui
+++ b/src/plugins/Input/cue/settingsdialog.ui
@@ -1,53 +1,74 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>SettingsDialog</class>
- <widget class="QDialog" name="SettingsDialog" >
- <property name="geometry" >
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>261</width>
- <height>78</height>
+ <width>223</width>
+ <height>119</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>CUE Plugin Settings</string>
</property>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_17_2_2" >
- <property name="focusPolicy" >
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label_17_2_2">
+ <property name="focusPolicy">
<enum>Qt::TabFocus</enum>
</property>
- <property name="layoutDirection" >
+ <property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
- <property name="text" >
+ <property name="text">
<string>CUE encoding:</string>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="0" column="1" colspan="2" >
- <widget class="QComboBox" name="cueEncComboBox" />
+ <item row="0" column="2">
+ <widget class="QComboBox" name="cueEncComboBox"/>
</item>
- <item row="1" column="0" colspan="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
+ <item row="1" column="0" colspan="3">
+ <widget class="QCheckBox" name="autoCharsetCheckBox">
+ <property name="text">
+ <string>Automatic charset detection</string>
</property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>144</width>
- <height>30</height>
- </size>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="label">
+ <property name="enabled">
+ <bool>true</bool>
</property>
- </spacer>
+ <property name="text">
+ <string>Language:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QComboBox" name="encaAnalyserComboBox">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
</item>
- <item row="1" column="2" >
- <widget class="QDialogButtonBox" name="buttonBox" >
- <property name="standardButtons" >
+ <item row="3" column="0" colspan="3">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
@@ -62,11 +83,11 @@
<receiver>SettingsDialog</receiver>
<slot>accept()</slot>
<hints>
- <hint type="sourcelabel" >
- <x>172</x>
- <y>53</y>
+ <hint type="sourcelabel">
+ <x>196</x>
+ <y>112</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>95</x>
<y>53</y>
</hint>
@@ -78,15 +99,31 @@
<receiver>SettingsDialog</receiver>
<slot>reject()</slot>
<hints>
- <hint type="sourcelabel" >
- <x>238</x>
- <y>51</y>
+ <hint type="sourcelabel">
+ <x>216</x>
+ <y>112</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>130</x>
<y>63</y>
</hint>
</hints>
</connection>
+ <connection>
+ <sender>autoCharsetCheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>encaAnalyserComboBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>90</x>
+ <y>40</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>166</x>
+ <y>64</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_cs.ts b/src/plugins/Input/cue/translations/cue_plugin_cs.ts
index e369f7aa2..0284c97f0 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_cs.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_cs.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Nastavení modulu CUE</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>Kódování CUE:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_de.ts b/src/plugins/Input/cue/translations/cue_plugin_de.ts
index 08a7eb9e1..222c928d5 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_de.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_de.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Einstellungen CUE-Modul</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>CUE-Kodierung:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_it.ts b/src/plugins/Input/cue/translations/cue_plugin_it.ts
index 19ea97dcc..9bcca147e 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_it.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_it.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Impostazioni del modulo CUE</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>Codifica CUE:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_lt.ts b/src/plugins/Input/cue/translations/cue_plugin_lt.ts
index 14f1a55e3..6f604e79d 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_lt.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_lt.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>CUE įskiepio nustatymai</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>CUE koduotė:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_pl.ts b/src/plugins/Input/cue/translations/cue_plugin_pl.ts
index 7837023c7..884005f0a 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_pl.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_pl.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Ustawienia wtyczki CUE</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>Kodowanie CUE:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_ru.ts b/src/plugins/Input/cue/translations/cue_plugin_ru.ts
index dc2c4a10a..959242e50 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_ru.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_ru.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Настройки модуля CUE</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>Кодировка CUE:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation>Определять кодировку автоматически</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation>Язык:</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_tr.ts b/src/plugins/Input/cue/translations/cue_plugin_tr.ts
index 35d69fc5a..245ceacf5 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_tr.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_tr.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>CUE Eklenti Ayarları</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>CUE kodlaması:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_uk_UA.ts b/src/plugins/Input/cue/translations/cue_plugin_uk_UA.ts
index c1b36a334..174c541ab 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_uk_UA.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_uk_UA.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>Налаштування модуля CUE</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>Кодування CUE:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_zh_CN.ts b/src/plugins/Input/cue/translations/cue_plugin_zh_CN.ts
index 472081eb4..57c32a53a 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_zh_CN.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_zh_CN.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>CUE 插件设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>CUE 编码:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/cue/translations/cue_plugin_zh_TW.ts b/src/plugins/Input/cue/translations/cue_plugin_zh_TW.ts
index 39aa61697..1a68246cd 100644
--- a/src/plugins/Input/cue/translations/cue_plugin_zh_TW.ts
+++ b/src/plugins/Input/cue/translations/cue_plugin_zh_TW.ts
@@ -32,14 +32,24 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>CUE Plugin Settings</source>
<translation>CUE 插件設置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="25"/>
+ <location filename="../settingsdialog.ui" line="35"/>
<source>CUE encoding:</source>
<translation>CUE 編碼:</translation>
</message>
+ <message>
+ <location filename="../settingsdialog.ui" line="48"/>
+ <source>Automatic charset detection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="58"/>
+ <source>Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Transports/http/translations/http_plugin_uk_UA.ts b/src/plugins/Transports/http/translations/http_plugin_uk_UA.ts
index a1e9e6c3e..e0c7800bc 100644
--- a/src/plugins/Transports/http/translations/http_plugin_uk_UA.ts
+++ b/src/plugins/Transports/http/translations/http_plugin_uk_UA.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>HTTPInputFactory</name>
<message>
diff --git a/src/plugins/Visual/projectm/projectm.pro b/src/plugins/Visual/projectm/projectm.pro
index 5adc8fff2..7b64cccfa 100644
--- a/src/plugins/Visual/projectm/projectm.pro
+++ b/src/plugins/Visual/projectm/projectm.pro
@@ -1,6 +1,8 @@
include(../../plugins.pri)
-#DEFINES += PROJECTM_20
+contains(CONFIG, WITH_PROJECTM20){
+DEFINES += PROJECTM_20
+}
TARGET =$$PLUGINS_PREFIX/Visual/projectm
QMAKE_CLEAN =$$PLUGINS_PREFIX/Visual/libprojectm.so
diff --git a/src/qmmpui/translations/libqmmpui_uk_UA.ts b/src/qmmpui/translations/libqmmpui_uk_UA.ts
index 9b1ba5b96..9cbfbc9a5 100644
--- a/src/qmmpui/translations/libqmmpui_uk_UA.ts
+++ b/src/qmmpui/translations/libqmmpui_uk_UA.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>DetailsDialog</name>
<message>
@@ -71,6 +71,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>PlayListManager</name>
<message>
+ <location filename="../playlistmanager.cpp" line="115"/>
<location filename="../playlistmanager.cpp" line="334"/>
<source>Playlist</source>
<translation>Список</translation>
@@ -117,6 +118,8 @@ p, li { white-space: pre-wrap; }
<translation>Номер диску:</translation>
</message>
<message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="224"/>
<location filename="../tageditor.ui" line="240"/>
<source>?</source>
<translation></translation>
diff --git a/src/ui/translations/qmmp_uk_UA.ts b/src/ui/translations/qmmp_uk_UA.ts
index 8392bb523..7f4b01686 100644
--- a/src/ui/translations/qmmp_uk_UA.ts
+++ b/src/ui/translations/qmmp_uk_UA.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>AboutDialog</name>
<message>
@@ -188,6 +188,7 @@
<translation>Виконавець</translation>
</message>
<message>
+ <location filename="../configdialog.cpp" line="72"/>
<location filename="../configdialog.cpp" line="376"/>
<source>Album</source>
<translation>Альбом</translation>
@@ -298,11 +299,14 @@
<translation>Список:</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="286"/>
<location filename="../forms/configdialog.ui" line="334"/>
<source>???</source>
<translation>???</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="293"/>
+ <location filename="../forms/configdialog.ui" line="341"/>
<location filename="../forms/configdialog.ui" line="517"/>
<source>...</source>
<translation>...</translation>
@@ -328,11 +332,14 @@
<translation>Формат назви:</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="634"/>
<location filename="../forms/configdialog.ui" line="1125"/>
<source>Preferences</source>
<translation>Налаштування</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="647"/>
+ <location filename="../forms/configdialog.ui" line="755"/>
<location filename="../forms/configdialog.ui" line="1132"/>
<source>Information</source>
<translation>Інформація</translation>
@@ -343,6 +350,7 @@
<translation>Зовнішній вигляд</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="101"/>
<location filename="../forms/configdialog.ui" line="441"/>
<source>Playlist</source>
<translation>Список</translation>
@@ -398,6 +406,7 @@
<translation>Файловий діалог</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="137"/>
<location filename="../forms/configdialog.ui" line="1109"/>
<source>Audio</source>
<translation>Звук</translation>
@@ -463,6 +472,7 @@
<translation>Преамплітуда:</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="1034"/>
<location filename="../forms/configdialog.ui" line="1079"/>
<source>dB</source>
<translation></translation>
@@ -623,6 +633,8 @@
<translation>Головне вікно</translation>
</message>
<message>
+ <location filename="../forms/configdialog.ui" line="410"/>
+ <location filename="../forms/configdialog.ui" line="434"/>
<location filename="../forms/configdialog.ui" line="458"/>
<source>0</source>
<translation></translation>
@@ -636,6 +648,7 @@
<context>
<name>EqWidget</name>
<message>
+ <location filename="../eqwidget.cpp" line="169"/>
<location filename="../eqwidget.cpp" line="192"/>
<source>preset</source>
<translation>предвстановлення</translation>
@@ -704,11 +717,14 @@
<translation></translation>
</message>
<message>
+ <location filename="../jumptotrackdialog.cpp" line="87"/>
<location filename="../jumptotrackdialog.cpp" line="138"/>
<source>Unqueue</source>
<translation>Зняти з черги</translation>
</message>
<message>
+ <location filename="../forms/jumptotrackdialog.ui" line="79"/>
+ <location filename="../jumptotrackdialog.cpp" line="89"/>
<location filename="../jumptotrackdialog.cpp" line="140"/>
<source>Queue</source>
<translation>В чергу</translation>
@@ -890,26 +906,31 @@
<translation>Падіння аналізатора</translation>
</message>
<message>
+ <location filename="../mainvisual.cpp" line="335"/>
<location filename="../mainvisual.cpp" line="349"/>
<source>Slowest</source>
<translation>Найповільніше</translation>
</message>
<message>
+ <location filename="../mainvisual.cpp" line="336"/>
<location filename="../mainvisual.cpp" line="350"/>
<source>Slow</source>
<translation>Повільне</translation>
</message>
<message>
+ <location filename="../mainvisual.cpp" line="337"/>
<location filename="../mainvisual.cpp" line="351"/>
<source>Medium</source>
<translation>Середнє</translation>
</message>
<message>
+ <location filename="../mainvisual.cpp" line="338"/>
<location filename="../mainvisual.cpp" line="352"/>
<source>Fast</source>
<translation>Швидке</translation>
</message>
<message>
+ <location filename="../mainvisual.cpp" line="339"/>
<location filename="../mainvisual.cpp" line="353"/>
<source>Fastest</source>
<translation>Найшвидше</translation>
@@ -1038,6 +1059,7 @@
<translation>&amp;Про програму</translation>
</message>
<message>
+ <location filename="../mainwindow.cpp" line="457"/>
<location filename="../mainwindow.cpp" line="483"/>
<source>Playlist Files</source>
<translation>Файли списків</translation>
@@ -1176,31 +1198,37 @@
<translation>Сортувати</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="225"/>
<location filename="../playlist.cpp" line="259"/>
<source>By Title</source>
<translation>За назвою</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="229"/>
<location filename="../playlist.cpp" line="263"/>
<source>By Album</source>
<translation>За альбомом</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="233"/>
<location filename="../playlist.cpp" line="267"/>
<source>By Artist</source>
<translation>За артистом</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="237"/>
<location filename="../playlist.cpp" line="271"/>
<source>By Filename</source>
<translation>За ім&apos;ям файлу</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="241"/>
<location filename="../playlist.cpp" line="275"/>
<source>By Path + Filename</source>
<translation>За шляхом та файлом</translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="245"/>
<location filename="../playlist.cpp" line="279"/>
<source>By Date</source>
<translation>За датою</translation>
@@ -1311,6 +1339,7 @@
<translation></translation>
</message>
<message>
+ <location filename="../playlist.cpp" line="249"/>
<location filename="../playlist.cpp" line="283"/>
<source>By Track Number</source>
<translation></translation>
@@ -1344,11 +1373,13 @@
<translation>Новий</translation>
</message>
<message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
<location filename="../playlistbrowser.cpp" line="39"/>
<source>Delete</source>
<translation>Видалити</translation>
</message>
<message>
+ <location filename="../forms/playlistbrowser.ui" line="69"/>
<location filename="../forms/playlistbrowser.ui" line="76"/>
<source>...</source>
<translation>...</translation>
@@ -1367,6 +1398,7 @@
<translation>Налаштування спливаючої інформації</translation>
</message>
<message>
+ <location filename="../forms/popupsettings.ui" line="48"/>
<location filename="../forms/popupsettings.ui" line="78"/>
<source>0</source>
<translation></translation>