summaryrefslogtreecommitdiffstats
path: root/sigmodr/SpriteUI.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-10-13 21:05:50 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-10-13 21:05:50 +0000
commit460e7bdf3f6c1de69f41b02a16deb85522ae3c49 (patch)
tree3b80ad00d5f021f63d3f890af2e017af314d2106 /sigmodr/SpriteUI.cpp
parentb427a8cdf13aabe59af60acf0a4264d84ae3ff7a (diff)
downloadsigen-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.cpp34
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");