diff options
Diffstat (limited to 'sigmodr/SpriteUI.cpp')
| -rw-r--r-- | sigmodr/SpriteUI.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/sigmodr/SpriteUI.cpp b/sigmodr/SpriteUI.cpp index 4edd38f1..acd249bb 100644 --- a/sigmodr/SpriteUI.cpp +++ b/sigmodr/SpriteUI.cpp @@ -47,7 +47,9 @@ void Sigmodr::SpriteUI::initGui() void Sigmodr::SpriteUI::setGui() { varName->setText(qobject_cast<Sigmod::Sprite*>(modified())->name()); - varSprite->setPixmap(QPixmap::fromImage(qobject_cast<Sigmod::Sprite*>(modified())->sprite())); + QPixmap icon; + icon.loadFromData(qobject_cast<Sigmod::Sprite*>(modified())->sprite()); + varSprite->setPixmap(icon); } void Sigmodr::SpriteUI::apply() @@ -81,23 +83,33 @@ void Sigmodr::SpriteUI::on_buttonBrowse_pressed() KUrl url = dialog->selectedFile(); if (url.isValid()) { + QString path; + bool load = true; + bool removeTempFile = false; if (url.isLocalFile()) - { - qobject_cast<Sigmod::Sprite*>(modified())->setSprite(QImage(url.path())); - setGui(); - } + path = url.path(); else { - QString path; if (KIO::NetAccess::download(url, path, this)) - { - qobject_cast<Sigmod::Sprite*>(modified())->setSprite(QImage(path)); - setGui(); - KIO::NetAccess::removeTempFile(path); - } + removeTempFile = true; else + { KMessageBox::error(this, KIO::NetAccess::lastErrorString(), "KIO Error"); + load = false; + } + } + if (load) + { + QImage image(url.path()); + QByteArray bytes; + QBuffer buffer(&bytes); + buffer.open(QIODevice::WriteOnly); + image.save(&buffer); + qobject_cast<Sigmod::Sprite*>(modified())->setSprite(bytes); + setGui(); } + if (removeTempFile) + KIO::NetAccess::removeTempFile(path); } else KMessageBox::error(this, "The URL is not valid", "Malformed URL"); |
