TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicsongslistiteminfowidget.cpp
Go to the documentation of this file.
2 #include "ui_musicsongslistiteminfowidget.h"
3 #include "musicsettingmanager.h"
4 #include "musicwidgetutils.h"
5 #include "musicnumberutils.h"
6 #include "musicsongmeta.h"
7 #include "musicformats.h"
8 
10  : TTKAbstractMoveWidget(parent),
12 {
13  m_ui->setupUi(this);
14  setFixedSize(size());
15 
16  setWindowFlags(windowFlags() | Qt::Tool);
17 
18  m_ui->songNameValue->setStyleSheet(TTK::UI::ColorStyle03);
19  m_ui->artlistValue->setStyleSheet(TTK::UI::ColorStyle03);
20  m_ui->sizeValue->setStyleSheet(TTK::UI::ColorStyle03);
21  m_ui->typeValue->setStyleSheet(TTK::UI::ColorStyle03);
22  m_ui->timeValue->setStyleSheet(TTK::UI::ColorStyle03);
23 }
24 
26 {
27  delete m_ui;
28 }
29 
31 {
32  const QPixmap originPath(QString(ART_DIR_FULL + name + SKN_FILE));
33  if(!originPath.isNull())
34  {
35  m_ui->artPicture->setPixmap(originPath.scaled(60, 60));
36  return true;
37  }
38  return false;
39 }
40 
42 {
43  QString path = song.path();
44  QString type = song.format();
45  QString size = song.sizeStr();
46  const QString &artist = song.artist();
47 
48  m_ui->songNameValue->setText(song.name().isEmpty() ? TTK_DEFAULT_STR : TTK::Widget::elidedText(font(), song.name(), Qt::ElideRight, m_ui->songNameValue->width()));
49  m_ui->artlistValue->setText(artist.isEmpty() ? TTK_DEFAULT_STR : TTK::Widget::elidedText(font(), artist, Qt::ElideRight, m_ui->artlistValue->width()));
50  m_ui->timeValue->setText(TTK::Widget::elidedText(font(), QString::number(song.playCount()), Qt::ElideRight, m_ui->timeValue->width()));
51 
52  if(index == MUSIC_NETWORK_LIST)
53  {
54  path = TTK::generateNetworkSongPath(path);
55  size = TTK::Number::sizeByteToLabel(QFileInfo(path).size());
56  }
57  else if(MusicFormats::isRedirection(path))
58  {
59  MusicSongMeta meta;
60  if(meta.read(path))
61  {
62  path = meta.fileRelatedPath();
63  const QFileInfo fin(path);
64  type = TTK_FILE_SUFFIX(fin);
65  size = TTK::Number::sizeByteToLabel(fin.size());
66  }
67  }
68 
69  m_ui->sizeValue->setText(TTK::Widget::elidedText(font(), size, Qt::ElideRight, m_ui->sizeValue->width()));
70  m_ui->typeValue->setText(type.isEmpty() ? TTK_DEFAULT_STR : TTK::Widget::elidedText(font(), type, Qt::ElideRight, m_ui->typeValue->width()));
71 
73  {
74  MusicSongMeta meta;
75  if(meta.read(path))
76  {
77  const QPixmap &pix = meta.cover();
78  if(!pix.isNull())
79  {
80  m_ui->artPicture->setPixmap(pix.scaled(60, 60));
81  return;
82  }
83  }
84  }
85 
86  if(!showArtistPicture(artist) && !showArtistPicture(song.title()))
87  {
88  m_ui->artPicture->setPixmap(QPixmap(":/image/lb_default_art").scaled(60, 60));
89  }
90 }
static bool isRedirection(const QString &url)
bool read(const QString &url)
QString sizeStr() const noexcept
Definition: musicsong.h:73
Ui::MusicSongsListItemInfoWidget * m_ui
#define TTK_DEFAULT_STR
Definition: ttkglobal.h:200
void initialize(int index, const MusicSong &song)
MusicSongsListItemInfoWidget(QWidget *parent=nullptr)
QString path() const noexcept
Definition: musicsong.h:90
#define ART_DIR_FULL
Definition: musicobject.h:128
voidpf void uLong size
Definition: ioapi.h:136
TTK_MODULE_EXPORT QString sizeByteToLabel(qint64 size)
QString artist() const noexcept
Definition: musicsong.cpp:54
TTK_MODULE_EXPORT QString generateNetworkSongPath(const QString &path)
Definition: musicsong.cpp:182
const char * name
Definition: http_parser.c:458
The class of the song list item info widget.
The class of the ttk moving widget base.
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
QString format() const noexcept
Definition: musicsong.h:98
QString name() const noexcept
Definition: musicsong.h:82
QPixmap cover() noexcept
static const QString ColorStyle03
Definition: musicuiobject.h:43
#define MUSIC_NETWORK_LIST
bool showArtistPicture(const QString &name)
#define TTK_FILE_SUFFIX(fin)
Definition: ttkqtglobal.h:173
The class of the music song meta.
Definition: musicsongmeta.h:30
The class of the music song info.
Definition: musicsong.h:28
QString fileRelatedPath() noexcept
#define SKN_FILE
Definition: musicobject.h:61
QString title() const noexcept
Definition: musicsong.cpp:49
int playCount() const noexcept
Definition: musicsong.h:118
#define G_SETTING_PTR