[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeplasma-addons/applets/frame
From: Etienne Rebetez <etienne.rebetez () oberwallis ! ch>
Date: 2010-04-17 13:59:58
Message-ID: 20100417140241.B7922AC89B () svn ! kde ! org
[Download RAW message or body]
SVN commit 1115792 by erebetez:
BUG: 232361
Picture class checks if the loaded image is not null before it emits pictureLoaded.
M +16 -10 picture.cpp
M +1 -0 picture.h
--- trunk/KDE/kdeplasma-addons/applets/frame/picture.cpp #1115791:1115792
@@ -45,7 +45,6 @@
connect(m_fileWatch,SIGNAL(dirty(QString)),this,SLOT(reload()));
connect(m_fileWatch,SIGNAL(created(QString)),this,SLOT(reload()));
connect(m_fileWatch,SIGNAL(deleted(QString)),this,SLOT(reload()));
-
}
Picture::~Picture()
@@ -65,7 +64,6 @@
QImage Picture::defaultPicture(const QString &message)
{
// Create a QImage with same axpect ratio of default svg and current pixelSize
-
kDebug() << "Default Image:" << m_defaultImage;
QImage image = QImage(m_defaultImage);
m_message = message;
@@ -81,8 +79,7 @@
kDebug() << "Not a local file, downloading" << currentUrl;
m_job = KIO::storedGet( currentUrl, KIO::NoReload, KIO::DefaultFlags );
connect(m_job, SIGNAL(finished(KJob*)), this, SLOT(slotFinished(KJob*)));
- loader = new ImageLoader(m_defaultImage);
- m_message = i18n("Loading image...");
+ emit pictureLoaded(defaultPicture(i18n("Loading image...")));
} else {
if (currentUrl.isEmpty()) {
loader = new ImageLoader(m_defaultImage);
@@ -92,10 +89,10 @@
loader = new ImageLoader(m_currentUrl.path());
setPath(m_currentUrl.path());
m_message.clear();
- }
+ }
+ connect(loader, SIGNAL(loaded(QImage)), this, SLOT(checkImageLoaded(QImage)));
+ QThreadPool::globalInstance()->start(loader);
}
- connect(loader, SIGNAL(loaded(QImage)), this, SIGNAL(pictureLoaded(QImage)));
- QThreadPool::globalInstance()->start(loader);
}
KUrl Picture::url()
@@ -118,8 +115,8 @@
void Picture::reload()
{
kDebug() << "Picture reload";
- ImageLoader *loader = new ImageLoader(m_defaultImage);
- connect(loader, SIGNAL(loaded(QImage)), this, SIGNAL(pictureLoaded(QImage)));
+ ImageLoader *loader = new ImageLoader(m_path);
+ connect(loader, SIGNAL(loaded(QImage)), this, SLOT(checkImageLoaded(QImage)));
QThreadPool::globalInstance()->start(loader);
}
@@ -150,7 +147,16 @@
kDebug() << "Saved to" << path;
setPath(path);
}
- emit pictureLoaded(ImageLoader::correctRotation(image, path));
+ emit checkImageLoaded(ImageLoader::correctRotation(image, path));
}
+void Picture::checkImageLoaded(QImage newImage)
+{
+ if ( newImage.isNull()) {
+ emit pictureLoaded(defaultPicture(i18n("Error loading image. Image was probably deleted.")));
+ } else {
+ emit pictureLoaded(newImage);
+ }
+}
+
#include "picture.moc"
--- trunk/KDE/kdeplasma-addons/applets/frame/picture.h #1115791:1115792
@@ -61,6 +61,7 @@
private Q_SLOTS:
void slotFinished(KJob *job);
void reload();
+ void checkImageLoaded(QImage newImage);
private:
void setPath(const QString &path);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic