diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-07 17:57:44 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-07 17:57:44 +0000 |
| commit | ffed2da98a14465350bd5e82046722fa1aa7a199 (patch) | |
| tree | 86400075b7eeb8917bcab67481c040bf4ce7d554 /src/plugins/Input/flac | |
| parent | 00178e429588dc76b467377eed3d20f48a389476 (diff) | |
| download | qmmp-ffed2da98a14465350bd5e82046722fa1aa7a199.tar.gz qmmp-ffed2da98a14465350bd5e82046722fa1aa7a199.tar.bz2 qmmp-ffed2da98a14465350bd5e82046722fa1aa7a199.zip | |
added unified dialog api
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1110 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/flac')
| -rw-r--r-- | src/plugins/Input/flac/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | src/plugins/Input/flac/detailsdialog.cpp | 96 | ||||
| -rw-r--r-- | src/plugins/Input/flac/detailsdialog.h | 19 | ||||
| -rw-r--r-- | src/plugins/Input/flac/detailsdialog.ui | 347 | ||||
| -rw-r--r-- | src/plugins/Input/flac/flac.pro | 58 |
5 files changed, 68 insertions, 462 deletions
diff --git a/src/plugins/Input/flac/CMakeLists.txt b/src/plugins/Input/flac/CMakeLists.txt index a5a1d81e0..5a4694d97 100644 --- a/src/plugins/Input/flac/CMakeLists.txt +++ b/src/plugins/Input/flac/CMakeLists.txt @@ -56,20 +56,12 @@ QT4_ADD_RESOURCES(libflac_RCC_SRCS ${libflac_RCCS}) QT4_WRAP_CPP(libflac_MOC_SRCS ${libflac_MOC_HDRS}) -# user interface - - -SET(libflac_UIS - detailsdialog.ui -) - -QT4_WRAP_UI(libflac_UIS_H ${libflac_UIS}) # Don't forget to include output directory, otherwise # the UI file won't be wrapped! include_directories(${CMAKE_CURRENT_BINARY_DIR}) IF(FLAC_FOUND) -ADD_LIBRARY(flac MODULE ${libflac_SRCS} ${libflac_MOC_SRCS} ${libflac_UIS_H} ${libflac_RCC_SRCS}) +ADD_LIBRARY(flac MODULE ${libflac_SRCS} ${libflac_MOC_SRCS} ${libflac_RCC_SRCS}) add_dependencies(flac qmmp) target_link_libraries(flac ${QT_LIBRARIES} -lqmmp ${FLAC_LDFLAGS} ${FLAC_CFLAGS} ${TAGLIB_LDFLAGS} ${TAGLIB_CFLAGS}) install(TARGETS flac DESTINATION ${LIB_DIR}/qmmp/Input) diff --git a/src/plugins/Input/flac/detailsdialog.cpp b/src/plugins/Input/flac/detailsdialog.cpp index 2826b6cdb..a06b0778e 100644 --- a/src/plugins/Input/flac/detailsdialog.cpp +++ b/src/plugins/Input/flac/detailsdialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2006-2009 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -27,92 +27,62 @@ #include "detailsdialog.h" #define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8) +#define TStringToQString_qt4(s) QString::fromUtf8(s.toCString(TRUE)).trimmed() DetailsDialog::DetailsDialog(QWidget *parent, const QString &path) - : QDialog(parent) + : AbstractDetailsDialog(parent) { - ui.setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); m_path = path; - setWindowTitle (path.section('/',-1)); - path.section('/',-1); - ui.pathLineEdit->setText(m_path); if (QFile::exists(m_path)) { loadFLACInfo(); - loadTag(); + loadTags(); + blockSaveButton(!QFileInfo(m_path).isWritable()); } + else + blockSaveButton(); } - DetailsDialog::~DetailsDialog() {} void DetailsDialog::loadFLACInfo() { TagLib::FLAC::File f (m_path.toLocal8Bit()); - //l.label - //ui. f.audioProperties()->level(); - QString text; - text = QString("%1").arg(f.audioProperties()->length()/60); + QMap <QString, QString> ap; + QString text = QString("%1").arg(f.audioProperties()->length()/60); text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0')); - ui.lengthLabel->setText(text); - text = QString("%1").arg(f.audioProperties()->sampleRate()); - ui.sampleRateLabel->setText(text+" "+tr("Hz")); - text = QString("%1").arg(f.audioProperties()->channels()); - ui.channelsLabel->setText(text); - text = QString("%1").arg(f.audioProperties()->bitrate()); - ui.bitrateLabel->setText(text+" "+tr("kbps")); - text = QString("%1").arg(f.audioProperties()->sampleWidth()); - ui.sampleWidthLabel->setText(text+" "+tr("bits")); - text = QString("%1 "+tr("KB")).arg(f.length()/1024); - ui.fileSizeLabel->setText(text); - + ap.insert(tr("Length"), text); + ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate())); + ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels())); + ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate())); + ap.insert(tr("Sample width"), QString("%1 "+tr("bits")).arg(f.audioProperties()->sampleWidth())); + ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024)); + setAudioProperties(ap); } -void DetailsDialog::loadTag() +void DetailsDialog::loadTags() { TagLib::FileRef f (m_path.toLocal8Bit()); - - if (f.tag()) - { //TODO: load codec name from config - - TagLib::String title = f.tag()->title(); - TagLib::String artist = f.tag()->artist(); - TagLib::String album = f.tag()->album(); - TagLib::String comment = f.tag()->comment(); - TagLib::String genre = f.tag()->genre(); - QString string = QString::fromUtf8(title.toCString(TRUE)).trimmed(); - ui.titleLineEdit->setText(string); - string = QString::fromUtf8(artist.toCString(TRUE)).trimmed(); - ui.artistLineEdit->setText(string); - string = QString::fromUtf8(album.toCString(TRUE)).trimmed(); - ui.albumLineEdit->setText(string); - string = QString::fromUtf8(comment.toCString(TRUE)).trimmed(); - ui.commentLineEdit->setText(string); - string = QString("%1").arg(f.tag()->year()); - ui.yearLineEdit->setText(string); - string = QString("%1").arg(f.tag()->track()); - ui.trackLineEdit->setText(string); - string = QString::fromUtf8(genre.toCString(TRUE)).trimmed(); - ui.genreLineEdit->setText(string); - } - QFileInfo info(m_path); - ui.saveButton->setEnabled(info.isWritable()); - connect(ui.saveButton, SIGNAL(clicked()), SLOT(saveTag())); + setMetaData(Qmmp::TITLE, TStringToQString_qt4(f.tag()->title())); + setMetaData(Qmmp::ARTIST, TStringToQString_qt4(f.tag()->artist())); + setMetaData(Qmmp::ALBUM, TStringToQString_qt4(f.tag()->album())); + setMetaData(Qmmp::COMMENT, TStringToQString_qt4(f.tag()->comment())); + setMetaData(Qmmp::GENRE, TStringToQString_qt4(f.tag()->genre())); + setMetaData(Qmmp::YEAR, f.tag()->year()); + setMetaData(Qmmp::TRACK, f.tag()->track()); + setMetaData(Qmmp::URL, m_path); } -void DetailsDialog::saveTag() +void DetailsDialog::writeTags() { TagLib::FileRef f (m_path.toLocal8Bit()); - - f.tag()->setTitle(QStringToTString_qt4(ui.titleLineEdit->text())); - f.tag()->setArtist(QStringToTString_qt4(ui.artistLineEdit->text())); - f.tag()->setAlbum(QStringToTString_qt4(ui.albumLineEdit->text())); - f.tag()->setComment(QStringToTString_qt4(ui.commentLineEdit->text())); - f.tag()->setGenre(QStringToTString_qt4(ui.genreLineEdit->text())); - f.tag()->setYear(ui.yearLineEdit->text().toUInt()); - f.tag()->setTrack(ui.trackLineEdit->text().toUInt()); - + f.tag()->setTitle(QStringToTString_qt4(strMetaData(Qmmp::TITLE))); + f.tag()->setArtist(QStringToTString_qt4(strMetaData(Qmmp::ARTIST))); + f.tag()->setAlbum(QStringToTString_qt4(strMetaData(Qmmp::ALBUM))); + f.tag()->setComment(QStringToTString_qt4(strMetaData(Qmmp::COMMENT))); + f.tag()->setGenre(QStringToTString_qt4(strMetaData(Qmmp::GENRE))); + f.tag()->setYear(intMetaData(Qmmp::YEAR)); + f.tag()->setTrack(intMetaData(Qmmp::TRACK)); f.save(); } diff --git a/src/plugins/Input/flac/detailsdialog.h b/src/plugins/Input/flac/detailsdialog.h index 80c17544c..97069306a 100644 --- a/src/plugins/Input/flac/detailsdialog.h +++ b/src/plugins/Input/flac/detailsdialog.h @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * - * forkotov02@hotmail.ru * + * 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 * @@ -20,14 +20,12 @@ #ifndef DETAILSDIALOG_H #define DETAILSDIALOG_H -#include <QDialog> - -#include "ui_detailsdialog.h" +#include <qmmp/abstractdetailsdialog.h> /** @author Ilya Kotov <forkotov02@hotmail.ru> */ -class DetailsDialog : public QDialog +class DetailsDialog : public AbstractDetailsDialog { Q_OBJECT public: @@ -35,13 +33,10 @@ public: ~DetailsDialog(); -private slots: - void saveTag(); - -private: +private: void loadFLACInfo(); - void loadTag(); - Ui::DetailsDialog ui; + void loadTags(); + void writeTags(); QString m_path; }; diff --git a/src/plugins/Input/flac/detailsdialog.ui b/src/plugins/Input/flac/detailsdialog.ui deleted file mode 100644 index c796248ca..000000000 --- a/src/plugins/Input/flac/detailsdialog.ui +++ /dev/null @@ -1,347 +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>545</width> - <height>374</height> - </rect> - </property> - <property name="windowTitle" > - <string>Details</string> - </property> - <layout class="QGridLayout" > - <item row="0" column="0" > - <widget class="QLabel" name="label_28" > - <property name="text" > - <string>File path:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3" > - <widget class="QLineEdit" name="pathLineEdit" > - <property name="readOnly" > - <bool>true</bool> - </property> - </widget> - </item> - <item rowspan="2" row="1" column="0" colspan="2" > - <widget class="QGroupBox" name="groupBox" > - <property name="minimumSize" > - <size> - <width>0</width> - <height>16</height> - </size> - </property> - <property name="title" > - <string>FLAC Info</string> - </property> - <layout class="QGridLayout" > - <property name="leftMargin" > - <number>8</number> - </property> - <property name="topMargin" > - <number>8</number> - </property> - <property name="rightMargin" > - <number>8</number> - </property> - <property name="bottomMargin" > - <number>8</number> - </property> - <property name="horizontalSpacing" > - <number>6</number> - </property> - <property name="verticalSpacing" > - <number>6</number> - </property> - <item row="6" column="0" > - <spacer> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" > - <size> - <width>74</width> - <height>151</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="1" colspan="2" > - <widget class="QLabel" name="fileSizeLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="0" column="0" > - <widget class="QLabel" name="label" > - <property name="text" > - <string>Length:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="0" column="1" colspan="2" > - <widget class="QLabel" name="lengthLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_3" > - <property name="text" > - <string>Sample rate:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2" > - <widget class="QLabel" name="sampleRateLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_10" > - <property name="layoutDirection" > - <enum>Qt::LeftToRight</enum> - </property> - <property name="text" > - <string>Channels:</string> - </property> - <property name="textFormat" > - <enum>Qt::PlainText</enum> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_5" > - <property name="text" > - <string>File size:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="4" column="0" > - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Bitrate:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="3" column="1" colspan="2" > - <widget class="QLabel" name="channelsLabel" > - <property name="layoutDirection" > - <enum>Qt::LeftToRight</enum> - </property> - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="4" column="1" colspan="2" > - <widget class="QLabel" name="bitrateLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - <item row="5" column="0" > - <widget class="QLabel" name="label_4" > - <property name="text" > - <string>Sample width:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="5" column="1" colspan="2" > - <widget class="QLabel" name="sampleWidthLabel" > - <property name="text" > - <string>-</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="1" column="2" colspan="2" > - <widget class="QGroupBox" name="groupBox_2" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Preferred" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title" > - <string>FLAC Tag</string> - </property> - <layout class="QGridLayout" > - <item row="0" column="0" > - <widget class="QLabel" name="label_21" > - <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="3" > - <widget class="QLineEdit" name="titleLineEdit" /> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_22" > - <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="3" > - <widget class="QLineEdit" name="artistLineEdit" /> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_23" > - <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="3" > - <widget class="QLineEdit" name="albumLineEdit" /> - </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_24" > - <property name="text" > - <string>Comment:</string> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="3" column="1" colspan="3" > - <widget class="QLineEdit" name="commentLineEdit" /> - </item> - <item row="4" column="0" > - <widget class="QLabel" name="label_25" > - <property name="text" > - <string>Year:</string> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="4" column="1" > - <widget class="QLineEdit" name="yearLineEdit" /> - </item> - <item row="4" column="2" > - <widget class="QLabel" name="label_26" > - <property name="text" > - <string>Track number:</string> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="4" column="3" > - <widget class="QLineEdit" name="trackLineEdit" /> - </item> - <item row="5" column="0" > - <widget class="QLabel" name="label_27" > - <property name="text" > - <string>Genre:</string> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item row="5" column="1" colspan="2" > - <widget class="QLineEdit" name="genreLineEdit" /> - </item> - <item row="6" column="1" > - <widget class="QPushButton" name="saveButton" > - <property name="enabled" > - <bool>false</bool> - </property> - <property name="text" > - <string>Save</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="2" column="2" > - <spacer> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" > - <size> - <width>111</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="3" > - <widget class="QPushButton" name="pushButton_3" > - <property name="text" > - <string>Close</string> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>pushButton_3</sender> - <signal>clicked()</signal> - <receiver>DetailsDialog</receiver> - <slot>close()</slot> - <hints> - <hint type="sourcelabel" > - <x>623</x> - <y>353</y> - </hint> - <hint type="destinationlabel" > - <x>539</x> - <y>352</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/plugins/Input/flac/flac.pro b/src/plugins/Input/flac/flac.pro index 15bd4b537..3f13de9c0 100644 --- a/src/plugins/Input/flac/flac.pro +++ b/src/plugins/Input/flac/flac.pro @@ -1,42 +1,38 @@ include(../../plugins.pri) - -FORMS += detailsdialog.ui +FORMS += HEADERS += decoderflacfactory.h \ - decoder_flac.h \ - detailsdialog.h \ - cueparser.h + decoder_flac.h \ + detailsdialog.h \ + cueparser.h SOURCES += decoder_flac.cpp \ - decoderflacfactory.cpp \ - detailsdialog.cpp \ - cueparser.cpp - -TARGET =$$PLUGINS_PREFIX/Input/flac -QMAKE_CLEAN =$$PLUGINS_PREFIX/Input/libflac.so - + decoderflacfactory.cpp \ + detailsdialog.cpp \ + cueparser.cpp +TARGET = $$PLUGINS_PREFIX/Input/flac +QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libflac.so INCLUDEPATH += ../../../ CONFIG += release \ -warn_on \ -plugin \ -link_pkgconfig + warn_on \ + plugin \ + link_pkgconfig TEMPLATE = lib QMAKE_LIBDIR += ../../../../lib -LIBS += -lqmmp -L/usr/lib -I/usr/include -PKGCONFIG += taglib flac +LIBS += -lqmmp \ + -L/usr/lib \ + -I/usr/include +PKGCONFIG += taglib \ + flac TRANSLATIONS = translations/flac_plugin_ru.ts \ - translations/flac_plugin_uk_UA.ts \ - translations/flac_plugin_zh_CN.ts \ - translations/flac_plugin_zh_TW.ts \ - translations/flac_plugin_cs.ts \ - translations/flac_plugin_pl.ts \ - translations/flac_plugin_de.ts \ - translations/flac_plugin_it.ts \ - translations/flac_plugin_tr.ts \ - translations/flac_plugin_lt.ts + translations/flac_plugin_uk_UA.ts \ + translations/flac_plugin_zh_CN.ts \ + translations/flac_plugin_zh_TW.ts \ + translations/flac_plugin_cs.ts \ + translations/flac_plugin_pl.ts \ + translations/flac_plugin_de.ts \ + translations/flac_plugin_it.ts \ + translations/flac_plugin_tr.ts \ + translations/flac_plugin_lt.ts RESOURCES = translations/translations.qrc - -isEmpty(LIB_DIR){ - LIB_DIR = /lib -} +isEmpty(LIB_DIR):LIB_DIR = /lib target.path = $$LIB_DIR/qmmp/Input INSTALLS += target - |
