diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-10-13 21:05:50 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-10-13 21:05:50 +0000 |
| commit | 460e7bdf3f6c1de69f41b02a16deb85522ae3c49 (patch) | |
| tree | 3b80ad00d5f021f63d3f890af2e017af314d2106 /sigmodr/SpriteUI.cpp | |
| parent | b427a8cdf13aabe59af60acf0a4264d84ae3ff7a (diff) | |
| download | sigen-460e7bdf3f6c1de69f41b02a16deb85522ae3c49.tar.gz sigen-460e7bdf3f6c1de69f41b02a16deb85522ae3c49.tar.xz sigen-460e7bdf3f6c1de69f41b02a16deb85522ae3c49.zip | |
[FIX] Sprite no longer stores a QImage, but a QByteArray
[FIX] Preparing for move to a collaged map instead of a tiled map
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@278 6ecfd1a5-f3ed-3746-8530-beee90d26b22
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"); |
