TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
toolsskin.cpp
Go to the documentation of this file.
1 #include "toolsskin.h"
2 #include "ui_toolsskin.h"
3 #include "musicextractwrapper.h"
4 #include "musicfileutils.h"
5 #include "musiccolordialog.h"
7 
8 ToolsSkin::ToolsSkin(QWidget *parent)
9  : QWidget(parent),
10  m_ui(new Ui::ToolsSkin),
11  m_pixmap(QPixmap(1, 1))
12 {
13  m_ui->setupUi(this);
14  setFixedSize(630, 400);
15 
16  m_pixmap.fill(Qt::white);
17  m_ui->pixLabel->setPixmap(m_pixmap.scaled(m_ui->pixLabel->size()));
18 
19  connect(m_ui->localButton, SIGNAL(clicked()), SLOT(imageClicked()));
20  connect(m_ui->paletteButton, SIGNAL(clicked()), SLOT(paletteClicked()));
21  connect(m_ui->readButton, SIGNAL(clicked()), SLOT(readClicked()));
22  connect(m_ui->writeButton, SIGNAL(clicked()), SLOT(writeClicked()));
23 }
24 
26 {
27  delete m_ui;
28 }
29 
31 {
32  const QString &path = TTK::File::getOpenFileName(this);
33  if(path.isEmpty())
34  {
35  return;
36  }
37 
38  m_pixmap = QPixmap(path);
39  m_ui->pixLabel->setPixmap(m_pixmap.scaled(m_ui->pixLabel->size()));
40 }
41 
43 {
44  const QColor &color = MusicColorDialog::popup(this);
45  if(!color.isValid())
46  {
47  return;
48  }
49 
50  m_pixmap = QPixmap(1, 1);
51  m_pixmap.fill(color);
52  m_ui->pixLabel->setPixmap(m_pixmap.scaled(m_ui->pixLabel->size()));
53 }
54 
56 {
57  const QString &path = TTK::File::getOpenFileName(this, "TKM Files (*.tkm)");
58  if(path.isEmpty())
59  {
60  return;
61  }
62 
64  if(MusicExtractWrapper::outputSkin(&image, path))
65  {
66  m_pixmap = image.m_pix;
67  m_ui->pixLabel->setPixmap(m_pixmap.scaled(m_ui->pixLabel->size()));
68  m_ui->nameLineEdit->setText(image.m_item.m_name);
69  m_ui->countLineEdit->setText(QString::number(image.m_item.m_useCount));
70  }
71 }
72 
74 {
75  const QString &path = TTK::File::getSaveFileName(this, "TKM Files (*.tkm)");
76  if(path.isEmpty())
77  {
78  return;
79  }
80 
82  image.m_pix = m_pixmap;
83  image.m_item.m_name = m_ui->nameLineEdit->text().trimmed();
84  image.m_item.m_useCount = m_ui->countLineEdit->text().trimmed().toInt();
85  TTK_INFO_STREAM("Save state " << MusicExtractWrapper::inputSkin(&image, path));
86 }
void imageClicked()
Definition: toolsskin.cpp:30
void readClicked()
Definition: toolsskin.cpp:55
void writeClicked()
Definition: toolsskin.cpp:73
void paletteClicked()
Definition: toolsskin.cpp:42
TTK_MODULE_EXPORT QString getOpenFileName(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
QPixmap m_pixmap
Definition: toolsskin.h:43
TTK_MODULE_EXPORT QString getSaveFileName(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
The class of the skin backgroud image.
#define TTK_INFO_STREAM(msg)
Definition: ttklogger.h:67
static QColor popup(QWidget *parent=nullptr, const QColor &color={})
Ui::ToolsSkin * m_ui
Definition: toolsskin.h:42
static bool outputSkin(MusicBackgroundImage *image, const QString &input)
static bool inputSkin(MusicBackgroundImage *image, const QString &output)
ToolsSkin(QWidget *parent=nullptr)
Definition: toolsskin.cpp:8