diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-09-10 12:04:51 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-09-10 12:04:51 +0000 |
| commit | 7586a65427862831590a963b5f8f9d2712271ca0 (patch) | |
| tree | f08c46e911f61aba4a54afc2aee64c9b0ec61d23 | |
| parent | fd6e0ed378bf00b8616f4d054c0c41f1156dd078 (diff) | |
| download | qmmp-7586a65427862831590a963b5f8f9d2712271ca0.tar.gz qmmp-7586a65427862831590a963b5f8f9d2712271ca0.tar.bz2 qmmp-7586a65427862831590a963b5f8f9d2712271ca0.zip | |
added new details dialog, disabled input plugins due api changes
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1194 90c681e8-e032-0410-971d-27865f9a5e38
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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></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 <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></source> - <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></source> - <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Autore: Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Yazan: Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>Розробник: Ілля Котов <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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 <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></source> - <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></source> - <translation type="obsolete"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;"> -<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:400; font-style:normal;"> +<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;"></p></body></html></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> |
