diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-27 22:25:47 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-27 22:25:47 +0000 |
| commit | abaab158ba5c7e46ecfee3846ae9d596df871212 (patch) | |
| tree | 28a8a6eafecc4b6908fae4528ba45990d53460b9 /src | |
| parent | 57da9f81de51faa5daba43346c35424d854f3ced (diff) | |
| download | qmmp-abaab158ba5c7e46ecfee3846ae9d596df871212.tar.gz qmmp-abaab158ba5c7e46ecfee3846ae9d596df871212.tar.bz2 qmmp-abaab158ba5c7e46ecfee3846ae9d596df871212.zip | |
added template editor, improved status icon plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1530 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
37 files changed, 1956 insertions, 394 deletions
diff --git a/src/plugins/General/statusicon/qmmptrayicon.cpp b/src/plugins/General/statusicon/qmmptrayicon.cpp index d7a7bf230..e335d3079 100644 --- a/src/plugins/General/statusicon/qmmptrayicon.cpp +++ b/src/plugins/General/statusicon/qmmptrayicon.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -43,21 +43,6 @@ void QmmpTrayIcon::showNiceToolTip(bool value) m_showNiceToolTip = value; } -void QmmpTrayIcon::setNiceToolTipDelay(int value) -{ - m_niceToolTipDelay = value; -} - -void QmmpTrayIcon::setNiceToolTipOpacity(qreal value) -{ - m_niceToolTipOpacity = value; -} - -void QmmpTrayIcon::setSplitFileName(bool value) -{ - m_splitFileName = value; -} - bool QmmpTrayIcon::event(QEvent *e) { if (e->type() == QEvent::Wheel ) @@ -96,7 +81,6 @@ void QmmpTrayIcon::showToolTip() { m_PopupWidget = new StatusIconPopupWidget(); } - m_PopupWidget->setWindowOpacity(m_niceToolTipOpacity); - m_PopupWidget->showInfo(geometry().x(),geometry().y(),m_niceToolTipDelay,m_splitFileName); + m_PopupWidget->showInfo(geometry().x(),geometry().y()); } } diff --git a/src/plugins/General/statusicon/qmmptrayicon.h b/src/plugins/General/statusicon/qmmptrayicon.h index 239fe918e..0e211bddb 100644 --- a/src/plugins/General/statusicon/qmmptrayicon.h +++ b/src/plugins/General/statusicon/qmmptrayicon.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -38,9 +38,6 @@ public: ~QmmpTrayIcon(); void showNiceToolTip(bool value); - void setNiceToolTipDelay(int value); - void setNiceToolTipOpacity(qreal value); - void setSplitFileName(bool value); protected: bool event(QEvent *e); @@ -48,11 +45,7 @@ protected: private: void wheelEvent(QWheelEvent *e); void showToolTip(); - bool m_showNiceToolTip; - bool m_splitFileName; - qint32 m_niceToolTipDelay; - qreal m_niceToolTipOpacity; QPointer<StatusIconPopupWidget> m_PopupWidget; }; diff --git a/src/plugins/General/statusicon/settingsdialog.cpp b/src/plugins/General/statusicon/settingsdialog.cpp index 1735054c7..391277c6f 100644 --- a/src/plugins/General/statusicon/settingsdialog.cpp +++ b/src/plugins/General/statusicon/settingsdialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -19,9 +19,9 @@ ***************************************************************************/ #include <QSettings> - +#include <qmmpui/templateeditor.h> #include <qmmp/qmmp.h> - +#include "statusiconpopupwidget.h" #include "settingsdialog.h" SettingsDialog::SettingsDialog(QWidget *parent) @@ -32,15 +32,14 @@ SettingsDialog::SettingsDialog(QWidget *parent) settings.beginGroup("Tray"); ui.messageGroupBox->setChecked(settings.value("show_message",TRUE).toBool()); ui.messageDelaySpinBox->setValue(settings.value("message_delay", 2000).toInt()); - ui.niceTooltipGroupBox->setChecked(settings.value("show_nicetooltip", TRUE).toBool()); - ui.niceTooltipDelaySpinBox->setValue(settings.value("nicetooltip_delay",2000).toInt()); - ui.transparencySlider->setValue(settings.value("nicetooltip_transparency",0).toInt()); + ui.niceTooltipGroupBox->setChecked(settings.value("show_tooltip", TRUE).toBool()); + ui.niceTooltipDelaySpinBox->setValue(settings.value("tooltip_delay",2000).toInt()); + ui.transparencySlider->setValue(settings.value("tooltip_transparency",0).toInt()); + ui.coverSizeSlider->setValue(settings.value("tooltip_cover_size", 100).toInt()); ui.niceTooltipSplitCheckBox->setChecked(settings.value("split_file_name",TRUE).toBool()); -#if QT_VERSION >= 0x040400 ui.standardIconsCheckBox->setChecked(settings.value("use_standard_icons",FALSE).toBool()); -#else - ui.standardIconsCheckBox->setEnabled(FALSE); -#endif + ui.progressCheckBox->setChecked(settings.value("tooltip_progress",TRUE).toBool()); + m_template = settings.value("tooltip_template", DEFAULT_TEMPLATE).toString(); settings.endGroup(); } @@ -52,15 +51,23 @@ void SettingsDialog::accept() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("Tray"); - settings.setValue ("show_message", ui.messageGroupBox->isChecked()); - settings.setValue ("message_delay", ui.messageDelaySpinBox->value()); - settings.setValue ("show_nicetooltip", ui.niceTooltipGroupBox->isChecked()); - settings.setValue ("nicetooltip_delay", ui.niceTooltipDelaySpinBox->value()); - settings.setValue ("nicetooltip_transparency", ui.transparencySlider->value()); + settings.setValue("show_message", ui.messageGroupBox->isChecked()); + settings.setValue("message_delay", ui.messageDelaySpinBox->value()); settings.setValue("split_file_name", ui.niceTooltipSplitCheckBox->isChecked()); -#if QT_VERSION >= 0x040400 - settings.setValue ("use_standard_icons",ui.standardIconsCheckBox->isChecked()); -#endif + settings.setValue("use_standard_icons", ui.standardIconsCheckBox->isChecked()); + settings.setValue("show_tooltip", ui.niceTooltipGroupBox->isChecked()); + settings.setValue("tooltip_delay", ui.niceTooltipDelaySpinBox->value()); + settings.setValue("tooltip_transparency", ui.transparencySlider->value()); + settings.setValue("tooltip_cover_size", ui.coverSizeSlider->value()); + settings.setValue("tooltip_progress", ui.progressCheckBox->isChecked()); + settings.setValue("tooltip_template", m_template); settings.endGroup(); QDialog::accept(); } + +void SettingsDialog::on_templateButton_clicked() +{ + QString t = TemplateEditor::getTemplate(this, tr("Tooltip Template"), m_template, DEFAULT_TEMPLATE); + if(!t.isEmpty()) + m_template = t; +} diff --git a/src/plugins/General/statusicon/settingsdialog.h b/src/plugins/General/statusicon/settingsdialog.h index 2983bcde9..fe48a9867 100644 --- a/src/plugins/General/statusicon/settingsdialog.h +++ b/src/plugins/General/statusicon/settingsdialog.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -39,8 +39,12 @@ public: public slots: virtual void accept(); +private slots: + void on_templateButton_clicked(); + private: Ui::SettingsDialog ui; + QString m_template; }; diff --git a/src/plugins/General/statusicon/settingsdialog.ui b/src/plugins/General/statusicon/settingsdialog.ui index c6d37b4f5..1425b218e 100644 --- a/src/plugins/General/statusicon/settingsdialog.ui +++ b/src/plugins/General/statusicon/settingsdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>340</width> - <height>237</height> + <width>302</width> + <height>322</height> </rect> </property> <property name="windowTitle"> @@ -23,34 +23,58 @@ <property name="bottomMargin"> <number>6</number> </property> - <item row="13" column="0" colspan="2"> - <spacer> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <item row="0" column="0" colspan="2"> + <widget class="QGroupBox" name="messageGroupBox"> + <property name="title"> + <string>Balloone message</string> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>150</width> - <height>18</height> - </size> + <property name="checkable"> + <bool>true</bool> </property> - </spacer> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Delay, ms:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="messageDelaySpinBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimum"> + <number>100</number> + </property> + <property name="maximum"> + <number>10000</number> + </property> + <property name="singleStep"> + <number>100</number> + </property> + <property name="value"> + <number>1000</number> + </property> + </widget> + </item> + </layout> + </widget> </item> - <item row="13" column="2"> - <widget class="QDialogButtonBox" name="buttonBox"> + <item row="1" column="0" colspan="2"> + <widget class="QGroupBox" name="niceTooltipGroupBox"> <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - <item row="9" column="0" colspan="3"> - <widget class="QGroupBox" name="niceTooltipGroupBox"> <property name="title"> <string>Tooltip</string> </property> @@ -61,15 +85,35 @@ <bool>true</bool> </property> <layout class="QGridLayout" name="gridLayout_2"> - <item row="0" column="0"> + <item row="0" column="0" colspan="2"> + <widget class="QCheckBox" name="niceTooltipSplitCheckBox"> + <property name="text"> + <string>Try to split file name when no tag</string> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QCheckBox" name="progressCheckBox"> + <property name="text"> + <string>Show progress bar</string> + </property> + </widget> + </item> + <item row="2" column="0"> <widget class="QLabel" name="niceTooltipDelayLabel"> <property name="text"> <string>Delay, ms:</string> </property> </widget> </item> - <item row="0" column="1"> + <item row="2" column="1"> <widget class="QSpinBox" name="niceTooltipDelaySpinBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="maximum"> <number>10000</number> </property> @@ -81,15 +125,15 @@ </property> </widget> </item> - <item row="1" column="0"> + <item row="3" column="0"> <widget class="QLabel" name="transparencyLabel"> <property name="text"> <string>Transparency:</string> </property> </widget> </item> - <item row="1" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item row="3" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> <widget class="QSlider" name="transparencySlider"> <property name="maximum"> @@ -113,7 +157,7 @@ </property> <property name="minimumSize"> <size> - <width>20</width> + <width>26</width> <height>0</height> </size> </property> @@ -124,67 +168,115 @@ </item> </layout> </item> - <item row="2" column="0" colspan="2"> - <widget class="QCheckBox" name="niceTooltipSplitCheckBox"> + <item row="4" column="0"> + <widget class="QLabel" name="transparencyLabel_2"> <property name="text"> - <string>Try to split file name when no tag</string> + <string>Cover size:</string> </property> </widget> </item> - </layout> - </widget> - </item> - <item row="7" column="0" colspan="3"> - <widget class="QGroupBox" name="messageGroupBox"> - <property name="title"> - <string>Balloone message</string> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Delay, ms:</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - </widget> + <item row="4" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QSlider" name="coverSizeSlider"> + <property name="minimum"> + <number>32</number> + </property> + <property name="maximum"> + <number>160</number> + </property> + <property name="pageStep"> + <number>16</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="niceTooltipOpacityValueLabel_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> + <horstretch>3</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>26</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>32</string> + </property> + </widget> + </item> + </layout> </item> - <item> - <widget class="QSpinBox" name="messageDelaySpinBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimum"> - <number>100</number> - </property> - <property name="maximum"> - <number>10000</number> - </property> - <property name="singleStep"> - <number>100</number> - </property> - <property name="value"> - <number>1000</number> - </property> - </widget> + <item row="5" column="0" colspan="2"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QPushButton" name="templateButton"> + <property name="text"> + <string>Change template</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> </item> </layout> </widget> </item> - <item row="12" column="0" colspan="3"> + <item row="2" column="0" colspan="2"> <widget class="QCheckBox" name="standardIconsCheckBox"> <property name="text"> <string>Use standard icons</string> </property> </widget> </item> + <item row="3" column="0"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>279</width> + <height>23</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="1"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> </layout> </widget> <resources/> @@ -196,8 +288,8 @@ <slot>accept()</slot> <hints> <hint type="sourcelabel"> - <x>333</x> - <y>230</y> + <x>295</x> + <y>315</y> </hint> <hint type="destinationlabel"> <x>112</x> @@ -212,8 +304,8 @@ <slot>reject()</slot> <hints> <hint type="sourcelabel"> - <x>333</x> - <y>230</y> + <x>295</x> + <y>315</y> </hint> <hint type="destinationlabel"> <x>27</x> @@ -228,12 +320,28 @@ <slot>setNum(int)</slot> <hints> <hint type="sourcelabel"> - <x>166</x> - <y>127</y> + <x>252</x> + <y>187</y> + </hint> + <hint type="destinationlabel"> + <x>284</x> + <y>188</y> + </hint> + </hints> + </connection> + <connection> + <sender>coverSizeSlider</sender> + <signal>valueChanged(int)</signal> + <receiver>niceTooltipOpacityValueLabel_2</receiver> + <slot>setNum(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>184</x> + <y>203</y> </hint> <hint type="destinationlabel"> - <x>309</x> - <y>129</y> + <x>261</x> + <y>205</y> </hint> </hints> </connection> diff --git a/src/plugins/General/statusicon/statusicon.cpp b/src/plugins/General/statusicon/statusicon.cpp index 491e7a1af..e54ef0ded 100644 --- a/src/plugins/General/statusicon/statusicon.cpp +++ b/src/plugins/General/statusicon/statusicon.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -49,43 +49,19 @@ StatusIcon::StatusIcon(QObject *parent) m_hideToTray = settings.value("hide_on_close", FALSE).toBool(); m_useStandardIcons = settings.value("use_standard_icons",FALSE).toBool(); m_tray->showNiceToolTip(settings.value("show_nicetooltip",TRUE).toBool()); - m_tray->setNiceToolTipDelay(settings.value("nicetooltip_delay",2000).toInt()); - m_tray->setNiceToolTipOpacity(1 - (settings.value("nicetooltip_transparency",0).toDouble()/100)); - m_tray->setSplitFileName(settings.value("split_file_name",TRUE).toBool()); -#if QT_VERSION >= 0x040400 if(m_useStandardIcons) m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaStop)); else -#endif m_tray->setIcon ( QIcon(":/tray_stop.png")); m_tray->show(); settings.endGroup(); //actions QMenu *menu = new QMenu(qobject_cast<QWidget *>(parent)); - QIcon playIcon; - QIcon pauseIcon; - QIcon stopIcon; - QIcon nextIcon; - QIcon previousIcon; -#if QT_VERSION >= 0x040400 - if(m_useStandardIcons) - { - playIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPlay); - pauseIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPause); - stopIcon = QApplication::style()->standardIcon(QStyle::SP_MediaStop); - nextIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward); - previousIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward); - } - else - { -#endif - playIcon = QIcon(":/tray_play.png"); - pauseIcon = QIcon(":/tray_pause.png"); - stopIcon = QIcon(":/tray_stop.png"); - //TODO add more icons -#if QT_VERSION >= 0x040400 - } -#endif + QIcon playIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPlay); + QIcon pauseIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPause); + QIcon stopIcon = QApplication::style()->standardIcon(QStyle::SP_MediaStop); + QIcon nextIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward); + QIcon previousIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward); menu->addAction(playIcon,tr("Play"), m_player, SLOT(play())); menu->addAction(pauseIcon,tr("Pause"), m_core, SLOT(pause())); menu->addAction(stopIcon,tr("Stop"), m_core, SLOT(stop())); @@ -95,7 +71,6 @@ StatusIcon::StatusIcon(QObject *parent) menu->addSeparator(); menu->addAction(tr("Exit"), this, SLOT(exit())); m_tray->setContextMenu(menu); - connect (m_core, SIGNAL(metaDataChanged ()), SLOT(showMetaData())); connect (m_core, SIGNAL(stateChanged (Qmmp::State)), SLOT(setState(Qmmp::State))); setState(m_core->state()); //update state @@ -113,32 +88,26 @@ void StatusIcon::setState(Qmmp::State state) { case Qmmp::Playing: { -#if QT_VERSION >= 0x040400 if(m_useStandardIcons) m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaPlay)); else -#endif - m_tray->setIcon ( QIcon(":/tray_play.png")); + m_tray->setIcon (QIcon(":/tray_play.png")); break; } case Qmmp::Paused: { -#if QT_VERSION >= 0x040400 if(m_useStandardIcons) m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaPause)); else -#endif - m_tray->setIcon ( QIcon(":/tray_pause.png")); + m_tray->setIcon (QIcon(":/tray_pause.png")); break; } case Qmmp::Stopped: { -#if QT_VERSION >= 0x040400 if(m_useStandardIcons) m_tray->setIcon(QApplication::style ()->standardIcon(QStyle::SP_MediaStop)); else -#endif - m_tray->setIcon ( QIcon(":/tray_stop.png")); + m_tray->setIcon (QIcon(":/tray_stop.png")); break; } } diff --git a/src/plugins/General/statusicon/statusiconpopupwidget.cpp b/src/plugins/General/statusicon/statusiconpopupwidget.cpp index dd5b25334..0d1fe5e8f 100644 --- a/src/plugins/General/statusicon/statusiconpopupwidget.cpp +++ b/src/plugins/General/statusicon/statusiconpopupwidget.cpp @@ -1,8 +1,8 @@ /*************************************************************************** * Copyright (C) 2009 by Artur Guzik * - * a.guzik88@gmail.com - * - * Copyright (C) 2009 by Ilya Kotov * + * a.guzik88@gmail.com * + * * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -31,8 +31,10 @@ #include <QDesktopWidget> #include <QSpacerItem> #include <QProgressBar> +#include <QSettings> #include <qmmp/soundcore.h> #include <qmmp/metadatamanager.h> +#include <qmmpui/metadataformatter.h> #include "coverwidget.h" #include "statusiconpopupwidget.h" @@ -48,7 +50,6 @@ StatusIconPopupWidget::StatusIconPopupWidget(QWidget * parent) m_vLayout = new QVBoxLayout(); m_cover = new CoverWidget(this); - m_cover->setFixedSize(100,100); m_hLayout->addWidget(m_cover); m_textLabel = new QLabel(this); @@ -73,7 +74,16 @@ StatusIconPopupWidget::StatusIconPopupWidget(QWidget * parent) connect(SoundCore::instance(),SIGNAL(elapsedChanged(qint64)),this,SLOT(updateTime(qint64))); connect(SoundCore::instance(),SIGNAL(stateChanged(Qmmp::State)),this,SLOT(updateMetaData())); - setVisible(FALSE); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Tray"); + m_timer->setInterval(settings.value("tooltip_delay",2000).toInt()); + setWindowOpacity(1.0 - settings.value("tooltip_transparency",0).toInt()/100.0); + int size = settings.value("tooltip_cover_size",100).toInt(); + m_cover->setFixedSize(size,size); + m_splitFileName = settings.value("split_file_name",TRUE).toBool(); + m_showProgress = settings.value("tooltip_progress",TRUE).toBool(); + m_template = settings.value("tooltip_template", DEFAULT_TEMPLATE).toString(); + settings.endGroup(); } StatusIconPopupWidget::~StatusIconPopupWidget() @@ -91,48 +101,23 @@ void StatusIconPopupWidget::updateMetaData() SoundCore *core = SoundCore::instance(); if(core->state() == Qmmp::Playing || core->state() == Qmmp::Paused) { - QString text; - QString title = core->metaData(Qmmp::TITLE); - QString artist = core->metaData(Qmmp::ARTIST); - QString album = core->metaData(Qmmp::ALBUM); - int year = core->metaData(Qmmp::YEAR).toInt(); - if(title.isEmpty()) + QString title = m_template; + SoundCore *core = SoundCore::instance(); + QMap<Qmmp::MetaData, QString> meta; + if(m_splitFileName && meta[Qmmp::TITLE].isEmpty() && !meta[Qmmp::URL].contains("://")) { - title = QFileInfo(core->metaData(Qmmp::URL)).completeBaseName(); - if(m_splitFileName && title.contains("-")) + QString name = QFileInfo(meta[Qmmp::URL]).completeBaseName(); + if(name.contains("-")) { - artist = title.section('-',0,0).trimmed(); - title = title.section('-',1,1).trimmed(); + meta[Qmmp::TITLE] = name.section('-',1,1).trimmed(); + if(meta[Qmmp::ARTIST].isEmpty()) + meta[Qmmp::ARTIST] = name.section('-',0,0).trimmed(); } } - text.append("<b>" + title + "</b>"); - if(core->totalTime() > 0) - { - text.append(" "); - QString time; - int l = core->totalTime()/1000; - if(l > 3600) - time += QString("(%1:%2:%3)").arg(l/3600,2,10,QChar('0')).arg(l%3600/60,2,10,QChar('0')) - .arg(l%60,2,10,QChar('0')); - - else - time = QString("(%1:%2)").arg(l/60,2,10,QChar('0')).arg(l%60,2,10,QChar('0')); - text.append(time); - } - if(!artist.isEmpty()) - { - text.append("<br>"); - text.append(artist); - } - if(!album.isEmpty()) - { - text.append("<br>"); - text.append(album); - } - if(year > 0) - text.append(QString("<br>%1").arg(year)); - m_textLabel->setText(text); + MetaDataFormatter f(title); + title = f.parse(core->metaData(), core->totalTime()/1000); + m_textLabel->setText(title); QPixmap cover = MetaDataManager::instance()->getCover(core->metaData(Qmmp::URL)); m_cover->show(); m_bar->show(); @@ -141,6 +126,7 @@ void StatusIconPopupWidget::updateMetaData() else m_cover->setPixmap(cover); updateTime(core->elapsed()); + m_bar->setVisible(m_showProgress); } else { @@ -186,13 +172,11 @@ void StatusIconPopupWidget::updatePosition(int trayx, int trayy) return; } -void StatusIconPopupWidget::showInfo(int x, int y, int delay, bool splitFileName) +void StatusIconPopupWidget::showInfo(int x, int y) { m_timer->stop(); - m_timer->setInterval(delay); m_lastTrayX = x; m_lastTrayY = y; - m_splitFileName = splitFileName; updateMetaData(); qApp->processEvents(); updatePosition(x,y); diff --git a/src/plugins/General/statusicon/statusiconpopupwidget.h b/src/plugins/General/statusicon/statusiconpopupwidget.h index bcef0cc87..97ab8835f 100644 --- a/src/plugins/General/statusicon/statusiconpopupwidget.h +++ b/src/plugins/General/statusicon/statusiconpopupwidget.h @@ -1,8 +1,8 @@ /*************************************************************************** * Copyright (C) 2009 by Artur Guzik * - * a.guzik88@gmail.com - * - * Copyright (C) 2009 by Ilya Kotov * + * a.guzik88@gmail.com * + * * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -24,6 +24,8 @@ #ifndef STATUSICONPOPUPWIDGET_H #define STATUSICONPOPUPWIDGET_H +#define DEFAULT_TEMPLATE "<b>%if(%t,%t,%f)</b>\n%if(%p,<br>%p,)\n%if(%a,<br>%a,)\n%if(%l,<br><b>%l</b>,)" + #include <QFrame> #include <QWidget> #include <QProgressBar> @@ -44,7 +46,7 @@ public: StatusIconPopupWidget(QWidget * parent = 0); ~StatusIconPopupWidget(); - void showInfo(int x, int y, int delay, bool splitFileName); //x,y are tray icon position + void showInfo(int x, int y); //x,y are tray icon position protected: virtual void mousePressEvent(QMouseEvent *); @@ -66,6 +68,8 @@ private: int m_lastTrayX; int m_lastTrayY; int m_splitFileName; + QString m_template; + bool m_showProgress; }; class TimeBar : public QProgressBar diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_cs.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_cs.ts index 1a8c12392..fac3f43da 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_cs.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_cs.ts @@ -9,76 +9,101 @@ <translation>Nastavení modulu stavové ikony</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Popisek</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Prodleva, ms:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Průhlednost:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation>0</translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Pokusit se rozdělit název souboru, není-li tag</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Zobrazovat zprávu</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Použít standardní ikony</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Přehrát</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Pauza</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Stop</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Další</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Předchozí</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Ukončit</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Nyní hraje</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Zastaveno</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_de.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_de.ts index e5f27458a..0c1b1bf63 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_de.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_de.ts @@ -9,76 +9,101 @@ <translation>Einstellungen Statussymbol-Modul</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Kurzinfo</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Anzeigedauer (ms):</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Transparenz:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation>0</translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>System-Symbole benutzen</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Wiedergabe</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Pause</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Stopp</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Nächster</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Vorheriger</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Beenden</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Aktueller Titel</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation type="unfinished">Angehalten</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_it.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_it.ts index 2362a343e..85c3696e7 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_it.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_it.ts @@ -9,76 +9,101 @@ <translation>Impostazione del modulo icona di stato</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Strumento suggerimenti</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Ritardo, ms:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Trasparenza:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation>0</translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Dividi nome file se senza tag</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Fumetto messaggio</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Usa icone standard</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Esegui</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Pausa</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Ferma</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Successivo</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Precedente</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Esci</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Brano in esecuzione: </translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Fermato</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_lt.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_lt.ts index 5bdc913dc..a445969a3 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_lt.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_lt.ts @@ -9,76 +9,101 @@ <translation>Status Icon įskiepio nustatymai</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Užlaikymas ms:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Permatomumas:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Bandyti išskirti bylos pavadinimą, kai nėra meta duomenų</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Iššokantis pranešimas</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Naudoti standartines ikonas</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Groti</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Pauzė</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Stop</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Sekantis takelis</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Ankstesnis takelis</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Uždaryti</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Dabar groju</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Sustojo</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_pl.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_pl.ts index 22a0f3d24..cd08356c9 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_pl.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_pl.ts @@ -9,76 +9,101 @@ <translation>Ustawienia wtyczki Ikona Statusu</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Powiadomienie</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Opóźnienie, ms:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Przezroczystość:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Próbuj rozdzielić nazwę pliku jeśli brakuje tagu</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Powiadomienie w chmurce</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Użyj standardowych ikon</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Odtwarzaj</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Pauza</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Zatrzymaj</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Następny</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Poprzedni</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Wyjdź</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Teraz odtwarza</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Zatrzymane</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_ru.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_ru.ts index 66316418e..6a684424c 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_ru.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_ru.ts @@ -9,76 +9,101 @@ <translation>Настройки модуля Status Icon</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Всплывающая подсказка</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Задержка, мс:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation>Показывать полосу завершения</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Прозрачность:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation>0</translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Разделить имя файла, если нет тегов</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Сообщение</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation>Размер обложки:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation>Изменить шаблон</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Использовать стандартные иконки</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation>Шаблон всплывающей подсказки</translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Воспроизвести</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Пауза</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Стоп</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Следующий фрагмент</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Предыдущий фрагмент</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Выход</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Сейчас играет</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Остановлено</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_tr.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_tr.ts index e32e41f37..99886d73b 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_tr.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_tr.ts @@ -9,76 +9,101 @@ <translation>Durum Simgesi Eklenti Ayarları</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Standart simgeleri kullan</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Oynat</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Duraklat</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Durdur</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Sonraki</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Önceki</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Çık</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Şimdi Oynatılıyor</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation type="unfinished"></translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts index a3e21b7ca..45b05c655 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_uk_UA.ts @@ -9,76 +9,101 @@ <translation>Налаштування модуля Status Icon</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation>Підказка</translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation>Затримка, мс:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation>Прозорість:</translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation>Розділити ім'я файла, якщо немає тегів</translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation>Повідомлення</translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>Використовувати стандартні іконки</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>Грати</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>Пауза</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>Стоп</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>Вперед</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>Назад</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>Вихід</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>Зараз грає</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation>Зупинено</translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_zh_CN.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_zh_CN.ts index e06e6466f..fc85c957d 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_zh_CN.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_zh_CN.ts @@ -9,76 +9,101 @@ <translation>状态图标插件设置</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>使用标准图标</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>播放</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>暂停</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>停止</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>下一曲</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>上一曲</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>退出</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>正在播放</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation type="unfinished"></translation> </message> diff --git a/src/plugins/General/statusicon/translations/statusicon_plugin_zh_TW.ts b/src/plugins/General/statusicon/translations/statusicon_plugin_zh_TW.ts index ce7d11c17..1e0975469 100644 --- a/src/plugins/General/statusicon/translations/statusicon_plugin_zh_TW.ts +++ b/src/plugins/General/statusicon/translations/statusicon_plugin_zh_TW.ts @@ -9,76 +9,101 @@ <translation>狀態圖像插件設定</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="79"/> <source>Tooltip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="67"/> - <location filename="../settingsdialog.ui" line="149"/> + <location filename="../settingsdialog.ui" line="38"/> + <location filename="../settingsdialog.ui" line="105"/> <source>Delay, ms:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="87"/> + <location filename="../settingsdialog.ui" line="98"/> + <source>Show progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="131"/> <source>Transparency:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="121"/> + <location filename="../settingsdialog.ui" line="165"/> <source>0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="130"/> + <location filename="../settingsdialog.ui" line="91"/> <source>Try to split file name when no tag</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="140"/> + <location filename="../settingsdialog.ui" line="29"/> <source>Balloone message</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="184"/> + <location filename="../settingsdialog.ui" line="174"/> + <source>Cover size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="214"/> + <source>32</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="225"/> + <source>Change template</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="250"/> <source>Use standard icons</source> <translation>使用標准圖標</translation> </message> + <message> + <location filename="../settingsdialog.cpp" line="70"/> + <source>Tooltip Template</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>StatusIcon</name> <message> - <location filename="../statusicon.cpp" line="89"/> + <location filename="../statusicon.cpp" line="65"/> <source>Play</source> <translation>播放</translation> </message> <message> - <location filename="../statusicon.cpp" line="90"/> + <location filename="../statusicon.cpp" line="66"/> <source>Pause</source> <translation>暫停</translation> </message> <message> - <location filename="../statusicon.cpp" line="91"/> + <location filename="../statusicon.cpp" line="67"/> <source>Stop</source> <translation>停止</translation> </message> <message> - <location filename="../statusicon.cpp" line="93"/> + <location filename="../statusicon.cpp" line="69"/> <source>Next</source> <translation>下一曲</translation> </message> <message> - <location filename="../statusicon.cpp" line="94"/> + <location filename="../statusicon.cpp" line="70"/> <source>Previous</source> <translation>上一曲</translation> </message> <message> - <location filename="../statusicon.cpp" line="96"/> + <location filename="../statusicon.cpp" line="72"/> <source>Exit</source> <translation>結束</translation> </message> <message> - <location filename="../statusicon.cpp" line="156"/> + <location filename="../statusicon.cpp" line="125"/> <source>Now Playing</source> <translation>正在播放</translation> </message> @@ -119,7 +144,7 @@ <context> <name>StatusIconPopupWidget</name> <message> - <location filename="../statusiconpopupwidget.cpp" line="149"/> + <location filename="../statusiconpopupwidget.cpp" line="135"/> <source>Stopped</source> <translation type="unfinished"></translation> </message> diff --git a/src/qmmpui/CMakeLists.txt b/src/qmmpui/CMakeLists.txt index 595cf4f0c..cf72e83da 100644 --- a/src/qmmpui/CMakeLists.txt +++ b/src/qmmpui/CMakeLists.txt @@ -40,6 +40,7 @@ SET(libqmmpui_SRCS tageditor.cpp playlistmanager.cpp metadataformatter.cpp + templateeditor.cpp ) SET(libqmmpui_MOC_HDRS @@ -64,6 +65,7 @@ SET(libqmmpui_MOC_HDRS tageditor.h playlistmanager.h metadataformatter.h + templateeditor.h ) SET(libqmmpui_DEVEL_HDRS @@ -84,12 +86,14 @@ SET(libqmmpui_DEVEL_HDRS tageditor.h playlistmanager.h metadataformatter.h + templateeditor.h ) SET(libqmmpui_UIS detailsdialog.ui tageditor.ui + templateeditor.ui ) QT4_WRAP_UI(libqmmpui_UIS_H ${libqmmpui_UIS}) diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp index dba32abd2..073c6ef88 100644 --- a/src/qmmpui/metadataformatter.cpp +++ b/src/qmmpui/metadataformatter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -33,6 +33,7 @@ Syntax: %f - file name %F - full path %y - year +%l - duration %if(A,B,C) %if(A&B&C,D,E) */ @@ -46,7 +47,12 @@ MetaDataFormatter::MetaDataFormatter(const QString &format) m_format = format; } -QString MetaDataFormatter::parse(const QMap<Qmmp::MetaData, QString> metaData) +QString MetaDataFormatter::parse(AbstractPlaylistItem *item) +{ + return parse(item->metaData(), item->length()); +} + +QString MetaDataFormatter::parse(const QMap<Qmmp::MetaData, QString> metaData, qint64 length) { QString title = m_format; title.replace("\\(", "%28"); @@ -66,6 +72,22 @@ QString MetaDataFormatter::parse(const QMap<Qmmp::MetaData, QString> metaData) title.replace("%f", metaData[Qmmp::URL].section('/',-1)); title.replace("%F", metaData[Qmmp::URL]); title.replace("%y", metaData[Qmmp::YEAR]); + if(title.contains("l")) + { + if (length) + { + QString time; + int l = length; + if(l > 3600) + time == QString("%1:%2:%3").arg(l/3600,2,10,QChar('0')) + .arg(l%3600/60,2,10,QChar('0')).arg(l%60,2,10,QChar('0')); + else + time = QString("%1:%2").arg(l/60,2,10,QChar('0')).arg(l%60,2,10,QChar('0')); + title.replace("%l",time); + } + else + title.replace("%l",""); + } if(title.contains("%if")) title = processIfKeyWord(title); diff --git a/src/qmmpui/metadataformatter.h b/src/qmmpui/metadataformatter.h index c826cb499..b338e2085 100644 --- a/src/qmmpui/metadataformatter.h +++ b/src/qmmpui/metadataformatter.h @@ -23,6 +23,7 @@ #include <QString> #include <QMap> +#include <qmmpui/abstractplaylistitem.h> #include <qmmp/qmmp.h> /*! @@ -32,12 +33,12 @@ class MetaDataFormatter { public: MetaDataFormatter(const QString &format); - QString parse(const QMap<Qmmp::MetaData, QString> metaData); + QString parse(AbstractPlaylistItem *item); + QString parse(const QMap<Qmmp::MetaData, QString> metaData, qint64 length = 0); private: QString m_format; QString processIfKeyWord(QString title); - }; #endif // METADATAFORMATTER_H diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro index f7fa82662..51f2cef04 100644 --- a/src/qmmpui/qmmpui.pro +++ b/src/qmmpui/qmmpui.pro @@ -38,7 +38,8 @@ HEADERS += general.h \ detailsdialog.h \ tageditor.h \ playlistmanager.h \ - metadataformatter.h + metadataformatter.h \ + templateeditor.h SOURCES += general.cpp \ generalhandler.cpp \ playlistparser.cpp \ @@ -55,9 +56,11 @@ SOURCES += general.cpp \ detailsdialog.cpp \ tageditor.cpp \ playlistmanager.cpp \ - metadataformatter.cpp + metadataformatter.cpp \ + templateeditor.cpp FORMS += detailsdialog.ui \ - tageditor.ui + tageditor.ui \ + templateeditor.ui unix:DESTDIR = . RESOURCES += translations/libqmmpui_locales.qrc TRANSLATIONS = translations/libqmmpui_ru.ts \ diff --git a/src/qmmpui/templateeditor.cpp b/src/qmmpui/templateeditor.cpp new file mode 100644 index 000000000..203f91e6a --- /dev/null +++ b/src/qmmpui/templateeditor.cpp @@ -0,0 +1,100 @@ +/*************************************************************************** + * Copyright (C) 2010 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 <QMenu> +#include <QAction> +#include "ui_templateeditor.h" +#include "templateeditor.h" + +TemplateEditor::TemplateEditor(QWidget *parent) : QDialog(parent), m_ui(new Ui::TemplateEditor) +{ + m_ui->setupUi(this); + createMenu(); +} + +QString TemplateEditor::currentTemplate() const +{ + return m_ui->textEdit->toPlainText (); +} + +void TemplateEditor::setTemplate(const QString &text) +{ + m_ui->textEdit->setPlainText(text); +} + +void TemplateEditor::setDefaultTemplate(const QString &text) +{ + m_defaultTemplate = text; +} + +void TemplateEditor::createMenu() +{ + QMenu *menu = new QMenu(this); + menu->addAction(tr("Artist"))->setData("%p"); + menu->addAction(tr("Album"))->setData("%a"); + menu->addAction(tr("Title"))->setData("%t"); + menu->addAction(tr("Track number"))->setData("%n"); + menu->addAction(tr("Two-digit track number"))->setData("%NN"); + menu->addAction(tr("Genre"))->setData("%g"); + menu->addAction(tr("Comment"))->setData("%c"); + menu->addAction(tr("Composer"))->setData("%C"); + menu->addAction(tr("Duration"))->setData("%l"); + menu->addAction(tr("Disc number"))->setData("%D"); + menu->addAction(tr("File name"))->setData("%f"); + menu->addAction(tr("File path"))->setData("%F"); + menu->addAction(tr("Year"))->setData("%y"); + menu->addAction(tr("Condition"))->setData("%if(%p&%t,%p - %t,%f)"); + m_ui->insertButton->setMenu(menu); + connect(menu, SIGNAL(triggered (QAction *)), SLOT(insertExpression(QAction *))); +} + +void TemplateEditor::insertExpression(QAction *a) +{ + m_ui->textEdit->insertPlainText(a->data().toString()); +} + +void TemplateEditor::on_resetButton_clicked() +{ + m_ui->textEdit->setPlainText(m_defaultTemplate); +} + +QString TemplateEditor::getTemplate (QWidget *parent, const QString &title, const QString &text, + const QString &default_template, bool *ok) +{ + TemplateEditor *editor = new TemplateEditor(parent); + editor->setWindowTitle(title); + editor->setTemplate(text); + editor->setDefaultTemplate(default_template); + if(editor->exec() == QDialog::Accepted) + { + if(ok) + *ok = TRUE; + QString t = editor->currentTemplate(); + editor->deleteLater(); + return t; + } + else + { + if(ok) + *ok = FALSE; + editor->deleteLater(); + return QString(); + } +} diff --git a/src/qmmpui/templateeditor.h b/src/qmmpui/templateeditor.h new file mode 100644 index 000000000..c53949ae4 --- /dev/null +++ b/src/qmmpui/templateeditor.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (C) 2010 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 TEMPLATEEDITOR_H +#define TEMPLATEEDITOR_H + +#include <QDialog> + + +namespace Ui { + class TemplateEditor; +} +class QAction; + + +/*! + * @author Ilya Kotov <forkotov02@hotmail.ru> + */ +class TemplateEditor : public QDialog +{ +Q_OBJECT +public: + explicit TemplateEditor(QWidget *parent = 0); + + QString currentTemplate() const; + void setTemplate(const QString &text = QString()); + void setDefaultTemplate(const QString &text); + static QString getTemplate (QWidget *parent, const QString &title, const QString &text = QString(), + const QString &default_template = QString(), bool *ok = 0); + +private slots: + void insertExpression(QAction *a); + void on_resetButton_clicked(); + +private: + void createMenu(); + Ui::TemplateEditor *m_ui; + QString m_defaultTemplate; + +}; + +#endif // TEMPLATEEDITOR_H diff --git a/src/qmmpui/templateeditor.ui b/src/qmmpui/templateeditor.ui new file mode 100644 index 000000000..b1f0d9853 --- /dev/null +++ b/src/qmmpui/templateeditor.ui @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>TemplateEditor</class> + <widget class="QDialog" name="TemplateEditor"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>372</width> + <height>249</height> + </rect> + </property> + <property name="windowTitle"> + <string>Template Editor</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="4"> + <widget class="QPlainTextEdit" name="textEdit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QPushButton" name="resetButton"> + <property name="text"> + <string>Reset</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QPushButton" name="insertButton"> + <property name="text"> + <string>Insert</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>124</width> + <height>17</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="3"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>TemplateEditor</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>365</x> + <y>242</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>TemplateEditor</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>365</x> + <y>242</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/qmmpui/translations/libqmmpui_cs.ts b/src/qmmpui/translations/libqmmpui_cs.ts index c91b1b8ae..8ec11fde8 100644 --- a/src/qmmpui/translations/libqmmpui_cs.ts +++ b/src/qmmpui/translations/libqmmpui_cs.ts @@ -167,4 +167,92 @@ p, li { white-space: pre-wrap; } <translation>Vložit vybraný tag do souboru</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Umělec</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Album</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Název</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Žánr</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Poznámka</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished">Skladatel</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">Číslo disku</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Rok</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 00b1596b7..a0813fb57 100644 --- a/src/qmmpui/translations/libqmmpui_de.ts +++ b/src/qmmpui/translations/libqmmpui_de.ts @@ -167,4 +167,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished">Ausgewählten Tag in Datei einbeziehen</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Interpret</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Album</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Titel</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Genre</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Kommentar</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished">Komponent</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">CD-Nummer</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Jahr</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 ed807048b..9fa3e8c91 100644 --- a/src/qmmpui/translations/libqmmpui_it.ts +++ b/src/qmmpui/translations/libqmmpui_it.ts @@ -167,4 +167,92 @@ p, li { white-space: pre-wrap; } <translation>Includi le etichette selezionate nel file</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Interprete</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Album</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Titolo</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Genere</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Commento</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished">Compositore</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">Disco n°</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Anno</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 ff5282be5..05090f4c4 100644 --- a/src/qmmpui/translations/libqmmpui_lt.ts +++ b/src/qmmpui/translations/libqmmpui_lt.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished">Įtraukti meta informaciją į bylą</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Atlikėjas</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Albumas</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Pavadinimas</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Žanras</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Komentaras</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">Disko numeris</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Metai</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 b225489f9..6b98dffa6 100644 --- a/src/qmmpui/translations/libqmmpui_pl.ts +++ b/src/qmmpui/translations/libqmmpui_pl.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation>Dołącz wybrany tag do pliku</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Artysta</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Album</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Tytuł</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Gatunek</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Komentarz</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished">Kompozytor</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">Numer płyty</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Rok</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 d418a02b2..e872b0444 100644 --- a/src/qmmpui/translations/libqmmpui_pt_BR.ts +++ b/src/qmmpui/translations/libqmmpui_pt_BR.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 2ff3e89cc..4bb884068 100644 --- a/src/qmmpui/translations/libqmmpui_ru.ts +++ b/src/qmmpui/translations/libqmmpui_ru.ts @@ -31,7 +31,7 @@ <message> <location filename="../detailsdialog.cpp" line="83"/> <source>Composer</source> - <translation>Композитр</translation> + <translation>Композитор</translation> </message> <message> <location filename="../detailsdialog.cpp" line="85"/> @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation>Включить выбранный тег в файл</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation>Сброс</translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation>Вставить</translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation>Редактор шаблонов</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation>Исполнитель</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation>Альбом</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation>Название</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation>Номер трека</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation>2-х разрядный номер трека</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation>Жанр</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation>Комментарий</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation>Композитор</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation>Длительность</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation>Номер диска</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation>Имя файла</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation>Путь к файлу</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation>Год</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</source> + <translation>Условие</translation> + </message> +</context> </TS> diff --git a/src/qmmpui/translations/libqmmpui_tr.ts b/src/qmmpui/translations/libqmmpui_tr.ts index 329a73a95..864ed2255 100644 --- a/src/qmmpui/translations/libqmmpui_tr.ts +++ b/src/qmmpui/translations/libqmmpui_tr.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 4d6d0e16a..7f2fbf338 100644 --- a/src/qmmpui/translations/libqmmpui_uk_UA.ts +++ b/src/qmmpui/translations/libqmmpui_uk_UA.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation>Включити вибраний тег у файл</translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished">Виконавець</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished">Альбом</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished">Заголовок</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished">Жанр</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished">Коментар</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished">Композитор</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished">Номер диску</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished">Рік</translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 10eda0e5d..c8db7d1ed 100644 --- a/src/qmmpui/translations/libqmmpui_zh_CN.ts +++ b/src/qmmpui/translations/libqmmpui_zh_CN.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</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 08941d523..6bad57b06 100644 --- a/src/qmmpui/translations/libqmmpui_zh_TW.ts +++ b/src/qmmpui/translations/libqmmpui_zh_TW.ts @@ -159,4 +159,92 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> </context> +<context> + <name>TemplateEditor</name> + <message> + <location filename="../templateeditor.ui" line="39"/> + <source>Reset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="46"/> + <source>Insert</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.ui" line="14"/> + <source>Template Editor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="50"/> + <source>Artist</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="51"/> + <source>Album</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="52"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="53"/> + <source>Track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="54"/> + <source>Two-digit track number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="55"/> + <source>Genre</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="56"/> + <source>Comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="57"/> + <source>Composer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="58"/> + <source>Duration</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="59"/> + <source>Disc number</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="60"/> + <source>File name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="61"/> + <source>File path</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="62"/> + <source>Year</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../templateeditor.cpp" line="63"/> + <source>Condition</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src/ui/popupwidget.cpp b/src/ui/popupwidget.cpp index 0494f6bb0..6d44e0b84 100644 --- a/src/ui/popupwidget.cpp +++ b/src/ui/popupwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -84,16 +84,8 @@ void PopupWidget::popup(PlayListItem *item, QPoint pos) m_lastItem = item; move(pos); QString title = m_template; - - if (item->length() > 0) - { - int l = item->length(); - title.replace("%l",QString("%1:%2").arg(l/60).arg(l%60, 2, 10, QChar('0'))); - } - else - title.replace("%l",""); MetaDataFormatter f(title); - title = f.parse(item->metaData()); + title = f.parse(item); m_label1->setText(title); |
