summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-04 19:08:33 (UTC)
committer alwin <alwin>2004-04-04 19:08:33 (UTC)
commit10eac928ae0a1441529f7d38dd774740af477481 (patch) (unidiff)
tree18684ff7f6a8b15f936ee4428ea58b1f164dd477
parent4588425855268ce88a80ddbac7e1c3d4b87b03f4 (diff)
downloadopie-10eac928ae0a1441529f7d38dd774740af477481.zip
opie-10eac928ae0a1441529f7d38dd774740af477481.tar.gz
opie-10eac928ae0a1441529f7d38dd774740af477481.tar.bz2
thumbnails will respect again the dimension values wished. just when them
seems to be nonsens we will use hard wired 64x64 pix
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
@@ -60,171 +60,177 @@ SlaveObjects* slaveObjects() {
60 return _slaveObj; 60 return _slaveObj;
61} 61}
62 62
63SlaveReciever::SlaveReciever( QObject* par) 63SlaveReciever::SlaveReciever( QObject* par)
64 : QObject( par ), m_refs( 0 ) 64 : QObject( par ), m_refs( 0 )
65{ 65{
66 m_inf = new QTimer(this); 66 m_inf = new QTimer(this);
67 connect(m_inf,SIGNAL(timeout()), 67 connect(m_inf,SIGNAL(timeout()),
68 this, SLOT(slotImageInfo())); 68 this, SLOT(slotImageInfo()));
69 m_pix = new QTimer(this); 69 m_pix = new QTimer(this);
70 connect(m_pix,SIGNAL(timeout()), 70 connect(m_pix,SIGNAL(timeout()),
71 this, SLOT(slotThumbNail())); 71 this, SLOT(slotThumbNail()));
72 72
73 m_out = new QTimer(this); 73 m_out = new QTimer(this);
74 connect(m_out,SIGNAL(timeout()), 74 connect(m_out,SIGNAL(timeout()),
75 this, SLOT(slotSend())); 75 this, SLOT(slotSend()));
76 76
77 SlaveObjects *obj = slaveObjects(); // won't be changed 77 SlaveObjects *obj = slaveObjects(); // won't be changed
78 SlaveMap::Iterator it; 78 SlaveMap::Iterator it;
79 SlaveMap* map = slaveMap(); // SlaveMap won't be changed during execution!!! 79 SlaveMap* map = slaveMap(); // SlaveMap won't be changed during execution!!!
80 for(it = map->begin(); it != map->end(); ++it ) { 80 for(it = map->begin(); it != map->end(); ++it ) {
81 obj->insert( it.key(), (*it.data())() ); 81 obj->insert( it.key(), (*it.data())() );
82 } 82 }
83} 83}
84 84
85SlaveReciever::~SlaveReciever() { 85SlaveReciever::~SlaveReciever() {
86} 86}
87 87
88void SlaveReciever::recieveAnswer( const QCString& string, const QByteArray& ar) { 88void SlaveReciever::recieveAnswer( const QCString& string, const QByteArray& ar) {
89 owarn << "String is " << string.data() << "" << oendl; 89 owarn << "String is " << string.data() << "" << oendl;
90 QDataStream stream(ar, IO_ReadOnly ); 90 QDataStream stream(ar, IO_ReadOnly );
91 QStringList lst; 91 QStringList lst;
92 static ImageInfo inf; 92 static ImageInfo inf;
93 static PixmapInfo pix; 93 static PixmapInfo pix;
94 94
95 if ( string == "thumbInfo(QString)" ) { 95 if ( string == "thumbInfo(QString)" ) {
96 stream >> inf.file; 96 stream >> inf.file;
97 m_inList.append(inf); 97 m_inList.append(inf);
98 }else if ( string == "thumbInfos(QStringList)" ) { 98 }else if ( string == "thumbInfos(QStringList)" ) {
99 stream >> lst; 99 stream >> lst;
100 for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { 100 for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
101 owarn << "Adding thumbinfo for file "+ *it << oendl; 101 owarn << "Adding thumbinfo for file "+ *it << oendl;
102 inf.file = (*it); 102 inf.file = (*it);
103 m_inList.append(inf); 103 m_inList.append(inf);
104 } 104 }
105 }else if ( string == "fullInfo(QString)" ) { 105 }else if ( string == "fullInfo(QString)" ) {
106 inf.kind = true; 106 inf.kind = true;
107 stream >> inf.file; 107 stream >> inf.file;
108 m_inList.append(inf); 108 m_inList.append(inf);
109 }else if ( string == "fullInfos(QStringList)" ) { 109 }else if ( string == "fullInfos(QStringList)" ) {
110 stream >> lst; 110 stream >> lst;
111 for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { 111 for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
112 owarn << "Adding fullInfo for"+ *it << oendl; 112 owarn << "Adding fullInfo for"+ *it << oendl;
113 inf.file = (*it); 113 inf.file = (*it);
114 inf.kind = true; 114 inf.kind = true;
115 m_inList.append(inf); 115 m_inList.append(inf);
116 } 116 }
117 }else if ( string == "pixmapInfo(QString,int,int)" ) { 117 }else if ( string == "pixmapInfo(QString,int,int)" ) {
118 stream >> pix.file >> pix.width >> pix.height; 118 stream >> pix.file >> pix.width >> pix.height;
119 m_inPix.append(pix); 119 m_inPix.append(pix);
120 }else if ( string == "pixmapInfos(PixmapInfos)" ) { 120 }else if ( string == "pixmapInfos(PixmapInfos)" ) {
121 PixmapList list; 121 PixmapList list;
122 stream >> list; 122 stream >> list;
123 for(PixmapList::Iterator it = list.begin(); it != list.end(); ++it ) { 123 for(PixmapList::Iterator it = list.begin(); it != list.end(); ++it ) {
124 owarn << "Got " << (*it).width << " " << (*it).height << " " + (*it).file << oendl; 124 owarn << "Got " << (*it).width << " " << (*it).height << " " + (*it).file << oendl;
125 m_inPix.append(*it); 125 m_inPix.append(*it);
126 } 126 }
127 }else if ( string == "refUp()" ) { 127 }else if ( string == "refUp()" ) {
128 m_refs++; 128 m_refs++;
129 }else if ( string == "refDown()" ) { 129 }else if ( string == "refDown()" ) {
130 m_refs--; 130 m_refs--;
131 } 131 }
132 132
133 if (!m_inf->isActive() && !m_inList.isEmpty() ) 133 if (!m_inf->isActive() && !m_inList.isEmpty() )
134 m_inf->start(5); 134 m_inf->start(5);
135 135
136 if (!m_pix->isActive() && !m_inPix.isEmpty() ) 136 if (!m_pix->isActive() && !m_inPix.isEmpty() )
137 m_pix->start(5); 137 m_pix->start(5);
138 138
139 if ( m_refs ) 139 if ( m_refs )
140 QPEApplication::setKeepRunning(); 140 QPEApplication::setKeepRunning();
141 else 141 else
142 qApp->quit(); 142 qApp->quit();
143 143
144} 144}
145 145
146PixmapList SlaveReciever::outPix()const { 146PixmapList SlaveReciever::outPix()const {
147 return m_outPix; 147 return m_outPix;
148} 148}
149 149
150StringList SlaveReciever::outInf()const{ 150StringList SlaveReciever::outInf()const{
151 return m_outList; 151 return m_outList;
152} 152}
153 153
154void SlaveReciever::slotImageInfo() { 154void SlaveReciever::slotImageInfo() {
155 ImageInfo inf = m_inList.first(); 155 ImageInfo inf = m_inList.first();
156 m_inList.remove( inf ); 156 m_inList.remove( inf );
157 157
158 static SlaveObjects::Iterator it; 158 static SlaveObjects::Iterator it;
159 static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!! 159 static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!!
160 for(it = map->begin(); it != map->end(); ++it ) { 160 for(it = map->begin(); it != map->end(); ++it ) {
161 if( (*it)->supports(inf.file ) ) { 161 if( (*it)->supports(inf.file ) ) {
162 /* full image info */ 162 /* full image info */
163 if (inf.kind ) 163 if (inf.kind )
164 inf.info = (*it)->fullImageInfo( inf.file ); 164 inf.info = (*it)->fullImageInfo( inf.file );
165 else 165 else
166 inf.info = (*it)->iconViewName( inf.file ); 166 inf.info = (*it)->iconViewName( inf.file );
167 m_outList.append( inf ); 167 m_outList.append( inf );
168 break; 168 break;
169 } 169 }
170 } 170 }
171 171
172 if (m_inList.isEmpty() ) 172 if (m_inList.isEmpty() )
173 m_inf->stop(); 173 m_inf->stop();
174 if (!m_out->isActive() && !m_outList.isEmpty() ) 174 if (!m_out->isActive() && !m_outList.isEmpty() )
175 m_out->start( 100 ); 175 m_out->start( 100 );
176} 176}
177 177
178void SlaveReciever::slotThumbNail() { 178void SlaveReciever::slotThumbNail() {
179 PixmapInfo inf = m_inPix.first(); 179 PixmapInfo inf = m_inPix.first();
180 m_inPix.remove( inf ); 180 m_inPix.remove( inf );
181 181
182 static SlaveObjects::Iterator it; 182 static SlaveObjects::Iterator it;
183 static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!! 183 static SlaveObjects* map = slaveObjects(); // SlaveMap won't be changed during execution!!!
184 for(it = map->begin(); it != map->end(); ++it ) { 184 for(it = map->begin(); it != map->end(); ++it ) {
185 SlaveInterface* iface = it.data(); 185 SlaveInterface* iface = it.data();
186 if( iface->supports(inf.file ) ) { 186 if( iface->supports(inf.file ) ) {
187 /* pixmap */ 187 /* pixmap */
188 owarn << "Asking for thumbNail in size " << inf.width << " " << inf.height << " for "+inf.file << oendl; 188 owarn << "Asking for thumbNail in size " << inf.width << " " << inf.height << " for "+inf.file << oendl;
189 inf.pixmap = iface->pixmap(inf.file, 64, 64); 189 if (inf.width>256||inf.height>256) {
190 owarn << "Scaling thumbnail to 64x64 'cause " << inf.width<<"x"<<inf.height<<
191 " may be nonsense";
192 inf.pixmap = iface->pixmap(inf.file, 64, 64);
193 }else {
194 inf.pixmap = iface->pixmap(inf.file, inf.width, inf.height);
195 }
190 m_outPix.append( inf ); 196 m_outPix.append( inf );
191 break; 197 break;
192 } 198 }
193 } 199 }
194 200
195 201
196 202
197 if(m_inPix.isEmpty() ) 203 if(m_inPix.isEmpty() )
198 m_pix->stop(); 204 m_pix->stop();
199 if(!m_out->isActive() && !m_outPix.isEmpty() ) 205 if(!m_out->isActive() && !m_outPix.isEmpty() )
200 m_out->start(100); 206 m_out->start(100);
201} 207}
202 208
203void SlaveReciever::slotSend() { 209void SlaveReciever::slotSend() {
204 210
205 m_out->stop(); 211 m_out->stop();
206 212
207 owarn << "Sending " << outPix().count() << " " << outInf().count() << "" << oendl; 213 owarn << "Sending " << outPix().count() << " " << outInf().count() << "" << oendl;
208 /* queue it and send */ 214 /* queue it and send */
209 /* if this ever gets a service introduce request queues 215 /* if this ever gets a service introduce request queues
210 * so we can differinatate between different clients 216 * so we can differinatate between different clients
211 */ 217 */
212 if (! m_outPix.isEmpty() ) { 218 if (! m_outPix.isEmpty() ) {
213 QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(PixmapList)" ); 219 QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(PixmapList)" );
214 answer << outPix(); 220 answer << outPix();
215 for ( PixmapList::Iterator it = m_outPix.begin();it!=m_outPix.end();++it ) { 221 for ( PixmapList::Iterator it = m_outPix.begin();it!=m_outPix.end();++it ) {
216 owarn << "Sending out " << (*it).file.latin1() << " " << (*it).width << " " << (*it).height << "" << oendl; 222 owarn << "Sending out " << (*it).file.latin1() << " " << (*it).width << " " << (*it).height << "" << oendl;
217 } 223 }
218 } 224 }
219 if ( !m_outList.isEmpty() ) { 225 if ( !m_outList.isEmpty() ) {
220 QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(StringList)" ); 226 QCopEnvelope answer("QPE/opie-eye", "pixmapsHandled(StringList)" );
221 answer << outInf(); 227 answer << outInf();
222 for ( StringList::Iterator it = m_outList.begin();it!=m_outList.end();++it ) { 228 for ( StringList::Iterator it = m_outList.begin();it!=m_outList.end();++it ) {
223 owarn << "Sending out2 " + (*it).file << oendl; 229 owarn << "Sending out2 " + (*it).file << oendl;
224 } 230 }
225 } 231 }
226 232
227 m_outList.clear(); 233 m_outList.clear();
228 m_outPix.clear(); 234 m_outPix.clear();
229} 235}
230 236