Switch to unified view

a/GUI/player/GUI_PlayerCover.cpp b/GUI/player/GUI_PlayerCover.cpp
...
...
20
20
21
#include <QtNetwork/QNetworkReply>
21
#include <QtNetwork/QNetworkReply>
22
#include <QIcon>
22
#include <QIcon>
23
#include <QImageReader>
23
#include <QImageReader>
24
#include <QImage>
24
#include <QImage>
25
#include <QTemporaryFile>
26
#include <QDir>
25
27
26
void GUI_Player::sl_cover_fetch_done(QNetworkReply* reply)
28
void GUI_Player::sl_cover_fetch_done(QNetworkReply* reply)
27
{
29
{
28
    qDebug() << "GUI_Player::sl_cover_fetch_done";
30
    // qDebug() << "GUI_Player::sl_cover_fetch_done";
29
    if (reply->error() != QNetworkReply::NoError) {
31
    if (reply->error() != QNetworkReply::NoError) {
30
        sl_no_cover_available();
32
        sl_no_cover_available();
31
        return;
33
        return;
32
    }
34
    }
33
35
...
...
35
        reply->header(QNetworkRequest::ContentTypeHeader).toString();
37
        reply->header(QNetworkRequest::ContentTypeHeader).toString();
36
    int scolon;
38
    int scolon;
37
    if ((scolon = smime.indexOf(";")) > 0) {
39
    if ((scolon = smime.indexOf(";")) > 0) {
38
        smime = smime.left(scolon);
40
        smime = smime.left(scolon);
39
    }
41
    }
40
    QByteArray imtype;
42
    const char *imtype;
43
    const char *suffix;
41
    if (!smime.compare("image/png", Qt::CaseInsensitive)) {
44
    if (!smime.compare("image/png", Qt::CaseInsensitive)) {
42
        imtype = "PNG";
45
        imtype = "PNG";
46
        suffix = ".png";
43
    } else     if (!smime.compare("image/jpeg", Qt::CaseInsensitive)) {
47
    } else if (!smime.compare("image/jpeg", Qt::CaseInsensitive)) {
44
        imtype = "JPG";
48
        imtype = "JPG";
49
        suffix = ".jpg";
45
    } else     if (!smime.compare("image/gif", Qt::CaseInsensitive)) {
50
    } else if (!smime.compare("image/gif", Qt::CaseInsensitive)) {
46
        imtype = "GIF";
51
        imtype = "GIF";
52
        suffix = ".gif";
47
    } else {
53
    } else {
48
        qDebug() << "GUI_Player::sl_cover_fetch_done: unsupported mime type: "<<
54
        qDebug() << "GUI_Player::sl_cover_fetch_done: unsupported mime type: "<<
49
            smime;
55
            smime;
50
        sl_no_cover_available();
56
        sl_no_cover_available();
51
        return;
57
        return;
52
    }
58
    }
53
    QImageReader reader((QIODevice*)reply, imtype);
59
    QByteArray imdata = reply->readAll();
54
    reader.setAutoDetectImageFormat(false);
60
61
    QString tpath = 
62
        QDir(QDir::tempPath()).absoluteFilePath(QString::fromUtf8("XXXXXX")
63
                                                + suffix);
64
65
    if (m_covertempfile) {
66
        delete(m_covertempfile);
67
        m_covertempfile = 0;
68
    }
69
    m_covertempfile = new QTemporaryFile(tpath, this);
70
    if (m_covertempfile) {
71
        m_covertempfile->open();
72
        m_covertempfile->write(imdata);
73
        m_covertempfile->close();
74
    }
55
75
56
    QImage image;
76
    QImage image;
57
    if (!reader.read(&image)) {
77
    if (!image.loadFromData(imdata, imtype)) {
58
        qDebug() << "GUI_Player::sl_vover_fetch_done: image read failed " << 
78
        qDebug() << "GUI_Player::sl_cover_fetch_done: image read failed ";
59
            reader.errorString();
60
        sl_no_cover_available();
79
        sl_no_cover_available();
61
        return;
80
        return;
62
    }
81
    }
63
82
64
    QPixmap pixmap;
83
    QPixmap pixmap;
65
    pixmap.convertFromImage(image);
84
    pixmap.convertFromImage(image);
66
    ui->albumCover->setIcon(QIcon(pixmap));
85
    ui->albumCover->setIcon(QIcon(pixmap));
86
87
    QString htmlfrag("<img src=\"");
88
    htmlfrag += m_covertempfile->fileName();
89
    htmlfrag += "\">";
90
    ui->albumCover->setToolTip(htmlfrag);
91
67
    ui->albumCover->repaint();
92
    ui->albumCover->repaint();
68
    reply->deleteLater();
93
    reply->deleteLater();
69
}
94
}
70
95
71
96