summaryrefslogtreecommitdiffstats
path: root/sigmodr/SpriteUI.cpp
diff options
context:
space:
mode:
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");