summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/slave/slavereciever.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/slave/slavereciever.cpp b/noncore/graphics/opie-eye/slave/slavereciever.cpp
index 82b3d23..fb88873 100644
--- a/noncore/graphics/opie-eye/slave/slavereciever.cpp
+++ b/noncore/graphics/opie-eye/slave/slavereciever.cpp
@@ -124,107 +124,113 @@ void SlaveReciever::recieveAnswer( const QCString& string, const QByteArray& ar)
owarn << "Got " << (*it).width << " " << (*it).height << " " + (*it).file << oendl;
m_inPix.append(*it);
}
}else if ( string == "refUp()" ) {
m_refs++;
}else if ( string == "refDown()" ) {
m_refs--;
}
if (!m_inf->isActive() && !m_inList.isEmpty() )
m_inf->start(5);
if (!m_pix->isActive() && !m_inPix.isEmpty() )
m_pix->start(5);
if ( m_refs )
QPEApplication::setKeepRunning();
else
qApp->quit();
}
PixmapList SlaveReciever::outPix()const {
return m_outPix;
}
StringList SlaveReciever::outInf()const{
return m_outList;
}
void SlaveReciever::slotImageInfo() {
ImageInfo inf = m_inList.first();
m_inList.remove( inf );
static SlaveObjects::Iterator it;
static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!!
for(it = map->begin(); it != map->end(); ++it ) {
if( (*it)->supports(inf.file ) ) {
/* full image info */
if (inf.kind )
inf.info = (*it)->fullImageInfo( inf.file );
else
inf.info = (*it)->iconViewName( inf.file );
m_outList.append( inf );
break;
}
}
if (m_inList.isEmpty() )
m_inf->stop();
if (!m_out->isActive() && !m_outList.isEmpty() )
m_out->start( 100 );
}
void SlaveReciever::slotThumbNail() {
PixmapInfo inf = m_inPix.first();
m_inPix.remove( inf );
static SlaveObjects::Iterator it;
static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!!
for(it = map->begin(); it != map->end(); ++it ) {
SlaveInterface* iface = it.data();
if( iface->supports(inf.file ) ) {
/* pixmap */
- owarn << "Asking for thumbNail in size " << inf.width << " " << inf.height << " for "+inf.file << oendl;
- inf.pixmap = iface->pixmap(inf.file, 64, 64);
+ owarn << "Asking for thumbNail in size " << inf.width << " " << inf.height << " for "+inf.file << oendl;
+ if (inf.width>256||inf.height>256) {
+ owarn << "Scaling thumbnail to 64x64 'cause " << inf.width<<"x"<<inf.height<<
+ " may be nonsense";
+ inf.pixmap = iface->pixmap(inf.file, 64, 64);
+ }else {
+ inf.pixmap = iface->pixmap(inf.file, inf.width, inf.height);
+ }
m_outPix.append( inf );
break;
}
}
if(m_inPix.isEmpty() )
m_pix->stop();
if(!m_out->isActive() && !m_outPix.isEmpty() )
m_out->start(100);
}
void SlaveReciever::slotSend() {
m_out->stop();
owarn << "Sending " << outPix().count() << " " << outInf().count() << "" << oendl;
/* queue it and send */
/* if this ever gets a service introduce request queues
* so we can differinatate between different clients
*/
if (! m_outPix.isEmpty() ) {
QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(PixmapList)" );
answer << outPix();
for ( PixmapList::Iterator it = m_outPix.begin();it!=m_outPix.end();++it ) {
owarn << "Sending out " << (*it).file.latin1() << " " << (*it).width << " " << (*it).height << "" << oendl;
}
}
if ( !m_outList.isEmpty() ) {
QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(StringList)" );
answer << outInf();
for ( StringList::Iterator it = m_outList.begin();it!=m_outList.end();++it ) {
owarn << "Sending out2 " + (*it).file << oendl;
}
}
m_outList.clear();
m_outPix.clear();
}