TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkclickedgroup.cpp
Go to the documentation of this file.
1 #include "ttkclickedgroup.h"
2 
4  : QObject(parent)
5 {
6 
7 }
8 
9 void TTKClickedGroup::addWidget(QWidget *widget, int id)
10 {
11  m_container.append({id, widget});
12  connect(widget, SIGNAL(clicked()), this, SLOT(update()));
13 }
14 
15 void TTKClickedGroup::removeWidget(QWidget *widget)
16 {
17  m_container.removeOne({-1, widget});
18 }
19 
20 QList<QWidget*> TTKClickedGroup::items() const
21 {
22  QWidgetList widgets;
23  for(const Data &data : qAsConst(m_container))
24  {
25  widgets.append(data.m_widget);
26  }
27  return widgets;
28 }
29 
30 QWidget *TTKClickedGroup::widget(int id) const
31 {
32  for(const Data &data : qAsConst(m_container))
33  {
34  if(data.m_id == id)
35  {
36  return data.m_widget;
37  }
38  }
39  return nullptr;
40 }
41 
42 void TTKClickedGroup::setId(QWidget *widget, int id)
43 {
44  for(Data &data : m_container)
45  {
46  if(data.m_widget == widget)
47  {
48  data.m_id = id;
49  break;
50  }
51  }
52 }
53 
54 int TTKClickedGroup::id(QWidget *widget) const
55 {
56  for(const Data &data : qAsConst(m_container))
57  {
58  if(data.m_widget == widget)
59  {
60  return data.m_id;
61  }
62  }
63  return -1;
64 }
65 
67 {
68  QWidget *widget = TTKObjectCast(QWidget*, sender());
69  if(!widget)
70  {
71  return;
72  }
73 
74  int index = -1;
75  for(int i = 0; i < m_container.count(); ++i)
76  {
77  const Data &data = m_container[i];
78  if(data.m_widget == widget)
79  {
80  index = data.m_id == -1 ? i : data.m_id;
81  break;
82  }
83  }
84 
85  if(index == -1)
86  {
87  return;
88  }
89 
90  Q_EMIT clicked(index);
91 }
QWidget * widget(int id) const
void clicked(int index)
void addWidget(QWidget *widget, int id=-1)
#define qAsConst
Definition: ttkqtglobal.h:57
QList< Data > m_container
TTKClickedGroup(QObject *parent=nullptr)
QList< QWidget * > items() const
int id(QWidget *widget) const
void setId(QWidget *widget, int id)
void removeWidget(QWidget *widget)
#define TTKObjectCast(x, y)
Definition: ttkqtglobal.h:82