TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicwebradioview.cpp
Go to the documentation of this file.
1 #include "musicwebradioview.h"
2 #include "musicrightareawidget.h"
5 #include "musicimageutils.h"
6 
8  : MusicAbstractTableWidget(parent),
9  m_radio(nullptr)
10 {
11  setIconSize(QSize(TTK_ITEM_SIZE_XL, TTK_ITEM_SIZE_XL));
12  setColumnCount(4);
13 
14  QHeaderView *headerView = horizontalHeader();
15  headerView->resizeSection(0, 10);
16  headerView->resizeSection(1, TTK_ITEM_SIZE_XL + 20);
17  headerView->resizeSection(2, 157);
18  headerView->resizeSection(3, 82);
19 
21  verticalScrollBar()->setStyleSheet(TTK::UI::ScrollBarStyle03);
22 
23  connect(this, SIGNAL(cellDoubleClicked(int,int)), SLOT(itemDoubleClicked(int,int)));
24 
25  addCelltItems();
26 }
27 
29 {
30  delete m_radio;
31 }
32 
33 void MusicWebFMRadioWidget::itemCellEntered(int row, int column)
34 {
35  QTableWidgetItem *it = item(m_previousColorRow, 3);
36  if(it)
37  {
38  it->setIcon(QIcon());
39  }
40 
41  if(it = item(row, 3))
42  {
43  it->setIcon(QIcon(":/contextMenu/btn_play"));
44  }
45 
46  if(column == 3)
47  {
48  setCursor(QCursor(Qt::PointingHandCursor));
49  }
50  else
51  {
52  unsetCursor();
53  }
54 
56 }
57 
58 void MusicWebFMRadioWidget::itemCellClicked(int row, int column)
59 {
60  Q_UNUSED(row);
61  if(column == 3)
62  {
64  }
65 }
66 
68 {
69  Q_UNUSED(column);
70  switch(row)
71  {
72  case 0:
73  {
74  delete m_radio;
76  m_radio = w;
77  w->show();
78  break;
79  }
80  case 1:
81  {
82  delete m_radio;
84  m_radio = w;
85  w->show();
86  break;
87  }
88  case 2:
89  {
91  break;
92  }
93  case 3:
94  {
96  break;
97  }
98  default: break;
99  }
100 }
101 
103 {
104  struct ToolItem
105  {
106  QString m_icon;
107  QString m_name;
108 
109  ToolItem() = default;
110  ToolItem(const QString &icon, const QString &name)
111  {
112  m_icon = icon;
113  m_name = name;
114  }
115  };
116  TTK_DECLARE_LIST(ToolItem);
117 
118  ToolItemList pairs;
119  pairs << ToolItem(":/radio/lb_fm", tr("FMRadio"))
120  << ToolItem(":/radio/lb_tk", tr("TKRadio"))
121  << ToolItem(":/radio/lb_dj", tr("DJRadio"))
122  << ToolItem(":/radio/lb_mv", tr("MVRadio"));
123 
124  for(const ToolItem &pair : qAsConst(pairs))
125  {
126  const int index = rowCount();
127  setRowCount(index + 1);
128  setRowHeight(index, TTK_ITEM_SIZE_2XL);
129 
130  QTableWidgetItem *item = new QTableWidgetItem;
131  setItem(index, 0, item);
132 
133  item = new QTableWidgetItem;
134  item->setIcon(TTK::Image::roundedPixmap(QPixmap(pair.m_icon), QPixmap(":/image/lb_mask_50"), iconSize()));
135  setItem(index, 1, item);
136 
137  item = new QTableWidgetItem;
138  item->setText(pair.m_name);
139  item->setForeground(QColor(TTK::UI::Color02));
140  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
141  setItem(index, 2, item);
142 
143  item = new QTableWidgetItem;
144  setItem(index, 3, item);
145  }
146 }
static MusicRightAreaWidget * instance()
#define TTK_DECLARE_LIST(Class)
Definition: ttkqtglobal.h:161
MusicWebFMRadioWidget(QWidget *parent=nullptr)
The class of the table widget base.
#define QtItemSetTextAlignment(p, a)
Item text alignment.
Definition: ttkqtcompat.h:45
static constexpr unsigned int Color02
Definition: musicuiobject.h:34
TTK_MODULE_EXPORT QPixmap roundedPixmap(const QPixmap &input, int ratioX, int ratioY)
#define TTK_ITEM_SIZE_2XL
Definition: ttkglobal.h:245
static const QString ScrollBarStyle03
#define TTK_ITEM_SIZE_XL
Definition: ttkglobal.h:244
#define qAsConst
Definition: ttkqtglobal.h:53
const char * name
Definition: http_parser.c:458
The class of the web music radio widget.
#define TTK_NORMAL_LEVEL
Definition: ttkglobal.h:254
TTK_MODULE_EXPORT void setTransparent(QWidget *widget, int alpha)
virtual void itemCellEntered(int row, int column)
void itemDoubleClicked(int row, int column)
virtual void itemCellEntered(int row, int column) overridefinal
The class of the web music radio widget.
virtual void itemCellClicked(int row, int column) overridefinal
void functionClicked(int index, QWidget *widget=nullptr)