#ifndef COPYIMAGE_H
#define COPYIMAGE_H

#include <QWidget>
#include <QMutex>
#include <QLabel>
#include <QListWidget>

namespace Ui {
class CopyImage;
}

class CopyImage : public QWidget
{
    Q_OBJECT
Q_SIGNALS:
    void busness(int);
    void busness(bool);
public:
    static CopyImage *instance();
public:
    CopyImage(const CopyImage*)=delete;
    CopyImage *operator =(const CopyImage*)=delete;
public slots:
    void check();
private:
    explicit CopyImage(QWidget *parent = nullptr);
    ~CopyImage();
    void setAccessibleName();
private slots:
    void slotsAddDestination(void *);
    void slotsDelDestination(int);
    void slotsDestinationChange(int);
    void slotsAddSource(void *);
    void slotsDelSource(int);
    void slotsButtonClick();

public slots:
    void slotChangeUIFontSize(int fontSize);

private:
    static CopyImage *m_oInstance;
    static QMutex     m_oMutex;
private:
    QWidget          *m_oShowISO;
    QLabel           *m_oIcon;
    QLabel           *m_oDisplay;
    QWidget          *m_oShowBurner;
    QLabel           *m_oIconBurner;
    QLabel           *m_oDisplayBurner;
    QListWidget      *m_oListWidget;
    QStringList       m_oISOPaths;
    QListWidget      *m_oListWidgetBurner;
    QList<void *>     m_oDes;
    QList<void *>     m_oSrc;
private:
    Ui::CopyImage *ui;
};
#define PAGE_CopyImage CopyImage::instance()
#endif // COPYIMAGE_H
