aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/General/covermanager/coverwidget.cpp (renamed from src/plugins/Input/mad/coverwidget.cpp)0
-rw-r--r--src/plugins/General/covermanager/coverwidget.h (renamed from src/plugins/Input/mad/coverwidget.h)0
-rw-r--r--src/plugins/Input/CMakeLists.txt22
-rw-r--r--src/plugins/Input/Input.pro18
-rw-r--r--src/plugins/Input/mad/CMakeLists.txt7
-rw-r--r--src/plugins/Input/mad/decodermadfactory.cpp8
-rw-r--r--src/plugins/Input/mad/decodermadfactory.h4
-rw-r--r--src/plugins/Input/mad/detailsdialog.cpp391
-rw-r--r--src/plugins/Input/mad/detailsdialog.ui450
-rw-r--r--src/plugins/Input/mad/mad.pro83
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.cpp325
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.h63
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_cs.ts220
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_de.ts213
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_it.ts195
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_lt.ts199
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_pl.ts209
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_ru.ts215
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_tr.ts183
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts215
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts201
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts201
-rw-r--r--src/plugins/Input/modplug/decoder_modplug.cpp4
-rw-r--r--src/qmmp/CMakeLists.txt20
-rw-r--r--src/qmmp/abstractdetailsdialog.cpp163
-rw-r--r--src/qmmp/decoderfactory.h9
-rw-r--r--src/qmmp/forms/abstractdetailsdialog.ui372
-rw-r--r--src/qmmp/metadatamodel.cpp40
-rw-r--r--src/qmmp/metadatamodel.h40
-rw-r--r--src/qmmp/qmmp.pro28
-rw-r--r--src/qmmp/soundcore.cpp5
-rw-r--r--src/qmmp/tagmodel.cpp45
-rw-r--r--src/qmmp/tagmodel.h (renamed from src/qmmp/abstractdetailsdialog.h)55
-rw-r--r--src/qmmp/translations/libqmmp_cs.ts92
-rw-r--r--src/qmmp/translations/libqmmp_de.ts88
-rw-r--r--src/qmmp/translations/libqmmp_it.ts100
-rw-r--r--src/qmmp/translations/libqmmp_locales.qrc15
-rw-r--r--src/qmmp/translations/libqmmp_lt.ts88
-rw-r--r--src/qmmp/translations/libqmmp_pl.ts88
-rw-r--r--src/qmmp/translations/libqmmp_pl_PL.ts88
-rw-r--r--src/qmmp/translations/libqmmp_pt_BR.ts88
-rw-r--r--src/qmmp/translations/libqmmp_ru.ts88
-rw-r--r--src/qmmp/translations/libqmmp_tr.ts88
-rw-r--r--src/qmmp/translations/libqmmp_uk_UA.ts86
-rw-r--r--src/qmmp/translations/libqmmp_zh_CN.ts88
-rw-r--r--src/qmmp/translations/libqmmp_zh_TW.ts88
-rw-r--r--src/qmmpui/CMakeLists.txt15
-rw-r--r--src/qmmpui/detailsdialog.cpp128
-rw-r--r--src/qmmpui/detailsdialog.h (renamed from src/plugins/Input/mad/detailsdialog.h)24
-rw-r--r--src/qmmpui/detailsdialog.ui85
-rw-r--r--src/qmmpui/playlistmodel.cpp18
-rw-r--r--src/qmmpui/qmmpui.pro148
-rw-r--r--src/qmmpui/tageditor.cpp83
-rw-r--r--src/qmmpui/tageditor.h48
-rw-r--r--src/qmmpui/tageditor.ui313
-rw-r--r--src/qmmpui/translations/libqmmpui_cs.ts157
-rw-r--r--src/qmmpui/translations/libqmmpui_de.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_it.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_lt.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_pl.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_pt_BR.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_ru.ts161
-rw-r--r--src/qmmpui/translations/libqmmpui_tr.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_uk_UA.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_zh_CN.ts160
-rw-r--r--src/qmmpui/translations/libqmmpui_zh_TW.ts160
66 files changed, 3486 insertions, 4422 deletions
diff --git a/src/plugins/Input/mad/coverwidget.cpp b/src/plugins/General/covermanager/coverwidget.cpp
index 6ce4eebc1..6ce4eebc1 100644
--- a/src/plugins/Input/mad/coverwidget.cpp
+++ b/src/plugins/General/covermanager/coverwidget.cpp
diff --git a/src/plugins/Input/mad/coverwidget.h b/src/plugins/General/covermanager/coverwidget.h
index b06e66f7e..b06e66f7e 100644
--- a/src/plugins/Input/mad/coverwidget.h
+++ b/src/plugins/General/covermanager/coverwidget.h
diff --git a/src/plugins/Input/CMakeLists.txt b/src/plugins/Input/CMakeLists.txt
index a62066aea..3a98630c6 100644
--- a/src/plugins/Input/CMakeLists.txt
+++ b/src/plugins/Input/CMakeLists.txt
@@ -2,17 +2,17 @@
INCLUDE(FindPkgConfig)
SET(USE_MAD TRUE CACHE BOOL "enable/disable mad plugin")
-SET(USE_FLAC TRUE CACHE BOOL "enable/disable flac plugin")
-SET(USE_VORBIS TRUE CACHE BOOL "enable/disable ogg vorbis plugin")
-SET(USE_FFMPEG TRUE CACHE BOOL "enable/disable ffmpeg plugin")
-SET(USE_MPC TRUE CACHE BOOL "enable/disable mpc plugin")
-SET(USE_SNDFILE TRUE CACHE BOOL "enable/disable sndfile plugin")
-SET(USE_WAVPACK TRUE CACHE BOOL "enable/disable wavpack plugin")
-SET(USE_MODPLUG TRUE CACHE BOOL "enable/disable modplug plugin")
-SET(USE_AAC TRUE CACHE BOOL "enable/disable aac plugin")
-SET(USE_CUE TRUE CACHE BOOL "enable/disable cue plugin")
-SET(USE_MPLAYER TRUE CACHE BOOL "enable/disable mplayer support")
-SET(USE_CDA TRUE CACHE BOOL "enable/disable cd audio support")
+#SET(USE_FLAC TRUE CACHE BOOL "enable/disable flac plugin")
+#SET(USE_VORBIS TRUE CACHE BOOL "enable/disable ogg vorbis plugin")
+#SET(USE_FFMPEG TRUE CACHE BOOL "enable/disable ffmpeg plugin")
+#SET(USE_MPC TRUE CACHE BOOL "enable/disable mpc plugin")
+#SET(USE_SNDFILE TRUE CACHE BOOL "enable/disable sndfile plugin")
+#SET(USE_WAVPACK TRUE CACHE BOOL "enable/disable wavpack plugin")
+#SET(USE_MODPLUG TRUE CACHE BOOL "enable/disable modplug plugin")
+#SET(USE_AAC TRUE CACHE BOOL "enable/disable aac plugin")
+#SET(USE_CUE TRUE CACHE BOOL "enable/disable cue plugin")
+#SET(USE_MPLAYER TRUE CACHE BOOL "enable/disable mplayer support")
+#SET(USE_CDA TRUE CACHE BOOL "enable/disable cd audio support")
pkg_check_modules(TAGLIB taglib)
diff --git a/src/plugins/Input/Input.pro b/src/plugins/Input/Input.pro
index ad543d13e..63f5dc4b3 100644
--- a/src/plugins/Input/Input.pro
+++ b/src/plugins/Input/Input.pro
@@ -1,54 +1,54 @@
include(../../../qmmp.pri)
-SUBDIRS += mad cue
+SUBDIRS += mad #cue
TEMPLATE = subdirs
unix{
-SUBDIRS += vorbis sndfile wavpack
+#SUBDIRS += vorbis sndfile wavpack
contains(CONFIG, MODPLUG_PLUGIN){
- SUBDIRS += modplug
+# SUBDIRS += modplug
message(***************************)
message(* Modplug plugin enabled *)
message(***************************)
}
contains(CONFIG, MUSEPACK_PLUGIN){
- SUBDIRS += mpc
+# SUBDIRS += mpc
message(***************************)
message(* Musepack plugin enabled *)
message(***************************)
}
contains(CONFIG, FLAC_PLUGIN){
- SUBDIRS += flac
+# SUBDIRS += flac
message(***********************)
message(* FLAC plugin enabled *)
message(***********************)
}
contains(CONFIG, FFMPEG_PLUGIN){
- SUBDIRS += ffmpeg
+# SUBDIRS += ffmpeg
message(*************************)
message(* FFMPEG plugin enabled *)
message(*************************)
}
contains(CONFIG, AAC_PLUGIN){
- SUBDIRS += aac
+# SUBDIRS += aac
message(**********************)
message(* AAC plugin enabled *)
message(**********************)
}
contains(CONFIG, MPLAYER_PLUGIN){
- SUBDIRS += mplayer
+# SUBDIRS += mplayer
message(**************************)
message(* Mplayer plugin enabled *)
message(**************************)
}
contains(CONFIG, CDAUDIO_PLUGIN){
- SUBDIRS += cdaudio
+# SUBDIRS += cdaudio
message(***************************)
message(* CD Audio plugin enabled *)
message(***************************)
diff --git a/src/plugins/Input/mad/CMakeLists.txt b/src/plugins/Input/mad/CMakeLists.txt
index bc08f3c74..174f4f696 100644
--- a/src/plugins/Input/mad/CMakeLists.txt
+++ b/src/plugins/Input/mad/CMakeLists.txt
@@ -35,19 +35,17 @@ link_directories(${MAD_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS})
SET(libmad_SRCS
decoder_mad.cpp
decodermadfactory.cpp
- detailsdialog.cpp
settingsdialog.cpp
tagextractor.cpp
- coverwidget.cpp
+ mpegmetadatamodel.cpp
)
SET(libmad_MOC_HDRS
settingsdialog.h
decodermadfactory.h
decoder_mad.h
- detailsdialog.h
tagextractor.h
- coverwidget.h
+ mpegmetadatamodel.h
)
SET(libmad_RCCS translations/translations.qrc)
@@ -60,7 +58,6 @@ QT4_WRAP_CPP(libmad_MOC_SRCS ${libmad_MOC_HDRS})
SET(libmad_UIS
- detailsdialog.ui
settingsdialog.ui
)
diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp
index fd45987c7..d4d881cd8 100644
--- a/src/plugins/Input/mad/decodermadfactory.cpp
+++ b/src/plugins/Input/mad/decodermadfactory.cpp
@@ -31,7 +31,7 @@
#include <taglib/tfile.h>
#include <taglib/mpegfile.h>
-#include "detailsdialog.h"
+#include "mpegmetadatamodel.h"
#include "settingsdialog.h"
#include "decoder_mad.h"
#include "decodermadfactory.h"
@@ -207,11 +207,9 @@ QList<FileInfo *> DecoderMADFactory::createPlayList(const QString &fileName, boo
return list;
}
-QObject* DecoderMADFactory::showDetails(QWidget *parent, const QString &path)
+MetaDataModel* DecoderMADFactory::createMetaDataModel(const QString &path, QObject *parent)
{
- DetailsDialog *d = new DetailsDialog(parent, path);
- d -> show();
- return d;
+ return new MPEGMetaDataModel(path, parent);
}
void DecoderMADFactory::showSettings(QWidget *parent)
diff --git a/src/plugins/Input/mad/decodermadfactory.h b/src/plugins/Input/mad/decodermadfactory.h
index c749cd86d..bd657514c 100644
--- a/src/plugins/Input/mad/decodermadfactory.h
+++ b/src/plugins/Input/mad/decodermadfactory.h
@@ -28,6 +28,7 @@
#include <qmmp/decoder.h>
#include <qmmp/output.h>
#include <qmmp/decoderfactory.h>
+#include <qmmp/metadatamodel.h>
@@ -43,9 +44,8 @@ public:
bool canDecode(QIODevice *input) const;
const DecoderProperties properties() const;
Decoder *create(QObject *, QIODevice *, Output *, const QString &);
- //FileInfo *createFileInfo(const QString &source);
QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData);
- QObject* showDetails(QWidget *parent, const QString &path);
+ MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0);
void showSettings(QWidget *parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Input/mad/detailsdialog.cpp b/src/plugins/Input/mad/detailsdialog.cpp
deleted file mode 100644
index b103b5c78..000000000
--- a/src/plugins/Input/mad/detailsdialog.cpp
+++ /dev/null
@@ -1,391 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006-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 <QTextCodec>
-#include <QSettings>
-#include <QDir>
-#include <QFile>
-#include <QFileInfo>
-
-#include <taglib/tag.h>
-#include <taglib/fileref.h>
-#include <taglib/id3v1tag.h>
-#include <taglib/id3v2tag.h>
-#include <taglib/apetag.h>
-#include <taglib/tfile.h>
-#include <taglib/mpegfile.h>
-#include <taglib/mpegheader.h>
-#include <taglib/mpegproperties.h>
-#include <taglib/textidentificationframe.h>
-
-#include <qmmp/decoder.h>
-#include <qmmp/qmmp.h>
-
-#include "detailsdialog.h"
-
-DetailsDialog::DetailsDialog(QWidget *parent, const QString &path)
- : QDialog(parent)
-{
- ui.setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
- m_path = path;
- setWindowTitle (path.section('/',-1));
- ui.pathLineEdit->setText(m_path);
-
- if (!QFile::exists(m_path))
- return;
-
- QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- settings.beginGroup("MAD");
- m_codec_v1 =
- QTextCodec::codecForName(settings.value("ID3v1_encoding", "ISO-8859-1")
- .toByteArray ());
- m_codec_v2 =
- QTextCodec::codecForName(settings.value("ID3v2_encoding","UTF-8")
- .toByteArray ());
- if (!m_codec_v1)
- m_codec_v1 = QTextCodec::codecForName ("ISO-8859-1");
- if (!m_codec_v2)
- m_codec_v2 = QTextCodec::codecForName ("UTF-8");
-
- QString tag_name = settings.value("current_tag","ID3v2").toString ();
-
- if (tag_name == "ID3v1")
- ui.id3v1RadioButton->setChecked(TRUE);
- else if (tag_name == "ID3v2")
- ui.id3v2RadioButton->setChecked(TRUE);
- else if (tag_name == "APE")
- ui.apeRadioButton->setChecked(TRUE);
- else
- ui.id3v2RadioButton->setChecked(TRUE);
-
- settings.endGroup();
-
- loadMPEGInfo();
- QFileInfo info(m_path);
- m_rw = info.isWritable();
- loadTag();
- connect(ui.saveButton, SIGNAL(clicked()), SLOT(save()));
- connect(ui.createButton, SIGNAL(clicked()), SLOT(create()));
- connect(ui.deleteButton, SIGNAL(clicked()), SLOT(deleteTag()));
- connect(ui.id3v1RadioButton, SIGNAL(clicked()), SLOT(loadTag()));
- connect(ui.id3v2RadioButton, SIGNAL(clicked()), SLOT(loadTag()));
- connect(ui.apeRadioButton, SIGNAL(clicked()), SLOT(loadTag()));
- QPixmap pix = Decoder::findCover(m_path);
- if(pix.isNull())
- {
- ui.coverWidget->hide();
- qobject_cast <QBoxLayout *> (ui.groupBox->layout ())->setDirection(QBoxLayout::LeftToRight);
- }
- else
- ui.coverWidget->setPixmap(pix);
-}
-
-
-DetailsDialog::~DetailsDialog()
-{}
-
-void DetailsDialog::loadMPEGInfo()
-{
- TagLib::MPEG::File f (m_path.toLocal8Bit().constData());
- QString text;
- QString v;
- switch((int)f.audioProperties()->version())
- {
- case TagLib::MPEG::Header::Version1:
- v = "1";
- break;
- case TagLib::MPEG::Header::Version2:
- v = "2";
- break;
- case TagLib::MPEG::Header::Version2_5:
- v = "2.5";
- }
- QMap <QString, QString> ap;
- text = QString("MPEG-%1 layer %2").arg(v).arg(f.audioProperties()->layer());
- ap.insert(tr("Format"), text);
- text = QString("%1").arg(f.audioProperties()->bitrate());
- ap.insert(tr("Bitrate"), text+" "+tr("kbps"));
- text = QString("%1").arg(f.audioProperties()->sampleRate());
- ap.insert(tr("Samplerate"), text+" "+tr("Hz"));
- switch (f.audioProperties()->channelMode())
- {
- case TagLib::MPEG::Header::Stereo:
- ap.insert(tr("Mode"), "Stereo");
- break;
- case TagLib::MPEG::Header::JointStereo:
- ap.insert(tr("Mode"), "Joint stereo");
- break;
- case TagLib::MPEG::Header::DualChannel:
- ap.insert(tr("Mode"), "Dual channel");
- break;
- case TagLib::MPEG::Header::SingleChannel:
- ap.insert(tr("Mode"), "Single channel");
- break;
- }
- text = QString("%1 "+tr("KB")).arg(f.length()/1024);
- ap.insert(tr("File size"), text);
- if (f.audioProperties()->protectionEnabled())
- ap.insert(tr("Protection"), tr("Yes"));
- else
- ap.insert(tr("Protection"), tr("No"));
- if (f.audioProperties()->isCopyrighted())
- ap.insert(tr("Copyright"), tr("Yes"));
- else
- ap.insert(tr("Copyright"), tr("No"));
- if (f.audioProperties()->isOriginal())
- ap.insert(tr("Original"), tr("Yes"));
- else
- ap.insert(tr("Original"), tr("No"));
- showAudioProperties(ap);
-}
-
-void DetailsDialog::loadTag()
-{
- TagLib::MPEG::File f (m_path.toLocal8Bit().constData());
- QTextCodec *codec = QTextCodec::codecForName ("UTF-8");
- TagLib::Tag *tag = 0;
- TagLib::ID3v2::FrameListMap flm;
-
- if (selectedTag() == TagLib::MPEG::File::ID3v1)
- {
- tag = f.ID3v1Tag();
- codec = m_codec_v1;
- ui.tagGroupBox->setTitle(tr("ID3v1"));
- }
- else if (selectedTag() == TagLib::MPEG::File::ID3v2)
- {
- tag = f.ID3v2Tag();
- codec = m_codec_v2;
- ui.tagGroupBox->setTitle(tr("ID3v2"));
- if(tag)
- flm = f.ID3v2Tag()->frameListMap();
- }
- else if (selectedTag() == TagLib::MPEG::File::APE)
- {
- ui.tagGroupBox->setTitle(tr("APE"));
- tag = f.APETag();
- }
- ui.saveButton->setEnabled(tag && m_rw);
- ui.createButton->setEnabled(!tag && m_rw);
- ui.deleteButton->setEnabled(tag && m_rw);
- ui.tagGroupBox->setEnabled(tag);
- //clear old values
- ui.titleLineEdit->clear();
- ui.artistLineEdit->clear();
- ui.albumLineEdit->clear();
- ui.commentBrowser->clear();
- ui.yearSpinBox->clear();
- ui.trackSpinBox->setValue(0);
- ui.genreLineEdit->clear();
- ui.composerLineEdit->clear();
- ui.discSpinBox->setValue(0);
-
- if (tag)
- {
- bool utf = codec->name().contains("UTF");
- if (utf)
- codec = QTextCodec::codecForName ("UTF-8");
- TagLib::String title = tag->title();
- TagLib::String artist = tag->artist();
- TagLib::String album = tag->album();
- TagLib::String comment = tag->comment();
- TagLib::String genre = tag->genre();
- QString string = codec->toUnicode(title.toCString(utf)).trimmed();
- ui.titleLineEdit->setText(string);
- string = codec->toUnicode(artist.toCString(utf)).trimmed();
- ui.artistLineEdit->setText(string);
- string = codec->toUnicode(album.toCString(utf)).trimmed();
- ui.albumLineEdit->setText(string);
- string = codec->toUnicode(comment.toCString(utf)).trimmed();
- ui.commentBrowser->setText(string);
- ui.yearSpinBox->setValue(tag->year());
- ui.trackSpinBox->setValue(tag->track());
- string = codec->toUnicode(genre.toCString(utf)).trimmed();
- ui.genreLineEdit->setText(string);
- if(selectedTag() == TagLib::MPEG::File::ID3v2)
- {
- if(!flm["TCOM"].isEmpty())
- {
- string = codec->toUnicode(flm["TCOM"].front()->toString().toCString(utf)).trimmed();
- ui.composerLineEdit->setText(string);
- }
- if(!flm["TPOS"].isEmpty())
- {
- string = QString(flm["TPOS"].front()->toString().toCString(utf)).trimmed();
- ui.discSpinBox->setValue(string.toInt());
- }
- }
- }
-}
-
-void DetailsDialog::save()
-{
- TagLib::MPEG::File* f = new TagLib::MPEG::File(m_path.toLocal8Bit().constData());
- TagLib::String::Type type = TagLib::String::Latin1;
-
- QTextCodec *codec = 0;
- TagLib::Tag *tag = 0;
-
- if (selectedTag() == TagLib::MPEG::File::ID3v1)
- {
- codec = m_codec_v1;
- tag = f->ID3v1Tag(TRUE);
- if (codec->name().contains("UTF"))
- {
- delete f;
- loadTag();
- }
- }
- if (selectedTag() == TagLib::MPEG::File::ID3v2)
- {
- codec = m_codec_v2;
- tag = f->ID3v2Tag(TRUE);
-
- if (codec->name().contains("UTF"))
- {
- type = TagLib::String::UTF8;
- if (codec->name().contains("UTF-16"))
- type = TagLib::String::UTF16;
- else if (codec->name().contains("UTF-16LE"))
- type = TagLib::String::UTF16LE;
- else if (codec->name().contains("UTF-16BE"))
- type = TagLib::String::UTF16BE;
-
- codec = QTextCodec::codecForName ("UTF-8");
- TagLib::ID3v2::FrameFactory *factory = TagLib::ID3v2::FrameFactory::instance();
- factory->setDefaultTextEncoding(type);
- f->setID3v2FrameFactory(factory);
- type = TagLib::String::UTF8;
- }
- //set composer tag
- TagLib::String composer =
- TagLib::String(codec->fromUnicode(ui.composerLineEdit->text()).constData(), type);
- TagLib::ID3v2::Tag *id3v2_tag = dynamic_cast<TagLib::ID3v2::Tag *>(tag);
- if(ui.composerLineEdit->text().isEmpty())
- id3v2_tag->removeFrames("TCOM");
- else if(!id3v2_tag->frameListMap()["TCOM"].isEmpty())
- id3v2_tag->frameListMap()["TCOM"].front()->setText(composer);
- else
- {
- TagLib::ID3v2::TextIdentificationFrame *frame;
- frame = new TagLib::ID3v2::TextIdentificationFrame("TCOM", TagLib::String::Latin1);
- frame->setText(composer);
- id3v2_tag->addFrame(frame);
- }
- //set disc number
- TagLib::String discnumber =
- TagLib::String(QString("%1").arg(ui.discSpinBox->value()).toAscii().constData());
- if(ui.discSpinBox->value() == 0)
- id3v2_tag->removeFrames("TPOS");
- else if(!id3v2_tag->frameListMap()["TPOS"].isEmpty())
- id3v2_tag->frameListMap()["TPOS"].front()->setText(discnumber);
- else
- {
- TagLib::ID3v2::TextIdentificationFrame *frame;
- frame = new TagLib::ID3v2::TextIdentificationFrame("TPOS", TagLib::String::Latin1);
- frame->setText(discnumber);
- id3v2_tag->addFrame(frame);
- }
- }
- if (selectedTag() == TagLib::MPEG::File::APE)
- {
- codec = QTextCodec::codecForName ("UTF-8");
- tag = f->APETag(TRUE);
- type = TagLib::String::UTF8;
- }
-
- tag->setTitle(TagLib::String(codec->fromUnicode(ui.titleLineEdit->text()).constData(), type));
- tag->setArtist(TagLib::String(codec->fromUnicode(ui.artistLineEdit->text()).constData(), type));
- tag->setAlbum(TagLib::String(codec->fromUnicode(ui.albumLineEdit->text()).constData(), type));
- tag->setComment(TagLib::String(codec->fromUnicode(ui.commentBrowser->toPlainText ())
- .constData(), type));
- tag->setGenre(TagLib::String(codec->fromUnicode(ui.genreLineEdit->text()).constData(), type));
- tag->setYear(ui.yearSpinBox->value());
- tag->setTrack(ui.trackSpinBox->value());
-
- f->save(selectedTag(), FALSE);
- delete f;
- loadTag();
-}
-
-void DetailsDialog::create()
-{
- TagLib::MPEG::File *f = new TagLib::MPEG::File (m_path.toLocal8Bit().constData());
- TagLib::Tag *tag = 0;
- if (selectedTag() == TagLib::MPEG::File::ID3v1)
- tag = f->ID3v1Tag(TRUE);
- else if (selectedTag() == TagLib::MPEG::File::ID3v2)
- tag = f->ID3v2Tag(TRUE);
- else if (selectedTag() == TagLib::MPEG::File::APE)
- tag = f->APETag(TRUE);
-
- f->save(selectedTag(), FALSE);
- delete f;
- loadTag();
- ui.tagGroupBox->setEnabled(TRUE);
- ui.saveButton->setEnabled(m_rw);
-}
-
-void DetailsDialog::deleteTag()
-{
- TagLib::MPEG::File *f = new TagLib::MPEG::File (m_path.toLocal8Bit().constData());
- f->strip(selectedTag());
- delete f;
- loadTag();
-}
-
-uint DetailsDialog::selectedTag()
-{
- if (ui.id3v1RadioButton->isChecked())
- return TagLib::MPEG::File::ID3v1;
- else if (ui.id3v2RadioButton->isChecked())
- return TagLib::MPEG::File::ID3v2;
- else if (ui.apeRadioButton->isChecked())
- return TagLib::MPEG::File::APE;
- return TagLib::MPEG::File::ID3v2;
-}
-
-void DetailsDialog::closeEvent (QCloseEvent *)
-{
- QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- settings.beginGroup("MAD");
- if (ui.id3v1RadioButton->isChecked())
- settings.setValue("current_tag","ID3v1");
- else if (ui.id3v2RadioButton->isChecked())
- settings.setValue("current_tag","ID3v2");
- else if (ui.apeRadioButton->isChecked())
- settings.setValue("current_tag","APE");
- settings.endGroup();
-}
-
-void DetailsDialog::showAudioProperties(QMap <QString, QString> p)
-{
- QString formattedText;
- formattedText.append("<TABLE>");
- foreach(QString key, p.keys())
- {
- formattedText.append("<tr>");
- formattedText.append("<td>" + key + ":</td> <td style=\"padding-left: 5px; \"><b>"
- + p.value(key) + "</b></td>");
- formattedText.append("</tr>");
- }
- formattedText.append("</TABLE>");
- ui.propertiesLabel->setText(formattedText);
-}
diff --git a/src/plugins/Input/mad/detailsdialog.ui b/src/plugins/Input/mad/detailsdialog.ui
deleted file mode 100644
index 9d5775dd2..000000000
--- a/src/plugins/Input/mad/detailsdialog.ui
+++ /dev/null
@@ -1,450 +0,0 @@
-<ui version="4.0" >
- <class>DetailsDialog</class>
- <widget class="QDialog" name="DetailsDialog" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>630</width>
- <height>383</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Details</string>
- </property>
- <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="6" >
- <widget class="QLineEdit" name="pathLineEdit" >
- <property name="readOnly" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item rowspan="2" row="1" column="0" >
- <layout class="QVBoxLayout" name="verticalLayout_2" >
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3" >
- <property name="sizeConstraint" >
- <enum>QLayout::SetMinAndMaxSize</enum>
- </property>
- <item>
- <widget class="CoverWidget" native="1" name="coverWidget" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>110</width>
- <height>110</height>
- </size>
- </property>
- <property name="maximumSize" >
- <size>
- <width>110</width>
- <height>110</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title" >
- <string>Tags</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3" >
- <item>
- <widget class="QRadioButton" name="id3v1RadioButton" >
- <property name="text" >
- <string>ID3v1</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="id3v2RadioButton" >
- <property name="text" >
- <string>ID3v2</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="apeRadioButton" >
- <property name="text" >
- <string>APE</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="title" >
- <string>Audio Properties</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout" >
- <item>
- <widget class="QLabel" name="propertiesLabel" >
- <property name="text" >
- <string>-</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="1" colspan="5" >
- <widget class="QGroupBox" name="tagGroupBox" >
- <property name="title" >
- <string>ID3v1</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_2" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_47" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Title:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLineEdit" name="titleLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_43" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Artist:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QLineEdit" name="artistLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label_45" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Album:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QLineEdit" name="albumLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="label_8" >
- <property name="text" >
- <string>Composer:</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLineEdit" name="composerLineEdit" />
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="label_46" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Genre:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="4" column="1" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <widget class="QLineEdit" name="genreLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_11" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Disc number:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="discSpinBox" >
- <property name="specialValueText" >
- <string>?</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="5" column="0" >
- <widget class="QLabel" name="label_42" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Track:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="5" column="1" >
- <layout class="QHBoxLayout" name="horizontalLayout_2" >
- <item>
- <widget class="QSpinBox" name="trackSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="specialValueText" >
- <string>?</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_44" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Year:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="yearSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="specialValueText" >
- <string>?</string>
- </property>
- <property name="suffix" >
- <string/>
- </property>
- <property name="maximum" >
- <number>2012</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="6" column="0" >
- <widget class="QLabel" name="label_48" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Comment:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="6" column="1" >
- <widget class="QTextBrowser" name="commentBrowser" >
- <property name="readOnly" >
- <bool>false</bool>
- </property>
- <property name="html" >
- <string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
-p, li { white-space: pre-wrap; }
-&lt;/style>&lt;/head>&lt;body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;">
-&lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;">&lt;/p>&lt;/body>&lt;/html></string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="2" column="1" >
- <spacer name="horizontalSpacer" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>192</width>
- <height>23</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="2" >
- <widget class="QPushButton" name="createButton" >
- <property name="text" >
- <string>Create</string>
- </property>
- </widget>
- </item>
- <item row="2" column="3" >
- <widget class="QPushButton" name="deleteButton" >
- <property name="text" >
- <string>Delete</string>
- </property>
- </widget>
- </item>
- <item row="2" column="4" >
- <widget class="QPushButton" name="saveButton" >
- <property name="text" >
- <string>Save</string>
- </property>
- </widget>
- </item>
- <item row="2" column="5" >
- <widget class="QPushButton" name="closeButton" >
- <property name="text" >
- <string>Close</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>CoverWidget</class>
- <extends>QWidget</extends>
- <header>coverwidget.h</header>
- <container>1</container>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections>
- <connection>
- <sender>closeButton</sender>
- <signal>clicked()</signal>
- <receiver>DetailsDialog</receiver>
- <slot>close()</slot>
- <hints>
- <hint type="sourcelabel" >
- <x>546</x>
- <y>356</y>
- </hint>
- <hint type="destinationlabel" >
- <x>422</x>
- <y>357</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/src/plugins/Input/mad/mad.pro b/src/plugins/Input/mad/mad.pro
index b29f0c090..c77c0be5c 100644
--- a/src/plugins/Input/mad/mad.pro
+++ b/src/plugins/Input/mad/mad.pro
@@ -1,56 +1,49 @@
include(../../plugins.pri)
-
-
-FORMS += detailsdialog.ui \
- settingsdialog.ui
+FORMS += settingsdialog.ui
HEADERS += decodermadfactory.h \
- decoder_mad.h \
- detailsdialog.h \
- settingsdialog.h \
- tagextractor.h \
- coverwidget.h
+ decoder_mad.h \
+ settingsdialog.h \
+ tagextractor.h \
+ mpegmetadatamodel.h
SOURCES += decoder_mad.cpp \
- decodermadfactory.cpp \
- detailsdialog.cpp \
- settingsdialog.cpp \
- tagextractor.cpp \
- coverwidget.cpp
-
-TARGET =$$PLUGINS_PREFIX/Input/mad
-unix:QMAKE_CLEAN =$$PLUGINS_PREFIX/Input/libmad.so
-
-
-INCLUDEPATH += ../../../ ./
+ decodermadfactory.cpp \
+ settingsdialog.cpp \
+ tagextractor.cpp \
+ mpegmetadatamodel.cpp
+TARGET = $$PLUGINS_PREFIX/Input/mad
+unix:QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libmad.so
+INCLUDEPATH += ../../../ \
+ ./
win32:INCLUDEPATH += D:\MINGW\include\taglib
CONFIG += release \
-warn_on \
-plugin \
-link_pkgconfig
+ warn_on \
+ plugin \
+ link_pkgconfig
TEMPLATE = lib
unix:QMAKE_LIBDIR += ../../../../lib
win32:QMAKE_LIBDIR += ../../../../bin
-unix:LIBS += -lqmmp -lmad
-unix:PKGCONFIG += taglib mad
-
-win32:LIBS += -lqmmp0 -lmad -ltag.dll -ltag_c.dll
-
+unix:LIBS += -lqmmp \
+ -lmad
+unix:PKGCONFIG += taglib \
+ mad
+win32:LIBS += -lqmmp0 \
+ -lmad \
+ -ltag.dll \
+ -ltag_c.dll
TRANSLATIONS = translations/mad_plugin_ru.ts \
- translations/mad_plugin_uk_UA.ts \
- translations/mad_plugin_zh_CN.ts \
- translations/mad_plugin_zh_TW.ts \
- translations/mad_plugin_cs.ts \
- translations/mad_plugin_pl.ts \
- translations/mad_plugin_de.ts \
- translations/mad_plugin_it.ts \
- translations/mad_plugin_tr.ts \
- translations/mad_plugin_tr.ts \
- translations/mad_plugin_lt.ts
+ translations/mad_plugin_uk_UA.ts \
+ translations/mad_plugin_zh_CN.ts \
+ translations/mad_plugin_zh_TW.ts \
+ translations/mad_plugin_cs.ts \
+ translations/mad_plugin_pl.ts \
+ translations/mad_plugin_de.ts \
+ translations/mad_plugin_it.ts \
+ translations/mad_plugin_tr.ts \
+ translations/mad_plugin_tr.ts \
+ translations/mad_plugin_lt.ts
RESOURCES = translations/translations.qrc
-
-unix{
-isEmpty(LIB_DIR){
- LIB_DIR = /lib
-}
-target.path = $$LIB_DIR/qmmp/Input
-INSTALLS += target
+unix {
+ isEmpty(LIB_DIR):LIB_DIR = /lib
+ target.path = $$LIB_DIR/qmmp/Input
+ INSTALLS += target
}
diff --git a/src/plugins/Input/mad/mpegmetadatamodel.cpp b/src/plugins/Input/mad/mpegmetadatamodel.cpp
new file mode 100644
index 000000000..7880f64fb
--- /dev/null
+++ b/src/plugins/Input/mad/mpegmetadatamodel.cpp
@@ -0,0 +1,325 @@
+/***************************************************************************
+ * 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 <QTextCodec>
+#include <QSettings>
+
+#include <taglib/tag.h>
+#include <taglib/fileref.h>
+#include <taglib/id3v1tag.h>
+#include <taglib/id3v2tag.h>
+#include <taglib/apetag.h>
+#include <taglib/tfile.h>
+#include <taglib/mpegfile.h>
+#include <taglib/mpegheader.h>
+#include <taglib/mpegproperties.h>
+#include <taglib/textidentificationframe.h>
+
+#include "mpegmetadatamodel.h"
+
+MPEGMetaDataModel::MPEGMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
+{
+ m_path = path;
+ m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::ID3v1);
+ m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::ID3v2);
+ m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::APE);
+}
+
+MPEGMetaDataModel::~MPEGMetaDataModel()
+{
+ while(!m_tags.isEmpty())
+ delete m_tags.takeFirst();
+}
+
+QHash<QString, QString> MPEGMetaDataModel::audioProperties()
+{
+ QHash<QString, QString> ap;
+ TagLib::MPEG::File f (m_path.toLocal8Bit().constData());
+ QString text;
+ QString v;
+ switch((int)f.audioProperties()->version())
+ {
+ case TagLib::MPEG::Header::Version1:
+ v = "1";
+ break;
+ case TagLib::MPEG::Header::Version2:
+ v = "2";
+ break;
+ case TagLib::MPEG::Header::Version2_5:
+ v = "2.5";
+ }
+ text = QString("MPEG-%1 layer %2").arg(v).arg(f.audioProperties()->layer());
+ ap.insert(tr("Format"), text);
+ text = QString("%1").arg(f.audioProperties()->bitrate());
+ ap.insert(tr("Bitrate"), text+" "+tr("kbps"));
+ text = QString("%1").arg(f.audioProperties()->sampleRate());
+ ap.insert(tr("Samplerate"), text+" "+tr("Hz"));
+ switch (f.audioProperties()->channelMode())
+ {
+ case TagLib::MPEG::Header::Stereo:
+ ap.insert(tr("Mode"), "Stereo");
+ break;
+ case TagLib::MPEG::Header::JointStereo:
+ ap.insert(tr("Mode"), "Joint stereo");
+ break;
+ case TagLib::MPEG::Header::DualChannel:
+ ap.insert(tr("Mode"), "Dual channel");
+ break;
+ case TagLib::MPEG::Header::SingleChannel:
+ ap.insert(tr("Mode"), "Single channel");
+ break;
+ }
+ text = QString("%1 "+tr("KB")).arg(f.length()/1024);
+ ap.insert(tr("File size"), text);
+ if (f.audioProperties()->protectionEnabled())
+ ap.insert(tr("Protection"), tr("Yes"));
+ else
+ ap.insert(tr("Protection"), tr("No"));
+ if (f.audioProperties()->isCopyrighted())
+ ap.insert(tr("Copyright"), tr("Yes"));
+ else
+ ap.insert(tr("Copyright"), tr("No"));
+ if (f.audioProperties()->isOriginal())
+ ap.insert(tr("Original"), tr("Yes"));
+ else
+ ap.insert(tr("Original"), tr("No"));
+ return ap;
+}
+
+QList<TagModel* > MPEGMetaDataModel::tags()
+{
+ return m_tags;
+}
+
+MpegFileTagModel::MpegFileTagModel(const QString &path, TagLib::MPEG::File::TagTypes tagType) : TagModel()
+{
+ m_tagType = tagType;
+ m_file = new TagLib::MPEG::File (path.toLocal8Bit().constData());
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("MAD");
+ if (m_tagType == TagLib::MPEG::File::ID3v1)
+ {
+ m_tag = m_file->ID3v1Tag();
+ m_codec = QTextCodec::codecForName(settings.value("ID3v1_encoding", "ISO-8859-1").toByteArray ());
+ if (!m_codec)
+ QTextCodec::codecForName ("ISO-8859-1");
+ }
+ else if (m_tagType == TagLib::MPEG::File::ID3v2)
+ {
+ m_tag = m_file->ID3v2Tag();
+ m_codec = QTextCodec::codecForName(settings.value("ID3v1_encoding", "UTF-8").toByteArray ());
+ if (!m_codec)
+ QTextCodec::codecForName ("UTF-8");
+ }
+ else
+ {
+ m_tag = m_file->APETag();
+ m_codec = QTextCodec::codecForName ("UTF-8");
+ }
+ settings.endGroup();
+}
+
+MpegFileTagModel::~MpegFileTagModel()
+{
+ delete m_file;
+}
+
+const QString MpegFileTagModel::name()
+{
+ if (m_tagType == TagLib::MPEG::File::ID3v1)
+ return "ID3v1";
+ else if (m_tagType == TagLib::MPEG::File::ID3v2)
+ return "ID3v2";
+ return "APE";
+}
+
+QList<Qmmp::MetaData> MpegFileTagModel::keys()
+{
+ QList<Qmmp::MetaData> list = TagModel::keys();
+ if (m_tagType == TagLib::MPEG::File::ID3v2)
+ return list;
+ list.removeAll(Qmmp::COMPOSER);
+ list.removeAll(Qmmp::DISCNUMBER);
+ return list;
+}
+
+const QString MpegFileTagModel::value(Qmmp::MetaData key)
+{
+ QTextCodec *codec = m_codec;
+
+ if (m_tag)
+ {
+ bool utf = codec->name().contains("UTF");
+ if (utf)
+ codec = QTextCodec::codecForName ("UTF-8");
+
+ TagLib::String str;
+ switch((int) key)
+ {
+ case Qmmp::TITLE:
+ str = m_tag->title();
+ break;
+ case Qmmp::ARTIST:
+ str = m_tag->artist();
+ break;
+ case Qmmp::ALBUM:
+ str = m_tag->album();
+ break;
+ case Qmmp::COMMENT:
+ str = m_tag->comment();
+ break;
+ case Qmmp::GENRE:
+ str = m_tag->genre();
+ break;
+ case Qmmp::COMPOSER:
+ if(m_tagType == TagLib::MPEG::File::ID3v2
+ && !m_file->ID3v2Tag()->frameListMap()["TCOM"].isEmpty())
+ str = m_file->ID3v2Tag()->frameListMap()["TCOM"].front()->toString();
+ break;
+ case Qmmp::YEAR:
+ return QString::number(m_tag->year());
+ case Qmmp::TRACK:
+ return QString::number(m_tag->track());
+ case Qmmp::DISCNUMBER:
+ if(m_tagType == TagLib::MPEG::File::ID3v2
+ && !m_file->ID3v2Tag()->frameListMap()["TPOS"].isEmpty())
+ str = m_file->ID3v2Tag()->frameListMap()["TPOS"].front()->toString();
+ }
+ return codec->toUnicode(str.toCString(utf)).trimmed();
+ }
+ return QString();
+}
+
+void MpegFileTagModel::setValue(Qmmp::MetaData key, const QString &value)
+{
+ if(!m_tag)
+ return;
+ TagLib::String::Type type = TagLib::String::Latin1;
+
+ if (m_tagType == TagLib::MPEG::File::ID3v1)
+ {
+ if(m_codec->name().contains("UTF")) //utf is unsupported
+ return;
+ }
+ else if (m_tagType == TagLib::MPEG::File::ID3v2)
+ {
+ if (m_codec->name().contains("UTF"))
+ {
+ type = TagLib::String::UTF8;
+ if (m_codec->name().contains("UTF-16"))
+ type = TagLib::String::UTF16;
+ else if (m_codec->name().contains("UTF-16LE"))
+ type = TagLib::String::UTF16LE;
+ else if (m_codec->name().contains("UTF-16BE"))
+ type = TagLib::String::UTF16BE;
+
+ m_codec = QTextCodec::codecForName ("UTF-8");
+ TagLib::ID3v2::FrameFactory *factory = TagLib::ID3v2::FrameFactory::instance();
+ factory->setDefaultTextEncoding(type);
+ m_file->setID3v2FrameFactory(factory);
+ type = TagLib::String::UTF8;
+ }
+ //save additional tags
+ TagLib::ByteVector id3v2_key;
+ if (key == Qmmp::COMPOSER)
+ id3v2_key = "TCOM"; //composer
+ else if (key == Qmmp::DISCNUMBER)
+ id3v2_key = "TPOS"; //disc number
+
+ if (!id3v2_key.isEmpty())
+ {
+ TagLib::String composer = TagLib::String(m_codec->fromUnicode(value).constData(), type);
+ TagLib::ID3v2::Tag *id3v2_tag = dynamic_cast<TagLib::ID3v2::Tag *>(m_tag);
+ if(value.isEmpty())
+ id3v2_tag->removeFrames(id3v2_key);
+ else if(!id3v2_tag->frameListMap()[id3v2_key].isEmpty())
+ id3v2_tag->frameListMap()[id3v2_key].front()->setText(composer);
+ else
+ {
+ TagLib::ID3v2::TextIdentificationFrame *frame;
+ frame = new TagLib::ID3v2::TextIdentificationFrame(id3v2_key, type);
+ frame->setText(composer);
+ id3v2_tag->addFrame(frame);
+ }
+ return;
+ }
+ }
+ else if(m_tagType == TagLib::MPEG::File::APE)
+ type = TagLib::String::UTF8;
+
+ TagLib::String str = TagLib::String(m_codec->fromUnicode(value).constData(), type);
+
+ switch((int) key)
+ {
+ case Qmmp::TITLE:
+ m_tag->setTitle(str);
+ break;
+ case Qmmp::ARTIST:
+ m_tag->setArtist(str);
+ break;
+ case Qmmp::ALBUM:
+ m_tag->setAlbum(str);
+ break;
+ case Qmmp::COMMENT:
+ m_tag->setComment(str);
+ break;
+ case Qmmp::GENRE:
+ m_tag->setGenre(str);
+ break;
+ case Qmmp::YEAR:
+ m_tag->setYear(value.toInt());
+ break;
+ case Qmmp::TRACK:
+ m_tag->setTrack(value.toInt());
+ }
+}
+
+bool MpegFileTagModel::exists()
+{
+ return (m_tag != 0);
+}
+
+void MpegFileTagModel::create()
+{
+ if (m_tag)
+ return;
+ if (m_tagType == TagLib::MPEG::File::ID3v1)
+ m_tag = m_file->ID3v1Tag(TRUE);
+ else if (m_tagType == TagLib::MPEG::File::ID3v2)
+ m_tag = m_file->ID3v2Tag(TRUE);
+ else if (m_tagType == TagLib::MPEG::File::APE)
+ m_tag = m_file->APETag(TRUE);
+}
+
+void MpegFileTagModel::remove()
+{
+ m_tag = 0;
+}
+
+void MpegFileTagModel::save()
+{
+ if(m_tag)
+ {
+ m_file->save(m_tagType, FALSE); //??
+ m_file->save(m_tagType, FALSE);
+ }
+ else
+ m_file->strip(m_tagType);
+}
diff --git a/src/plugins/Input/mad/mpegmetadatamodel.h b/src/plugins/Input/mad/mpegmetadatamodel.h
new file mode 100644
index 000000000..0b134fd3f
--- /dev/null
+++ b/src/plugins/Input/mad/mpegmetadatamodel.h
@@ -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. *
+ ***************************************************************************/
+
+#ifndef MPEGMETADATAMODEL_H
+#define MPEGMETADATAMODEL_H
+
+#include <qmmp/metadatamodel.h>
+#include <taglib/mpegfile.h>
+
+class QTextCodec;
+
+class MPEGMetaDataModel : public MetaDataModel
+{
+public:
+ MPEGMetaDataModel(const QString &path, QObject *parent);
+ ~MPEGMetaDataModel();
+ QHash<QString, QString> audioProperties();
+ QList<TagModel* > tags();
+
+private:
+ QString m_path;
+ QList<TagModel* > m_tags;
+};
+
+class MpegFileTagModel : public TagModel
+{
+public:
+ MpegFileTagModel(const QString &path, TagLib::MPEG::File::TagTypes tagType);
+ ~MpegFileTagModel();
+ const QString name();
+ QList<Qmmp::MetaData> keys();
+ const QString value(Qmmp::MetaData key);
+ void setValue(Qmmp::MetaData key, const QString &value);
+ bool exists();
+ void create();
+ void remove();
+ void save();
+
+private:
+ QTextCodec *m_codec;
+ TagLib::MPEG::File *m_file;
+ TagLib::Tag *m_tag;
+ TagLib::MPEG::File::TagTypes m_tagType;
+};
+
+#endif // MPEGMETADATAMODEL_H
diff --git a/src/plugins/Input/mad/translations/mad_plugin_cs.ts b/src/plugins/Input/mad/translations/mad_plugin_cs.ts
index f2279648e..be0ed634a 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_cs.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_cs.ts
@@ -14,231 +14,107 @@
<translation>Soubory MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>O modulu MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Vstupní modul Qmmp MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Zkompilováno s libmad verze:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Zdrojový kód je založen na projektu mq3</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="122"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
- <translation>Formát</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="124"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <translation type="unfinished">Formát</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="124"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
- <translation>Datový tok</translation>
+ <translation type="unfinished">Datový tok</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="126"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="126"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
- <translation>Vzorkovací frekvence</translation>
+ <translation type="unfinished">Vzorkovací frekvence</translation>
+ </message>
+ <message>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="130"/>
- <location filename="../detailsdialog.cpp" line="133"/>
- <location filename="../detailsdialog.cpp" line="136"/>
- <location filename="../detailsdialog.cpp" line="139"/>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
<source>Mode</source>
- <translation>Režim</translation>
+ <translation type="unfinished">Režim</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="142"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>KB</translation>
+ <translation type="unfinished">KB</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="143"/>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
<source>File size</source>
- <translation>Velikost souboru</translation>
+ <translation type="unfinished">Velikost souboru</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="145"/>
- <location filename="../detailsdialog.cpp" line="149"/>
- <location filename="../detailsdialog.cpp" line="153"/>
- <source>Yes</source>
- <translation>Ano</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
+ <translation type="unfinished">Ochrana</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="145"/>
- <location filename="../detailsdialog.cpp" line="147"/>
- <source>Protection</source>
- <translation>Ochrana</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Ano</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="147"/>
- <location filename="../detailsdialog.cpp" line="151"/>
- <location filename="../detailsdialog.cpp" line="155"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>No</source>
- <translation>Ne</translation>
+ <translation type="unfinished">Ne</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="149"/>
- <location filename="../detailsdialog.cpp" line="151"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
<source>Copyright</source>
- <translation>Copyright</translation>
+ <translation type="unfinished">Copyright</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="153"/>
- <location filename="../detailsdialog.cpp" line="155"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>Original</source>
- <translation>Originál</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Podrobnosti</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="120"/>
- <source>-</source>
- <translation>-</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="410"/>
- <source>Save</source>
- <translation>Uložit</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="319"/>
- <source>Year:</source>
- <translation>Rok:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="238"/>
- <source>Genre:</source>
- <translation>Žánr:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="70"/>
- <source>Tags</source>
- <translation>Tagy</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="114"/>
- <source>Audio Properties</source>
- <translation>Vlastnosti</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="222"/>
- <source>Composer:</source>
- <translation>Skladatel:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="266"/>
- <source>Disc number:</source>
- <translation>Číslo disku:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="273"/>
- <location filename="../detailsdialog.ui" line="306"/>
- <location filename="../detailsdialog.ui" line="335"/>
- <source>?</source>
- <translation>?</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="288"/>
- <source>Track:</source>
- <translation>Stopa:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="356"/>
- <source>Comment:</source>
- <translation>Komentář:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="199"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="173"/>
- <source>Artist:</source>
- <translation>Umělec:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="147"/>
- <source>Title:</source>
- <translation>Název:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="369"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="417"/>
- <source>Close</source>
- <translation>Zavřít</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="170"/>
- <location filename="../detailsdialog.ui" line="76"/>
- <location filename="../detailsdialog.ui" line="135"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="176"/>
- <location filename="../detailsdialog.ui" line="83"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="182"/>
- <location filename="../detailsdialog.ui" line="90"/>
- <source>APE</source>
- <translation>APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="396"/>
- <source>Create</source>
- <translation>Vytvořit</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="403"/>
- <source>Delete</source>
- <translation>Odstranit</translation>
+ <translation type="unfinished">Originál</translation>
</message>
</context>
<context>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_de.ts b/src/plugins/Input/mad/translations/mad_plugin_de.ts
index c4b39054a..49b3ac77d 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_de.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_de.ts
@@ -14,224 +14,107 @@
<translation>MPEG-Dateien</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>Über MPEG-Audio-Modul</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Qmmp MPEG-Audio-Modul</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Kompiliert gegen libmad-Version:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Quellcode basiert auf dem mq3-Projekt</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
- <translation>Format</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <translation type="unfinished">Format</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
- <translation>Bitrate</translation>
+ <translation type="unfinished">Bitrate</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
- <translation>Abtastrate</translation>
+ <translation type="unfinished">Abtastrate</translation>
+ </message>
+ <message>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
<source>Mode</source>
- <translation>Modus</translation>
+ <translation type="unfinished">Modus</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>KB</translation>
+ <translation type="unfinished">KB</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="136"/>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
<source>File size</source>
- <translation>Dateigröße</translation>
+ <translation type="unfinished">Dateigröße</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Ja</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
+ <translation type="unfinished">Geschützt</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation>Geschützt</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Ja</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>No</source>
- <translation>Nein</translation>
+ <translation type="unfinished">Nein</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
<source>Copyright</source>
- <translation>Copyright</translation>
+ <translation type="unfinished">Copyright</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>Original</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation>-</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Speichern</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Jahr:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Genre:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation>Tags</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation>CD-Nummer:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation>Komponist:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation>Stück:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Kommentar:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Interpret:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Titel:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation>Details</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation>Audio-Eigenschaften</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Schließen</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>Erstellen</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Löschen</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_it.ts b/src/plugins/Input/mad/translations/mad_plugin_it.ts
index f5dbd9405..db8dfb39f 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_it.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_it.ts
@@ -14,221 +14,108 @@
<translation>Brani MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>Info sul modulo audio MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Modulo audio MPEG per Qmmp</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Compilato con libmad-Version:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autore: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Codice sorgente basato sul progetto mq3</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
+ </message>
+ <message>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
<source>Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>KB</translation>
+ <translation type="unfinished">KB</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="136"/>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Sì</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
<source>Protection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Sì</translation>
+ </message>
+ <message>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>No</source>
- <translation>No</translation>
+ <translation type="unfinished">No</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
<source>Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>Original</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation>-</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Salva</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Anno:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Genere:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Commento:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Interprete:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Titolo:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Chiudi</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>Crea</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Elimina</translation>
- </message>
</context>
<context>
<name>SettingsDialog</name>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_lt.ts b/src/plugins/Input/mad/translations/mad_plugin_lt.ts
index e6b8b7db8..13de2c57b 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_lt.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_lt.ts
@@ -14,221 +14,108 @@
<translation>MPEG bylos</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>Apie MPEG audio įskiepį</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Qmmp MPEG įskiepis</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Sukurta libmad pagrindu:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Sukūrė: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Išvesties kodas sukurtas mq3 pagrindu</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
- <source>Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="136"/>
- <source>File size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Taip</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>No</source>
- <translation>Ne</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <source>Copyright</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>Original</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Išsaugoti</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Metai:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Žanras:</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
+ <source>Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Komentaras:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Albumas:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Atlikėjas:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Pavadinimas:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Užverti</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>КB</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation type="unfinished">ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation type="unfinished">ID3v2</translation>
+ <translation type="unfinished">КB</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
+ <source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Taip</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>No</source>
+ <translation type="unfinished">Ne</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <source>Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>Original</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>sukurti</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Ištrinti</translation>
- </message>
</context>
<context>
<name>SettingsDialog</name>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_pl.ts b/src/plugins/Input/mad/translations/mad_plugin_pl.ts
index 24369cb28..8cddd1647 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_pl.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_pl.ts
@@ -14,220 +14,107 @@
<translation>Pliki MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>O wtyczce Audio MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Wtyczka MPEG Audio dla Qmmp</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Skompilowane przy użyciu biblioteki libmad w wersji:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Kod źródłowy oparty na projekcie mq3</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
- <translation>Format</translation>
+ <translation type="unfinished">Format</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
- <translation>Szybkość transmisji</translation>
+ <translation type="unfinished">Szybkość transmisji</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
- <translation>Próbkowanie</translation>
+ <translation type="unfinished">Próbkowanie</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
<source>Mode</source>
- <translation>Tryb</translation>
+ <translation type="unfinished">Tryb</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="136"/>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
<source>File size</source>
- <translation>Wielkość pliku</translation>
+ <translation type="unfinished">Wielkość pliku</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Tak</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
+ <translation type="unfinished">Zabezpieczenie</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation>Zabezpieczenie</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Tak</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>No</source>
- <translation>Nie</translation>
+ <translation type="unfinished">Nie</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
<source>Copyright</source>
- <translation>Prawa autorskie</translation>
+ <translation type="unfinished">Prawa autorskie</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>Original</source>
- <translation>Oryginał</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Tytuł:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation>Informacje o pliku</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Artysta:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Komentarz:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Rok:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation>Tagi</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation>Numer albumu:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation>Kompozytor:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Gatunek:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation>Numer utworu:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation>Właściwości Audio</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>Utwórz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Usuń</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Zapisz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Zamknij</translation>
+ <translation type="unfinished">Oryginał</translation>
</message>
</context>
<context>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_ru.ts b/src/plugins/Input/mad/translations/mad_plugin_ru.ts
index 39976d1e8..6f337c558 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_ru.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_ru.ts
@@ -14,220 +14,107 @@
<translation>Файлы MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>Об аудио-модуле MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Аудио-модуль MPEG для Qmmp</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Собрано с версией libmad:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Исходный код основан на проекте mq3</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
- <translation>Формат</translation>
+ <translation type="unfinished">Формат</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
- <translation>Битовая частота</translation>
+ <translation type="unfinished">Битовая частота</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Гц</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">Кб/с</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
- <translation>Дискретизация</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
- <source>Mode</source>
- <translation>Режим</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="136"/>
- <source>File size</source>
- <translation>Размер файла</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Есть</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation>Защита</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>No</source>
- <translation>Нет</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <source>Copyright</source>
- <translation>Авторские права</translation>
+ <translation type="unfinished">Дискретизация</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>Original</source>
- <translation>Оригинальный</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Сохранить</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Год:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Жанр:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation>Теги</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation>Номер диска:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation>Композитор:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation>Трек:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Комментарий:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Альбом:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Исполнитель:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Название:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation>Иформация</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation>Свойства аудио</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Закрыть</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Гц</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
+ <source>Mode</source>
+ <translation type="unfinished">Режим</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation type="unfinished">Кб</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>Кб/с</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
+ <source>File size</source>
+ <translation type="unfinished">Размер файла</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
+ <translation type="unfinished">Защита</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Есть</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>No</source>
+ <translation type="unfinished">Нет</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>Создать</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <source>Copyright</source>
+ <translation type="unfinished">Авторские права</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Удалить</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>Original</source>
+ <translation type="unfinished">Оригинальный</translation>
</message>
</context>
<context>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_tr.ts b/src/plugins/Input/mad/translations/mad_plugin_tr.ts
index b6cb95e35..6678b4675 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_tr.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_tr.ts
@@ -14,221 +14,108 @@
<translation>MPEG Dosyaları</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>MPEG Ses Eklentisi Hakkında</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Qmmp MPEG Ses Eklentisi</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Derlendiği libmad sürümü:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Yazan: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Kaynak kodu mq3 projesi temellidir</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>Bitrate</source>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Samplerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Samplerate</source>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
<source>Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="136"/>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
<source>Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
<source>Original</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation type="unfinished">ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation type="unfinished">ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation type="unfinished">APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>SettingsDialog</name>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts b/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts
index a0cbbc579..de32bc3e3 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts
@@ -14,220 +14,107 @@
<translation>Файли MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>Про аудіо-модуль MPEG</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Аудіо-модуль MPEG для Qmmp</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>Зібрано з версією libmad:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>Вихідний код базується на проекті mq3</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
- <translation>Формат</translation>
+ <translation type="unfinished">Формат</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
- <translation>Бітрейт</translation>
+ <translation type="unfinished">Бітрейт</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Гц</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">Кб/с</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
- <translation>Частота</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
- <source>Mode</source>
- <translation>Режим</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="136"/>
- <source>File size</source>
- <translation>Розмір файла</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>Так</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation>Захищено</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>No</source>
- <translation>Ні</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <source>Copyright</source>
- <translation>Авторське право</translation>
+ <translation type="unfinished">Частота</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>Original</source>
- <translation>Оригінал</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>Зберегти</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>Рік:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>Жанр:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
- <translation>Теги</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation>Номер диска:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
- <translation>Композитор:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
- <translation>Доріжка:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>Коментар:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>Альбом:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>Виконавець:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>Назва:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation>Інформація</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
- <translation>Властивості аудіо</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>Закрити</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Гц</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation>-</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
+ <source>Mode</source>
+ <translation type="unfinished">Режим</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="135"/>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation type="unfinished">Кб</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>Кб/с</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
+ <source>File size</source>
+ <translation type="unfinished">Розмір файла</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
+ <translation type="unfinished">Захищено</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">Так</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>No</source>
+ <translation type="unfinished">Ні</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>Створити</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <source>Copyright</source>
+ <translation type="unfinished">Авторське право</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>Видалити</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>Original</source>
+ <translation type="unfinished">Оригінал</translation>
</message>
</context>
<context>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts b/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts
index 0115b47f4..f25bbaf63 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts
@@ -14,221 +14,108 @@
<translation>MPEG 文件</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>关于 MPEG 音频插件</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Qmmp MPEG 音频插件</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>编译基于 libmad 的版本:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>源代码基于 mq3 项目</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
- <source>Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="136"/>
- <source>File size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>是</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>No</source>
- <translation>否</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <source>Copyright</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>Original</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>保存</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>年代:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>流派:</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
+ <source>Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
+ <source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>备注:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>专辑:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>艺术家:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>标题:</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">是</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>No</source>
+ <translation type="unfinished">否</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <source>Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>Original</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>关闭</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation>-</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="135"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>创建</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>删除</translation>
- </message>
</context>
<context>
<name>SettingsDialog</name>
diff --git a/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts b/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts
index fcb947694..67f9691f0 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts
@@ -14,221 +14,108 @@
<translation>MPEG 檔案</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="225"/>
+ <location filename="../decodermadfactory.cpp" line="223"/>
<source>About MPEG Audio Plugin</source>
<translation>關於 MPEG 聲訊插件</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="226"/>
+ <location filename="../decodermadfactory.cpp" line="224"/>
<source>Qmmp MPEG Audio Plugin</source>
<translation>Qmmp MPEG 聲訊插件</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="227"/>
+ <location filename="../decodermadfactory.cpp" line="225"/>
<source>Compiled against libmad version:</source>
<translation>編譯基於 libmad 的版本:</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="231"/>
+ <location filename="../decodermadfactory.cpp" line="229"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decodermadfactory.cpp" line="232"/>
+ <location filename="../decodermadfactory.cpp" line="230"/>
<source>Source code based on mq3 progect</source>
<translation>源碼基於 mq3 項目</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPEGMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="115"/>
+ <location filename="../mpegmetadatamodel.cpp" line="69"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="117"/>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
- <source>Hz</source>
- <translation>Hz</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="71"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="119"/>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
<source>Samplerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="123"/>
- <location filename="../detailsdialog.cpp" line="126"/>
- <location filename="../detailsdialog.cpp" line="129"/>
- <location filename="../detailsdialog.cpp" line="132"/>
- <source>Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="136"/>
- <source>File size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="146"/>
- <source>Yes</source>
- <translation>是</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="138"/>
- <location filename="../detailsdialog.cpp" line="140"/>
- <source>Protection</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="140"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>No</source>
- <translation>否</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="142"/>
- <location filename="../detailsdialog.cpp" line="144"/>
- <source>Copyright</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="146"/>
- <location filename="../detailsdialog.cpp" line="148"/>
- <source>Original</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="385"/>
- <source>Save</source>
- <translation>儲存</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="263"/>
- <source>Year:</source>
- <translation>年代:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="182"/>
- <source>Genre:</source>
- <translation>流派:</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="73"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="49"/>
- <source>Tags</source>
+ <location filename="../mpegmetadatamodel.cpp" line="77"/>
+ <location filename="../mpegmetadatamodel.cpp" line="80"/>
+ <location filename="../mpegmetadatamodel.cpp" line="83"/>
+ <location filename="../mpegmetadatamodel.cpp" line="86"/>
+ <source>Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="210"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="89"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="166"/>
- <source>Composer:</source>
+ <location filename="../mpegmetadatamodel.cpp" line="90"/>
+ <source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="232"/>
- <source>Track:</source>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <source>Protection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="300"/>
- <source>Comment:</source>
- <translation>備註:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="143"/>
- <source>Album:</source>
- <translation>專輯:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="117"/>
- <source>Artist:</source>
- <translation>藝術家:</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="91"/>
- <source>Title:</source>
- <translation>標題:</translation>
+ <location filename="../mpegmetadatamodel.cpp" line="92"/>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <source>Yes</source>
+ <translation type="unfinished">是</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="14"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpegmetadatamodel.cpp" line="94"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>No</source>
+ <translation type="unfinished">否</translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="313"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <location filename="../mpegmetadatamodel.cpp" line="96"/>
+ <location filename="../mpegmetadatamodel.cpp" line="98"/>
+ <source>Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.ui" line="339"/>
- <source>Audio Properties</source>
+ <location filename="../mpegmetadatamodel.cpp" line="100"/>
+ <location filename="../mpegmetadatamodel.cpp" line="102"/>
+ <source>Original</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../detailsdialog.ui" line="392"/>
- <source>Close</source>
- <translation>關閉</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="345"/>
- <source>-</source>
- <translation>-</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="135"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="117"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="163"/>
- <location filename="../detailsdialog.ui" line="55"/>
- <location filename="../detailsdialog.ui" line="79"/>
- <source>ID3v1</source>
- <translation>ID3v1</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="169"/>
- <location filename="../detailsdialog.ui" line="62"/>
- <source>ID3v2</source>
- <translation>ID3v2</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="175"/>
- <location filename="../detailsdialog.ui" line="69"/>
- <source>APE</source>
- <translation>APE</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="371"/>
- <source>Create</source>
- <translation>建立</translation>
- </message>
- <message>
- <location filename="../detailsdialog.ui" line="378"/>
- <source>Delete</source>
- <translation>移除</translation>
- </message>
</context>
<context>
<name>SettingsDialog</name>
diff --git a/src/plugins/Input/modplug/decoder_modplug.cpp b/src/plugins/Input/modplug/decoder_modplug.cpp
index c33716f28..bee4feed4 100644
--- a/src/plugins/Input/modplug/decoder_modplug.cpp
+++ b/src/plugins/Input/modplug/decoder_modplug.cpp
@@ -113,7 +113,7 @@ int DecoderModPlug::bitrate()
qint64 DecoderModPlug::readAudio(char *audio, qint64 maxSize)
{
long len = m_soundFile->Read (audio, qMin((qint64)Buffer::size(), maxSize)) * m_sampleSize;
- if (m_usePreamp)
+ /*if (m_usePreamp)
{
{
//apply preamp
@@ -143,7 +143,7 @@ qint64 DecoderModPlug::readAudio(char *audio, qint64 maxSize)
}
}
}
- }
+ }*/
return len;
}
diff --git a/src/qmmp/CMakeLists.txt b/src/qmmp/CMakeLists.txt
index e6a7823b0..6cee8ee22 100644
--- a/src/qmmp/CMakeLists.txt
+++ b/src/qmmp/CMakeLists.txt
@@ -52,8 +52,8 @@ SET(libqmmp_SRCS
qmmp.cpp
statehandler.cpp
volumecontrol.cpp
- abstractdetailsdialog.cpp
- coverwidget.cpp
+ metadatamodel.cpp
+ tagmodel.cpp
)
SET(libqmmp_MOC_HDRS
@@ -76,8 +76,8 @@ SET(libqmmp_MOC_HDRS
qmmp.h
statehandler.h
volumecontrol.h
- abstractdetailsdialog.h
- coverwidget.h
+ metadatamodel.h
+ tagmodel.h
)
SET(libqmmp_DEVEL_HDRS
@@ -96,23 +96,17 @@ SET(libqmmp_DEVEL_HDRS
visualfactory.h
visual.h
volumecontrol.h
- abstractdetailsdialog.h
-)
-
-SET(qmmp_UIS
- forms/abstractdetailsdialog.ui
+ metadatamodel.h
+ tagmodel.h
)
QT4_WRAP_CPP(libqmmp_MOC_SRCS ${libqmmp_MOC_HDRS})
-QT4_WRAP_UI(qmmp_UIS_H ${qmmp_UIS})
# Don't forget to include output directory, otherwise
# the UI file won't be wrapped!
include_directories(${CMAKE_CURRENT_BINARY_DIR})
-QT4_ADD_RESOURCES(libqmmpui_RCC_SRCS translations/libqmmp_locales.qrc)
-
-ADD_LIBRARY(libqmmp SHARED ${libqmmp_SRCS} ${libqmmp_MOC_SRCS} ${qmmp_UIS_H} ${libqmmpui_RCC_SRCS})
+ADD_LIBRARY(libqmmp SHARED ${libqmmp_SRCS} ${libqmmp_MOC_SRCS})
target_link_libraries(libqmmp ${QT_LIBRARIES} ${CURL_LDFLAGS} ${CURL_CFLAGS})
SET_TARGET_PROPERTIES(libqmmp PROPERTIES VERSION ${QMMP_VERSION} SOVERSION ${QMMP_SOVERSION} OUTPUT_NAME qmmp)
install(TARGETS libqmmp LIBRARY DESTINATION ${LIB_DIR}
diff --git a/src/qmmp/abstractdetailsdialog.cpp b/src/qmmp/abstractdetailsdialog.cpp
deleted file mode 100644
index 70bf07de3..000000000
--- a/src/qmmp/abstractdetailsdialog.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/***************************************************************************
- * 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 <QPushButton>
-#include <QFileInfo>
-#include <QDir>
-#include "decoder.h"
-#include "ui_abstractdetailsdialog.h"
-#include "abstractdetailsdialog.h"
-
-AbstractDetailsDialog::AbstractDetailsDialog(QWidget *parent)
- : QDialog(parent)
-{
- ui = new Ui::AbstractDetailsDialog();
- ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
- connect(ui->buttonBox, SIGNAL(clicked (QAbstractButton *)),SLOT(processButton(QAbstractButton *)));
-}
-
-AbstractDetailsDialog::~AbstractDetailsDialog()
-{
- delete ui;
-}
-
-void AbstractDetailsDialog::hideSaveButton(bool hide)
-{
- ui->buttonBox->button(QDialogButtonBox::Save)->setHidden(hide);
-}
-
-void AbstractDetailsDialog::blockSaveButton(bool block)
-{
- ui->buttonBox->button(QDialogButtonBox::Save)->setDisabled(block);
-}
-
-void AbstractDetailsDialog::setMetaData(Qmmp::MetaData key, const QString &value)
-{
- switch((int) key)
- {
- case Qmmp::TITLE:
- ui->titleLineEdit->setText(value);
- break;
- case Qmmp::ARTIST:
- ui->artistLineEdit->setText(value);
- break;
- case Qmmp::ALBUM:
- ui->albumLineEdit->setText(value);
- break;
- case Qmmp::COMMENT:
- ui->commentBrowser->setPlainText(value);
- break;
- case Qmmp::GENRE:
- ui->genreLineEdit->setText(value);
- break;
- case Qmmp::COMPOSER:
- return ui->composerLineEdit->setText(value);
- break;
- case Qmmp::YEAR:
- ui->yearSpinBox->setValue(value.toInt());
- break;
- case Qmmp::TRACK:
- ui->trackSpinBox->setValue(value.toInt());
- break;
- case Qmmp::DISCNUMBER:
- ui->discSpinBox->setValue(value.toInt());
- break;
- case Qmmp::URL:
- ui->pathLineEdit->setText(value);
- setWindowTitle (value.section('/',-1));
- QPixmap pix = Decoder::findCover(value);
- if(pix.isNull())
- ui->coverWidget->hide();
- else
- ui->coverWidget->setPixmap(pix);
- }
-}
-
-void AbstractDetailsDialog::writeTags()
-{
-
-}
-
-void AbstractDetailsDialog::setMetaData(Qmmp::MetaData key, int value)
-{
- setMetaData(key, QString("%1").arg(value));
-}
-
-void AbstractDetailsDialog::setAudioProperties(QMap <QString, QString> p)
-{
- QString formattedText;
- formattedText.append("<TABLE>");
- foreach(QString key, p.keys())
- {
- formattedText.append("<tr>");
- formattedText.append("<td>" + key + ":</td> <td style=\"padding-left: 5px; \"><b>"
- + p.value(key) + "</b></td>");
- formattedText.append("</tr>");
- }
- formattedText.append("</TABLE>");
- ui->propertiesLabel->setText(formattedText);
-}
-
-void AbstractDetailsDialog::processButton(QAbstractButton *button)
-{
- switch((int) ui->buttonBox->standardButton(button))
- {
- case QDialogButtonBox::Close:
- close();
- break;
- case QDialogButtonBox::Save:
- writeTags();
- break;
- }
-}
-
-const QString AbstractDetailsDialog::strMetaData(Qmmp::MetaData key)
-{
- switch((int) key)
- {
- case Qmmp::TITLE:
- return ui->titleLineEdit->text();
- case Qmmp::ARTIST:
- return ui->artistLineEdit->text();
- case Qmmp::ALBUM:
- return ui->albumLineEdit->text();
- case Qmmp::COMMENT:
- return ui->commentBrowser->toPlainText();
- case Qmmp::GENRE:
- return ui->genreLineEdit->text();
- case Qmmp::COMPOSER:
- return ui->composerLineEdit->text();
- case Qmmp::YEAR:
- return QString("%1").arg(ui->yearSpinBox->value());
- case Qmmp::TRACK:
- return QString("%1").arg(ui->trackSpinBox->value());
- case Qmmp::DISCNUMBER:
- return QString("%1").arg(ui->discSpinBox->value());
- case Qmmp::URL:
- return ui->pathLineEdit->text();
- }
- return QString();
-}
-
-int AbstractDetailsDialog::intMetaData(Qmmp::MetaData key)
-{
- return strMetaData(key).toInt();
-}
diff --git a/src/qmmp/decoderfactory.h b/src/qmmp/decoderfactory.h
index f96057e97..155c1f6fb 100644
--- a/src/qmmp/decoderfactory.h
+++ b/src/qmmp/decoderfactory.h
@@ -30,6 +30,7 @@ class QTranslator;
class Decoder;
class Output;
class FileInfo;
+class MetaDataModel;
/*! @brief Helper class to store input plugin properies.
* @author Ilya Kotov <forkotov02@hotmail.ru>
@@ -98,12 +99,12 @@ public:
*/
virtual QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData) = 0;
/*!
- * Shows details dialog.
- * @param parent Parent widget.
+ * Creats metadata object, which provides full access to file tags.
* @param path File path.
- * @return Dialog pointer.
+ * @param parent Parent object.
+ * @return MetaDataModel pointer.
*/
- virtual QObject* showDetails(QWidget *parent, const QString &path) = 0;
+ virtual MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0) = 0;
/*!
* Shows settings dialog.
* @param parent Parent widget.
diff --git a/src/qmmp/forms/abstractdetailsdialog.ui b/src/qmmp/forms/abstractdetailsdialog.ui
deleted file mode 100644
index 39bf65528..000000000
--- a/src/qmmp/forms/abstractdetailsdialog.ui
+++ /dev/null
@@ -1,372 +0,0 @@
-<ui version="4.0" >
- <class>AbstractDetailsDialog</class>
- <widget class="QDialog" name="AbstractDetailsDialog" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>630</width>
- <height>383</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Details</string>
- </property>
- <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="3" >
- <widget class="QLineEdit" name="pathLineEdit" >
- <property name="readOnly" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item rowspan="2" row="1" column="0" >
- <layout class="QVBoxLayout" name="verticalLayout_2" >
- <item>
- <widget class="CoverWidget" native="1" name="coverWidget" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>110</width>
- <height>110</height>
- </size>
- </property>
- <property name="maximumSize" >
- <size>
- <width>110</width>
- <height>110</height>
- </size>
- </property>
- <property name="Visible" stdset="0" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="title" >
- <string>Audio Properties</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout" >
- <item>
- <widget class="QLabel" name="propertiesLabel" >
- <property name="text" >
- <string>-</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="1" colspan="2" >
- <widget class="QGroupBox" name="tagGroupBox" >
- <property name="title" >
- <string>Metadata</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_2" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_47" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Title:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLineEdit" name="titleLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_43" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Artist:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QLineEdit" name="artistLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label_45" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Album:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QLineEdit" name="albumLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="label_8" >
- <property name="text" >
- <string>Composer:</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLineEdit" name="composerLineEdit" />
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="label_46" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Genre:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="4" column="1" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <widget class="QLineEdit" name="genreLineEdit" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_11" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Disc number:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="discSpinBox" >
- <property name="specialValueText" >
- <string>?</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="5" column="0" >
- <widget class="QLabel" name="label_42" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Track:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="5" column="1" >
- <layout class="QHBoxLayout" name="horizontalLayout_2" >
- <item>
- <widget class="QSpinBox" name="trackSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="specialValueText" >
- <string>?</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_44" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Year:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="yearSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="specialValueText" >
- <string>?</string>
- </property>
- <property name="suffix" >
- <string/>
- </property>
- <property name="maximum" >
- <number>2012</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="6" column="0" >
- <widget class="QLabel" name="label_48" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Comment:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="6" column="1" >
- <widget class="QTextBrowser" name="commentBrowser" >
- <property name="readOnly" >
- <bool>false</bool>
- </property>
- <property name="html" >
- <string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
-p, li { white-space: pre-wrap; }
-&lt;/style>&lt;/head>&lt;body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;">
-&lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;">&lt;/p>&lt;/body>&lt;/html></string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="2" column="1" >
- <spacer name="horizontalSpacer" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>192</width>
- <height>23</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="2" >
- <widget class="QDialogButtonBox" name="buttonBox" >
- <property name="standardButtons" >
- <set>QDialogButtonBox::Close|QDialogButtonBox::Save</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>CoverWidget</class>
- <extends>QWidget</extends>
- <header>coverwidget.h</header>
- <container>1</container>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/qmmp/metadatamodel.cpp b/src/qmmp/metadatamodel.cpp
new file mode 100644
index 000000000..799928baa
--- /dev/null
+++ b/src/qmmp/metadatamodel.cpp
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * 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 "metadatamodel.h"
+
+MetaDataModel::MetaDataModel(QObject *parent) : QObject(parent)
+{
+}
+
+MetaDataModel::~MetaDataModel()
+{
+
+}
+
+QHash<QString, QString> MetaDataModel::audioProperties()
+{
+ return QHash<QString, QString> ();
+}
+
+QList<TagModel* > MetaDataModel::tags()
+{
+ return QList<TagModel* > ();
+}
diff --git a/src/qmmp/metadatamodel.h b/src/qmmp/metadatamodel.h
new file mode 100644
index 000000000..f758c8ba3
--- /dev/null
+++ b/src/qmmp/metadatamodel.h
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * 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 METADATAMODEL_H
+#define METADATAMODEL_H
+
+#include <QHash>
+#include <QList>
+#include <QString>
+#include <QObject>
+#include "tagmodel.h"
+
+class MetaDataModel : public QObject
+{
+Q_OBJECT
+public:
+ MetaDataModel(QObject *parent = 0);
+ virtual ~MetaDataModel();
+ virtual QHash<QString, QString> audioProperties();
+ virtual QList<TagModel* > tags();
+};
+
+#endif // METADATAMODEL_H
diff --git a/src/qmmp/qmmp.pro b/src/qmmp/qmmp.pro
index efaa6ce43..1c80f602f 100644
--- a/src/qmmp/qmmp.pro
+++ b/src/qmmp/qmmp.pro
@@ -21,7 +21,8 @@ HEADERS += recycler.h \
fileinfo.h \
volumecontrol.h \
coverwidget.h \
- abstractdetailsdialog.h
+ metadatamodel.h \
+ tagmodel.h
SOURCES += recycler.cpp \
decoder.cpp \
output.cpp \
@@ -38,8 +39,9 @@ SOURCES += recycler.cpp \
fileinfo.cpp \
volumecontrol.cpp \
coverwidget.cpp \
- abstractdetailsdialog.cpp
-FORMS += forms/abstractdetailsdialog.ui
+ metadatamodel.cpp \
+ tagmodel.cpp
+FORMS +=
unix:TARGET = ../../lib/qmmp
win32:TARGET = ../../../bin/qmmp
CONFIG += release \
@@ -56,27 +58,12 @@ unix:isEmpty(LIB_DIR):LIB_DIR = /lib
unix:DEFINES += LIB_DIR=\\\"$$LIB_DIR\\\"
DEFINES += QMMP_VERSION=$$QMMP_VERSION
DEFINES += QMMP_STR_VERSION=\\\"$$QMMP_VERSION\\\"
-contains(CONFIG, SVN_VERSION) {
+contains(CONFIG, SVN_VERSION) {
unix:DEFINES += SVN_REVISION=\\\"$$system(./svn_revision.sh)\\\"
win32:DEFINES += SVN_REVISION=\\\"svn\\\"
}
-TRANSLATIONS = translations/libqmmp_ru.ts \
- translations/libqmmp_tr.ts \
- translations/libqmmp_zh_CN.ts \
- translations/libqmmp_cs.ts \
- translations/libqmmp_pt_BR.ts \
- translations/libqmmp_uk_UA.ts \
- translations/libqmmp_zh_TW.ts \
- translations/libqmmp_de.ts \
- translations/libqmmp_pl_PL.ts \
- translations/libqmmp_it.ts \
- translations/libqmmp_lt.ts \
- translations/libqmmp_pl.ts
-
-RESOURCES += translations/libqmmp_locales.qrc
-
-unix {
+unix {
target.path = $$LIB_DIR
devel.files += buffer.h \
decoderfactory.h \
@@ -99,5 +86,4 @@ unix {
devel
DESTDIR = .
}
-
INCLUDEPATH += ./
diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp
index 3c7ce7e79..44dbac11f 100644
--- a/src/qmmp/soundcore.cpp
+++ b/src/qmmp/soundcore.cpp
@@ -23,7 +23,6 @@
#include <QApplication>
#include <QSettings>
#include <QDir>
-#include <QTranslator>
#include "decoderfactory.h"
#include "streamreader.h"
@@ -64,10 +63,6 @@ SoundCore::SoundCore(QObject *parent)
connect(m_handler, SIGNAL(aboutToFinish()), SIGNAL(aboutToFinish()));
m_volumeControl = VolumeControl::create(this);
connect(m_volumeControl, SIGNAL(volumeChanged(int, int)), SIGNAL(volumeChanged(int, int)));
- //install translation
- QTranslator *translator = new QTranslator(parent);
- translator->load(QString(":/libqmmp_") + Qmmp::systemLanguageID());
- qApp->installTranslator(translator);
}
diff --git a/src/qmmp/tagmodel.cpp b/src/qmmp/tagmodel.cpp
new file mode 100644
index 000000000..d789d21e7
--- /dev/null
+++ b/src/qmmp/tagmodel.cpp
@@ -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. *
+ ***************************************************************************/
+
+#include "tagmodel.h"
+
+TagModel::TagModel()
+{
+}
+
+void TagModel::setValue(Qmmp::MetaData key, int value)
+{
+ setValue(key, QString::number(value));
+}
+
+QList<Qmmp::MetaData> TagModel::keys()
+{
+ QList<Qmmp::MetaData> list;
+ list << Qmmp::TITLE;
+ list << Qmmp::ARTIST;
+ list << Qmmp::ALBUM;
+ list << Qmmp::COMMENT;
+ list << Qmmp::GENRE;
+ list << Qmmp::COMPOSER;
+ list << Qmmp::YEAR;
+ list << Qmmp::TRACK;
+ list << Qmmp::DISCNUMBER;
+ return list;
+}
diff --git a/src/qmmp/abstractdetailsdialog.h b/src/qmmp/tagmodel.h
index 77b3375f3..d3b513877 100644
--- a/src/qmmp/abstractdetailsdialog.h
+++ b/src/qmmp/tagmodel.h
@@ -17,49 +17,28 @@
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef ABSTRACTDETAILSDIALOG_H
-#define ABSTRACTDETAILSDIALOG_H
-#include <QDialog>
-#include <QMap>
+#ifndef TAGMODEL_H
+#define TAGMODEL_H
+#include <QString>
+#include <QList>
#include "qmmp.h"
-/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
-*/
-
-namespace Ui
-{
- class AbstractDetailsDialog;
-}
-class QAbstractButton;
-
-class AbstractDetailsDialog : public QDialog
+class TagModel
{
- Q_OBJECT
public:
- AbstractDetailsDialog(QWidget *parent = 0);
-
- ~AbstractDetailsDialog();
-
- void hideSaveButton(bool hide = TRUE);
- void blockSaveButton(bool block = TRUE);
-
-protected:
- virtual void writeTags();
-
- void setMetaData(Qmmp::MetaData key, const QString &value);
- void setMetaData(Qmmp::MetaData key, int value);
- void setAudioProperties(QMap <QString, QString> p);
- const QString strMetaData(Qmmp::MetaData key);
- int intMetaData(Qmmp::MetaData key);
-
-private slots:
- void processButton(QAbstractButton *);
-
-private:
- Ui::AbstractDetailsDialog *ui;
+ TagModel();
+
+ virtual const QString name() = 0;
+ virtual QList<Qmmp::MetaData> keys();
+ virtual const QString value(Qmmp::MetaData key) = 0;
+ virtual void setValue(Qmmp::MetaData key, const QString &value) = 0;
+ virtual void setValue(Qmmp::MetaData key, int value);
+ virtual bool exists() = 0;
+ virtual void create() = 0;
+ virtual void remove() = 0;
+ virtual void save() = 0;
};
-#endif
+#endif // TAGMODEL_H
diff --git a/src/qmmp/translations/libqmmp_cs.ts b/src/qmmp/translations/libqmmp_cs.ts
deleted file mode 100644
index 99710dca4..000000000
--- a/src/qmmp/translations/libqmmp_cs.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="cs">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Podrobnosti</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation>Metadata</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Název:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Umělec:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>Číslo disku:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Skladatel:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Žánr:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation>?</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Stopa:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Rok:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Komentář:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation>Vlastnosti</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation>-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_de.ts b/src/qmmp/translations/libqmmp_de.ts
deleted file mode 100644
index 537554453..000000000
--- a/src/qmmp/translations/libqmmp_de.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Details</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished">Metadaten</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Titel:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Interpret:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>CD-Nummer:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Komponist:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Genre:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Stück:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Jahr:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Kommentar:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation>Audio-Eigenschaften</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation>-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_it.ts b/src/qmmp/translations/libqmmp_it.ts
deleted file mode 100644
index d3c3706fd..000000000
--- a/src/qmmp/translations/libqmmp_it.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="it">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Dettagli</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation>Metadata</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Titolo:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Interprete:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>Disco numero</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Compositore</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Genere:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Traccia</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Anno:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Commento:</translation>
- </message>
- <message>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation>-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_locales.qrc b/src/qmmp/translations/libqmmp_locales.qrc
deleted file mode 100644
index 51e96efc1..000000000
--- a/src/qmmp/translations/libqmmp_locales.qrc
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
- <qresource>
- <file>libqmmp_it.qm</file>
- <file>libqmmp_ru.qm</file>
- <file>libqmmp_uk_UA.qm</file>
- <file>libqmmp_zh_CN.qm</file>
- <file>libqmmp_zh_TW.qm</file>
- <file>libqmmp_cs.qm</file>
- <file>libqmmp_pl.qm</file>
- <file>libqmmp_de.qm</file>
- <file>libqmmp_tr.qm</file>
- <file>libqmmp_lt.qm</file>
- </qresource>
-</RCC>
diff --git a/src/qmmp/translations/libqmmp_lt.ts b/src/qmmp/translations/libqmmp_lt.ts
deleted file mode 100644
index 8b1f6bf7c..000000000
--- a/src/qmmp/translations/libqmmp_lt.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="lt">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished">Pavadinimas:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished">Atlikėjas:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished">Albumas:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished">Žanras:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished">Metai:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished">Komentaras:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_pl.ts b/src/qmmp/translations/libqmmp_pl.ts
deleted file mode 100644
index 4af57c1fe..000000000
--- a/src/qmmp/translations/libqmmp_pl.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="pl">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Informacje o pliku</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation>Metadane</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Tytuł:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Artysta:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Album:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>Numer płyty:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Kompozytor:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Gatunek:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Ścieżka:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Rok:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Komentarz:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation>Dane Audio</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_pl_PL.ts b/src/qmmp/translations/libqmmp_pl_PL.ts
deleted file mode 100644
index 149d2f10a..000000000
--- a/src/qmmp/translations/libqmmp_pl_PL.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_pt_BR.ts b/src/qmmp/translations/libqmmp_pt_BR.ts
deleted file mode 100644
index 149d2f10a..000000000
--- a/src/qmmp/translations/libqmmp_pt_BR.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_ru.ts b/src/qmmp/translations/libqmmp_ru.ts
deleted file mode 100644
index 74c454c54..000000000
--- a/src/qmmp/translations/libqmmp_ru.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ru">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Информация</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation>Метаинформация</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Название:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Исполнитель:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Альбом:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>Номер диска:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Композитор:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Жанр:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Трек:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Год:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Комментарий:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation>Свойства аудио</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_tr.ts b/src/qmmp/translations/libqmmp_tr.ts
deleted file mode 100644
index f8e6f8bdd..000000000
--- a/src/qmmp/translations/libqmmp_tr.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="tr_TR">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished">Başlık:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished">Artist:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished">Albüm:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished">Tür:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished">Yıl:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished">Yorum:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished">-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_uk_UA.ts b/src/qmmp/translations/libqmmp_uk_UA.ts
deleted file mode 100644
index 3f00cf8b7..000000000
--- a/src/qmmp/translations/libqmmp_uk_UA.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation>Інформація</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation>Метадані</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation>Назва:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation>Виконавець:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation>Альбом:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation>Номер диску:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation>Композитор:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation>Жанр:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation>Трек:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation>Рік:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation>Коментар:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation>Властивості аудіо</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation></translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_zh_CN.ts b/src/qmmp/translations/libqmmp_zh_CN.ts
deleted file mode 100644
index 1e40b7db8..000000000
--- a/src/qmmp/translations/libqmmp_zh_CN.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="zh_CN">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished">标题:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished">艺术家:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished">专辑:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished">流派:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished">年代:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished">备注:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished">-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmp/translations/libqmmp_zh_TW.ts b/src/qmmp/translations/libqmmp_zh_TW.ts
deleted file mode 100644
index db150ca71..000000000
--- a/src/qmmp/translations/libqmmp_zh_TW.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="zh_TW">
-<context>
- <name>AbstractDetailsDialog</name>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="13"/>
- <source>Details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="95"/>
- <source>Metadata</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="107"/>
- <source>Title:</source>
- <translation type="unfinished">標題:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="133"/>
- <source>Artist:</source>
- <translation type="unfinished">藝術家:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="159"/>
- <source>Album:</source>
- <translation type="unfinished">專輯:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="226"/>
- <source>Disc number:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="329"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="182"/>
- <source>Composer:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="198"/>
- <source>Genre:</source>
- <translation type="unfinished">流派:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="233"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="266"/>
- <location filename="../forms/abstractdetailsdialog.ui" line="295"/>
- <source>?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="248"/>
- <source>Track:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="279"/>
- <source>Year:</source>
- <translation type="unfinished">年代:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="316"/>
- <source>Comment:</source>
- <translation type="unfinished">備註:</translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="74"/>
- <source>Audio Properties</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/abstractdetailsdialog.ui" line="80"/>
- <source>-</source>
- <translation type="unfinished">-</translation>
- </message>
-</context>
-</TS>
diff --git a/src/qmmpui/CMakeLists.txt b/src/qmmpui/CMakeLists.txt
index 5ff90bbcc..af54b4145 100644
--- a/src/qmmpui/CMakeLists.txt
+++ b/src/qmmpui/CMakeLists.txt
@@ -36,6 +36,8 @@ SET(libqmmpui_SRCS
playlistitem.cpp
mediaplayer.cpp
playlistsettings.cpp
+ detailsdialog.cpp
+ tageditor.cpp
)
SET(libqmmpui_MOC_HDRS
@@ -56,6 +58,8 @@ SET(libqmmpui_MOC_HDRS
playlistitem.h
mediaplayer.h
playlistsettings.h
+ detailsdialog.h
+ tageditor.h
)
SET(libqmmpui_DEVEL_HDRS
@@ -72,16 +76,25 @@ SET(libqmmpui_DEVEL_HDRS
playlistitem.h
playlistmodel.h
playlistparser.h
+ detailsdialog.h
+ tageditor.h
)
+SET(libqmmpui_UIS
+ detailsdialog.ui
+ tageditor.ui
+)
+
+QT4_WRAP_UI(libqmmpui_UIS_H ${libqmmpui_UIS})
+
QT4_ADD_RESOURCES(libqmmpui_RCC_SRCS translations/libqmmpui_locales.qrc)
QT4_WRAP_CPP(libqmmpui_MOC_SRCS ${libqmmpui_MOC_HDRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
-ADD_LIBRARY(qmmpui SHARED ${libqmmpui_SRCS} ${libqmmpui_MOC_SRCS} ${libqmmpui_RCC_SRCS})
+ADD_LIBRARY(qmmpui SHARED ${libqmmpui_SRCS} ${libqmmpui_MOC_SRCS} ${libqmmpui_RCC_SRCS} ${libqmmpui_UIS_H})
target_link_libraries(qmmpui ${QT_LIBRARIES} -lqmmp)
add_dependencies(qmmpui libqmmp)
SET_TARGET_PROPERTIES(qmmpui PROPERTIES VERSION ${QMMP_VERSION} SOVERSION ${QMMP_SOVERSION})
diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp
new file mode 100644
index 000000000..11d4a49a6
--- /dev/null
+++ b/src/qmmpui/detailsdialog.cpp
@@ -0,0 +1,128 @@
+/***************************************************************************
+ * 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 <QTextCodec>
+#include <QSettings>
+#include <QDir>
+#include <QFile>
+#include <QFileInfo>
+
+#include <qmmp/decoder.h>
+#include <qmmp/decoderfactory.h>
+#include <qmmp/metadatamodel.h>
+#include <qmmp/tagmodel.h>
+#include "abstractplaylistitem.h"
+#include "tageditor.h"
+#include "detailsdialog.h"
+
+DetailsDialog::DetailsDialog(AbstractPlaylistItem *item, QWidget *parent)
+ : QDialog(parent)
+{
+ setAttribute(Qt::WA_QuitOnClose, FALSE);
+ setAttribute(Qt::WA_DeleteOnClose, FALSE);
+ m_metaDataModel = 0;
+ ui.setupUi(this);
+ setAttribute(Qt::WA_DeleteOnClose);
+ m_path = item->url();
+ setWindowTitle (m_path.section('/',-1));
+ ui.pathEdit->setText(m_path);
+
+ DecoderFactory *fact = Decoder::findByPath(item->url());
+ if(fact)
+ m_metaDataModel = fact->createMetaDataModel(item->url(), this);
+ else
+ return;
+
+ printInfo();
+
+ foreach(TagModel *tagModel, m_metaDataModel->tags())
+ {
+ ui.tabWidget->addTab(new TagEditor(tagModel, this), tagModel->name());
+ }
+}
+
+DetailsDialog::~DetailsDialog()
+{}
+
+void DetailsDialog::printInfo()
+{
+ QList <FileInfo *> flist = Decoder::createPlayList(m_path, TRUE);
+ QMap <Qmmp::MetaData, QString> metaData;
+ if(!flist.isEmpty())
+ metaData = flist.at(0)->metaData();
+ /*else
+ TODO use metadata from playlist item*/
+ QString formattedText;
+ formattedText.append("<TABLE>");
+ //tags
+ formattedText += formatRow(tr("Title"), metaData[Qmmp::TITLE]);
+ formattedText += formatRow(tr("Artist"), metaData[Qmmp::ARTIST]);
+ formattedText += formatRow(tr("Album"), metaData[Qmmp::ALBUM]);
+ formattedText += formatRow(tr("Comment"), metaData[Qmmp::COMMENT]);
+ formattedText += formatRow(tr("Genre"), metaData[Qmmp::GENRE]);
+ formattedText += formatRow(tr("Composer"), metaData[Qmmp::COMPOSER]);
+ if(metaData[Qmmp::YEAR] != "0")
+ formattedText += formatRow(tr("Year"), metaData[Qmmp::YEAR]);
+ if(metaData[Qmmp::TRACK] != "0")
+ formattedText += formatRow(tr("Track"), metaData[Qmmp::TRACK]);
+ if(metaData[Qmmp::DISCNUMBER] != "0")
+ formattedText += formatRow(tr("Disc number"), metaData[Qmmp::DISCNUMBER]);
+ //audio info
+ if(!m_metaDataModel)
+ {
+ formattedText.append("</TABLE>");
+ ui.textEdit->setHtml(formattedText);
+ return;
+ }
+ QHash <QString, QString> ap = m_metaDataModel->audioProperties();
+ //line
+ formattedText.append("<tr>");
+ formattedText.append("<td colspan=2>");
+ formattedText.append("<hr>");
+ formattedText.append("</td>");
+ formattedText.append("</tr>");
+
+ foreach(QString key, ap.keys())
+ formattedText += formatRow(key, ap.value(key));
+
+ formattedText.append("</TABLE>");
+ ui.textEdit->setHtml(formattedText);
+}
+
+QString DetailsDialog::formatRow(const QString key, const QString value)
+{
+ if(value.isEmpty())
+ return QString();
+ QString str("<tr>");
+ str.append("<td><b>" + key + "</b></td> <td style=\"padding-left: 15px;\">" + value + "</td>");
+ str.append("</tr>");
+ return str;
+}
+
+void DetailsDialog::on_buttonBox_clicked(QAbstractButton *button)
+{
+ if(ui.buttonBox->standardButton(button) == QDialogButtonBox::Save)
+ {
+ TagEditor *tab = qobject_cast<TagEditor *> (ui.tabWidget->currentWidget());
+ if(tab)
+ tab->save();
+ }
+ else
+ reject();
+}
diff --git a/src/plugins/Input/mad/detailsdialog.h b/src/qmmpui/detailsdialog.h
index 7367cbf67..ce3dd7bff 100644
--- a/src/plugins/Input/mad/detailsdialog.h
+++ b/src/qmmpui/detailsdialog.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2008 by Ilya Kotov *
+ * Copyright (C) 2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,6 +23,7 @@
#include <QDialog>
#include <QList>
#include <QMap>
+#include <qmmp/qmmp.h>
#include "ui_detailsdialog.h"
@@ -31,33 +32,26 @@
*/
class QTextCodec;
+class AbstractPlaylistItem;
+class MetaDataModel;
class DetailsDialog : public QDialog
{
Q_OBJECT
public:
- DetailsDialog(QWidget *parent = 0, const QString &path = 0);
+ DetailsDialog(AbstractPlaylistItem *item, QWidget *parent = 0);
~DetailsDialog();
-protected:
- virtual void closeEvent (QCloseEvent *);
-
private slots:
- void save();
- void create();
- void deleteTag();
- void loadTag();
+ void on_buttonBox_clicked(QAbstractButton *button);
private:
- void loadMPEGInfo();
- uint selectedTag();
- void showAudioProperties(QMap <QString, QString> p);
Ui::DetailsDialog ui;
+ void printInfo();
QString m_path;
- QTextCodec *m_codec_v1;
- QTextCodec *m_codec_v2;
- bool m_rw;
+ QString formatRow(const QString key, const QString value);
+ MetaDataModel *m_metaDataModel;
};
diff --git a/src/qmmpui/detailsdialog.ui b/src/qmmpui/detailsdialog.ui
new file mode 100644
index 000000000..77261a1e6
--- /dev/null
+++ b/src/qmmpui/detailsdialog.ui
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DetailsDialog</class>
+ <widget class="QDialog" name="DetailsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>456</width>
+ <height>385</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Details</string>
+ </property>
+ <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="3" column="0">
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>192</width>
+ <height>23</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_5">
+ <attribute name="title">
+ <string>Summary</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0" colspan="2">
+ <widget class="QTextEdit" name="textEdit">
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="html">
+ <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLineEdit" name="pathEdit">
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close|QDialogButtonBox::Save</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index ddaa2ce23..893850e51 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -41,6 +41,7 @@
#include "playlistmodel.h"
#include "playlistitem.h"
#include "playstate.h"
+#include "detailsdialog.h"
#include "playlistsettings.h"
#include <QMetaType>
@@ -380,18 +381,11 @@ void PlayListModel::showDetails()
QMessageBox::information(0, m_items.at(i)->url(), str);
return;
}
-
- DecoderFactory *fact = Decoder::findByPath(m_items.at(i)->url());
- if (fact)
- {
- QObject* o = fact->showDetails(0, m_items.at(i)->url());
- if (o)
- {
- TagUpdater *updater = new TagUpdater(o,m_items.at(i));
- m_editing_items.append(m_items.at(i));
- connect(updater, SIGNAL(destroyed(QObject *)),SIGNAL(listChanged()));
- }
- }
+ QDialog *d = new DetailsDialog(m_items.at(i)); //TODO set parent widget
+ TagUpdater *updater = new TagUpdater(d, m_items.at(i));
+ m_editing_items.append(m_items.at(i));
+ connect(updater, SIGNAL(destroyed(QObject *)),SIGNAL(listChanged()));
+ d->show();
return;
}
}
diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro
index 17147e341..ea0cb623b 100644
--- a/src/qmmpui/qmmpui.pro
+++ b/src/qmmpui/qmmpui.pro
@@ -1,91 +1,87 @@
include(../../qmmp.pri)
-
unix:TARGET = ../../lib/qmmpui
win32:TARGET = ../../../bin/qmmpui
CONFIG += release \
-warn_on \
-shared \
-qt \
-thread
-
-QMAKE_LIBDIR += ../../lib qmmpui
+ warn_on \
+ shared \
+ qt \
+ thread
+QMAKE_LIBDIR += ../../lib \
+ qmmpui
LIBS += -Wl,-rpath,./
-unix:LIBS += -L../../lib -lqmmp
-win32:LIBS += -L../../bin -lqmmp0
+unix:LIBS += -L../../lib \
+ -lqmmp
+win32:LIBS += -L../../bin \
+ -lqmmp0
INCLUDEPATH += ../
-
TEMPLATE = lib
-
-unix : isEmpty(LIB_DIR){
- LIB_DIR = /lib
- }
-
+unix:isEmpty(LIB_DIR):LIB_DIR = /lib
VERSION = $$QMMP_VERSION
-
unix:target.path = $$LIB_DIR
-
HEADERS += general.h \
- generalfactory.h \
- generalhandler.h \
- playlistformat.h \
- playlistparser.h \
- commandlinemanager.h \
- commandlineoption.h \
- filedialog.h \
- filedialogfactory.h \
- qtfiledialog.h \
- abstractplaylistitem.h \
- playlistitem.h \
- playlistmodel.h \
- playstate.h \
- fileloader.h \
- mediaplayer.h \
- playlistsettings.h
+ generalfactory.h \
+ generalhandler.h \
+ playlistformat.h \
+ playlistparser.h \
+ commandlinemanager.h \
+ commandlineoption.h \
+ filedialog.h \
+ filedialogfactory.h \
+ qtfiledialog.h \
+ abstractplaylistitem.h \
+ playlistitem.h \
+ playlistmodel.h \
+ playstate.h \
+ fileloader.h \
+ mediaplayer.h \
+ playlistsettings.h \
+ detailsdialog.h \
+ tageditor.h
SOURCES += general.cpp \
- generalhandler.cpp \
- playlistparser.cpp \
- commandlinemanager.cpp \
- filedialog.cpp \
- qtfiledialog.cpp \
- abstractplaylistitem.cpp \
- playlistmodel.cpp \
- playstate.cpp \
- playlistitem.cpp \
- fileloader.cpp \
- mediaplayer.cpp \
- playlistsettings.cpp
-
+ generalhandler.cpp \
+ playlistparser.cpp \
+ commandlinemanager.cpp \
+ filedialog.cpp \
+ qtfiledialog.cpp \
+ abstractplaylistitem.cpp \
+ playlistmodel.cpp \
+ playstate.cpp \
+ playlistitem.cpp \
+ fileloader.cpp \
+ mediaplayer.cpp \
+ playlistsettings.cpp \
+ detailsdialog.cpp \
+ tageditor.cpp
+FORMS += detailsdialog.ui \
+ tageditor.ui
unix:DESTDIR = .
-
RESOURCES += translations/libqmmpui_locales.qrc
-
TRANSLATIONS = translations/libqmmpui_ru.ts \
- translations/libqmmpui_tr.ts \
- translations/libqmmpui_zh_CN.ts \
- translations/libqmmpui_cs.ts \
- translations/libqmmpui_pt_BR.ts \
- translations/libqmmpui_uk_UA.ts \
- translations/libqmmpui_zh_TW.ts \
- translations/libqmmpui_de.ts \
- translations/libqmmpui_it.ts \
- translations/libqmmpui_lt.ts \
- translations/libqmmpui_pl.ts
-unix {
-devel.files += abstractplaylistitem.h \
- commandlinemanager.h \
- commandlineoption.h \
- filedialogfactory.h \
- filedialog.h \
- generalfactory.h \
- general.h \
- generalhandler.h \
- mediaplayer.h \
- playlistformat.h \
- playlistitem.h \
- playlistmodel.h \
- playlistparser.h
-
-devel.path = /include/qmmpui
-
-INSTALLS += target devel
+ translations/libqmmpui_tr.ts \
+ translations/libqmmpui_zh_CN.ts \
+ translations/libqmmpui_cs.ts \
+ translations/libqmmpui_pt_BR.ts \
+ translations/libqmmpui_uk_UA.ts \
+ translations/libqmmpui_zh_TW.ts \
+ translations/libqmmpui_de.ts \
+ translations/libqmmpui_it.ts \
+ translations/libqmmpui_lt.ts \
+ translations/libqmmpui_pl.ts
+unix {
+ devel.files += abstractplaylistitem.h \
+ commandlinemanager.h \
+ commandlineoption.h \
+ filedialogfactory.h \
+ filedialog.h \
+ generalfactory.h \
+ general.h \
+ generalhandler.h \
+ mediaplayer.h \
+ playlistformat.h \
+ playlistitem.h \
+ playlistmodel.h \
+ playlistparser.h
+ devel.path = /include/qmmpui
+ INSTALLS += target \
+ devel
}
diff --git a/src/qmmpui/tageditor.cpp b/src/qmmpui/tageditor.cpp
new file mode 100644
index 000000000..5af62220c
--- /dev/null
+++ b/src/qmmpui/tageditor.cpp
@@ -0,0 +1,83 @@
+/***************************************************************************
+ * 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 <qmmp/tagmodel.h>
+#include "tageditor.h"
+#include "ui_tageditor.h"
+
+TagEditor::TagEditor(TagModel *tagModel, QWidget *parent) : QWidget(parent), m_ui(new Ui::TagEditor)
+{
+ m_ui->setupUi(this);
+ m_tagModel = tagModel;
+ //check available keys
+ m_ui->titleLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::TITLE));
+ m_ui->artistLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::ARTIST));
+ m_ui->albumLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::ALBUM));
+ m_ui->composerLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::COMPOSER));
+ m_ui->genreLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::GENRE));
+ m_ui->commentBrowser->setEnabled(m_tagModel->keys().contains(Qmmp::COMMENT));
+ m_ui->discSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::DISCNUMBER));
+ m_ui->yearSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::YEAR));
+ m_ui->trackSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::TRACK));
+
+ readTag();
+}
+
+TagEditor::~TagEditor()
+{
+ delete m_ui;
+}
+
+void TagEditor::save()
+{
+ if(m_ui->useCheckBox->isChecked())
+ {
+ if(!m_tagModel->exists())
+ m_tagModel->create();
+ m_tagModel->setValue(Qmmp::TITLE, m_ui->titleLineEdit->text());
+ m_tagModel->setValue(Qmmp::ARTIST, m_ui->artistLineEdit->text());
+ m_tagModel->setValue(Qmmp::ALBUM, m_ui->albumLineEdit->text());
+ m_tagModel->setValue(Qmmp::COMPOSER, m_ui->composerLineEdit->text());
+ m_tagModel->setValue(Qmmp::GENRE, m_ui->genreLineEdit->text());
+ m_tagModel->setValue(Qmmp::COMMENT, m_ui->commentBrowser->toPlainText ());
+ m_tagModel->setValue(Qmmp::DISCNUMBER, m_ui->discSpinBox->value());
+ m_tagModel->setValue(Qmmp::YEAR, m_ui->yearSpinBox->value());
+ m_tagModel->setValue(Qmmp::TRACK, m_ui->trackSpinBox->value());
+ }
+ else
+ m_tagModel->remove();
+ m_tagModel->save();
+ readTag();
+}
+
+void TagEditor::readTag()
+{
+ m_ui->tagWidget->setEnabled(m_tagModel->exists());
+ m_ui->useCheckBox->setChecked(m_tagModel->exists());
+ m_ui->titleLineEdit->setText(m_tagModel->value(Qmmp::TITLE));
+ m_ui->artistLineEdit->setText(m_tagModel->value(Qmmp::ARTIST));
+ m_ui->albumLineEdit->setText(m_tagModel->value(Qmmp::ALBUM));
+ m_ui->composerLineEdit->setText(m_tagModel->value(Qmmp::COMPOSER));
+ m_ui->genreLineEdit->setText(m_tagModel->value(Qmmp::GENRE));
+ m_ui->commentBrowser->setText(m_tagModel->value(Qmmp::COMMENT));
+ m_ui->discSpinBox->setValue(m_tagModel->value(Qmmp::DISCNUMBER).toInt());
+ m_ui->yearSpinBox->setValue(m_tagModel->value(Qmmp::YEAR).toInt());
+ m_ui->trackSpinBox->setValue(m_tagModel->value(Qmmp::TRACK).toInt());
+}
diff --git a/src/qmmpui/tageditor.h b/src/qmmpui/tageditor.h
new file mode 100644
index 000000000..584a26589
--- /dev/null
+++ b/src/qmmpui/tageditor.h
@@ -0,0 +1,48 @@
+/***************************************************************************
+ * 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 TAGEDITOR_H
+#define TAGEDITOR_H
+
+#include <QWidget>
+
+namespace Ui {
+ class TagEditor;
+}
+
+class TagModel;
+
+class TagEditor : public QWidget
+{
+Q_OBJECT
+public:
+ TagEditor(TagModel *tagModel, QWidget *parent = 0);
+ ~TagEditor();
+
+ void save();
+
+private:
+ void readTag();
+ Ui::TagEditor *m_ui;
+ TagModel *m_tagModel;
+
+};
+
+#endif // TAGEDITOR_H
diff --git a/src/qmmpui/tageditor.ui b/src/qmmpui/tageditor.ui
new file mode 100644
index 000000000..e3717414f
--- /dev/null
+++ b/src/qmmpui/tageditor.ui
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TagEditor</class>
+ <widget class="QWidget" name="TagEditor">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>444</width>
+ <height>312</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="leftMargin">
+ <number>3</number>
+ </property>
+ <property name="rightMargin">
+ <number>3</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="tagWidget" native="true">
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_47">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Title:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="4">
+ <widget class="QLineEdit" name="titleLineEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_43">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Artist:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="4">
+ <widget class="QLineEdit" name="artistLineEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_45">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Album:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="4">
+ <widget class="QLineEdit" name="albumLineEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Composer:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="4">
+ <widget class="QLineEdit" name="composerLineEdit">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_46">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Genre:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2">
+ <widget class="QLineEdit" name="genreLineEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="3">
+ <widget class="QLabel" name="label_11">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Disc number:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="4">
+ <widget class="QSpinBox" name="discSpinBox">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="specialValueText">
+ <string>?</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_42">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Track:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QSpinBox" name="yearSpinBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>?</string>
+ </property>
+ <property name="suffix">
+ <string/>
+ </property>
+ <property name="maximum">
+ <number>2012</number>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2">
+ <widget class="QLabel" name="label_44">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Year:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="3" colspan="2">
+ <widget class="QSpinBox" name="trackSpinBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>?</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_48">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Comment:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1" colspan="4">
+ <widget class="QTextBrowser" name="commentBrowser">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="html">
+ <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="useCheckBox">
+ <property name="text">
+ <string>Include selected tag in file</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>useCheckBox</sender>
+ <signal>clicked(bool)</signal>
+ <receiver>tagWidget</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>56</x>
+ <y>296</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>8</x>
+ <y>277</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qmmpui/translations/libqmmpui_cs.ts b/src/qmmpui/translations/libqmmpui_cs.ts
index ecf41a6b0..aa5ceb7b2 100644
--- a/src/qmmpui/translations/libqmmpui_cs.ts
+++ b/src/qmmpui/translations/libqmmpui_cs.ts
@@ -2,44 +2,111 @@
<!DOCTYPE TS>
<TS version="2.0" language="cs">
<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Název:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Umělec:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Žánr:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Poznámka:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Skladatel:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>Číslo disku:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation>URL:</translation>
</message>
@@ -52,4 +119,78 @@
<translation>Souborový dialog Qt</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Název:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Umělec:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Skladatel:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Žánr:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">Číslo disku:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Poznámka:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_de.ts b/src/qmmpui/translations/libqmmpui_de.ts
index f4d8c84cb..15a7df4e7 100644
--- a/src/qmmpui/translations/libqmmpui_de.ts
+++ b/src/qmmpui/translations/libqmmpui_de.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="de">
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Titel:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Interpret:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Album:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Genre:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Kommentar:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Komponist:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>CD-Nummer:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Qt Datei-Dialog</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Titel:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Interpret:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Album:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Komponist:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Genre:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">CD-Nummer:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_it.ts b/src/qmmpui/translations/libqmmpui_it.ts
index b8381fd2c..9064555cd 100644
--- a/src/qmmpui/translations/libqmmpui_it.ts
+++ b/src/qmmpui/translations/libqmmpui_it.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="it">
+<!DOCTYPE TS>
+<TS version="2.0" language="it">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Titolo:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Interprete:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Album:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Genere:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Commento:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Compositore</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>Disco numero: </translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation>URL:</translation>
</message>
@@ -51,4 +119,78 @@
<translation>Menu brani Qt</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Titolo:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Interprete:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Album:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Compositore</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Genere:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">Disco numero: </translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Commento:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_lt.ts b/src/qmmpui/translations/libqmmpui_lt.ts
index 55cb00e72..6ae2eadfb 100644
--- a/src/qmmpui/translations/libqmmpui_lt.ts
+++ b/src/qmmpui/translations/libqmmpui_lt.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="lt">
+<!DOCTYPE TS>
+<TS version="2.0" language="lt">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Pavadinimas:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Atlikėjas:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Albumas:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Žanras:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Komantaras:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Qt bylų langas</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Pavadinimas:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Atlikėjas:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Albumas:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Žanras:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Komantaras:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_pl.ts b/src/qmmpui/translations/libqmmpui_pl.ts
index 5ddb87b84..8c9336d8e 100644
--- a/src/qmmpui/translations/libqmmpui_pl.ts
+++ b/src/qmmpui/translations/libqmmpui_pl.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="pl">
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Tytuł:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Artysta:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Album:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Gatunek:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Komentarz:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Kompozytor:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>Numer albumu:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Okno dialogowe QT</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Tytuł:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Artysta:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Album:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Kompozytor:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Gatunek:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">Numer albumu:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Komentarz:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_pt_BR.ts b/src/qmmpui/translations/libqmmpui_pt_BR.ts
index d9a023d7b..e366d82c0 100644
--- a/src/qmmpui/translations/libqmmpui_pt_BR.ts
+++ b/src/qmmpui/translations/libqmmpui_pt_BR.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1">
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_ru.ts b/src/qmmpui/translations/libqmmpui_ru.ts
index c5f658f7e..f43c9650e 100644
--- a/src/qmmpui/translations/libqmmpui_ru.ts
+++ b/src/qmmpui/translations/libqmmpui_ru.ts
@@ -1,45 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="ru">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Название:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Исполнитель:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Альбом:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Жанр:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Комментарий:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Композитор:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>Номер диска:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation>URL:</translation>
</message>
@@ -52,4 +119,78 @@
<translation>Файловый диалог Qt</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Название:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Исполнитель:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Альбом:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Композитор:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Жанр:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">Номер диска:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_tr.ts b/src/qmmpui/translations/libqmmpui_tr.ts
index 35e973354..0ed86a295 100644
--- a/src/qmmpui/translations/libqmmpui_tr.ts
+++ b/src/qmmpui/translations/libqmmpui_tr.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="tr_TR">
+<!DOCTYPE TS>
+<TS version="2.0" language="tr_TR">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Başlık:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Artist:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Albüm:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Tür:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Yorum:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Qt Dosya Diyaloğu</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Başlık:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Artist:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Albüm:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Tür:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Yorum:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_uk_UA.ts b/src/qmmpui/translations/libqmmpui_uk_UA.ts
index fbd9d62d9..6451e9635 100644
--- a/src/qmmpui/translations/libqmmpui_uk_UA.ts
+++ b/src/qmmpui/translations/libqmmpui_uk_UA.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>Заголовок:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>Виконавець:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>Альбом:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>Жанр:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>Коментар:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation>Композитор:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation>Номер диску:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Файловий діалог Qt</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">Заголовок:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">Виконавець:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">Альбом:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished">Композитор:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">Жанр:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished">Номер диску:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Коментар:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_zh_CN.ts b/src/qmmpui/translations/libqmmpui_zh_CN.ts
index 1cbec832b..c0a68feaf 100644
--- a/src/qmmpui/translations/libqmmpui_zh_CN.ts
+++ b/src/qmmpui/translations/libqmmpui_zh_CN.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_CN">
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>标题:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>艺术家:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>专辑:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>流派:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>备注:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Qmmp 文件会话</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">标题:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">艺术家:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">专辑:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">流派:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">备注:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/qmmpui/translations/libqmmpui_zh_TW.ts b/src/qmmpui/translations/libqmmpui_zh_TW.ts
index 8138e9043..5e573313f 100644
--- a/src/qmmpui/translations/libqmmpui_zh_TW.ts
+++ b/src/qmmpui/translations/libqmmpui_zh_TW.ts
@@ -1,44 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="74"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="75"/>
+ <source>Artist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="76"/>
+ <source>Album</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="77"/>
+ <source>Comment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="78"/>
+ <source>Genre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="79"/>
+ <source>Composer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="81"/>
+ <source>Year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="83"/>
+ <source>Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="85"/>
+ <source>Disc number</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="14"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="46"/>
+ <source>Summary</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="55"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>PlayListModel</name>
<message>
- <location filename="../playlistmodel.cpp" line="365"/>
+ <location filename="../playlistmodel.cpp" line="366"/>
<source>Title:</source>
<translation>標題:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="366"/>
+ <location filename="../playlistmodel.cpp" line="367"/>
<source>Artist:</source>
<translation>藝術家:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="367"/>
+ <location filename="../playlistmodel.cpp" line="368"/>
<source>Album:</source>
<translation>專輯:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="368"/>
+ <location filename="../playlistmodel.cpp" line="369"/>
<source>Genre:</source>
<translation>流派:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="369"/>
+ <location filename="../playlistmodel.cpp" line="370"/>
<source>Comment:</source>
<translation>備註:</translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="370"/>
+ <location filename="../playlistmodel.cpp" line="371"/>
<source>Composer:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="371"/>
+ <location filename="../playlistmodel.cpp" line="372"/>
<source>Disc number:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlistmodel.cpp" line="364"/>
+ <location filename="../playlistmodel.cpp" line="365"/>
<source>URL:</source>
<translation type="unfinished"></translation>
</message>
@@ -51,4 +119,78 @@
<translation>Qmmp 檔案會話</translation>
</message>
</context>
+<context>
+ <name>TagEditor</name>
+ <message>
+ <location filename="../tageditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="38"/>
+ <source>Title:</source>
+ <translation type="unfinished">標題:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="64"/>
+ <source>Artist:</source>
+ <translation type="unfinished">藝術家:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="90"/>
+ <source>Album:</source>
+ <translation type="unfinished">專輯:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="113"/>
+ <source>Composer:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="133"/>
+ <source>Genre:</source>
+ <translation type="unfinished">流派:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="159"/>
+ <source>Disc number:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="169"/>
+ <location filename="../tageditor.ui" line="201"/>
+ <location filename="../tageditor.ui" line="239"/>
+ <source>?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="182"/>
+ <source>Track:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="220"/>
+ <source>Year:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="252"/>
+ <source>Comment:</source>
+ <translation type="unfinished">備註:</translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="274"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Arial&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../tageditor.ui" line="288"/>
+ <source>Include selected tag in file</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>