summaryrefslogtreecommitdiffabout
path: root/microkde
Unidiff
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kconfig.cpp4
-rw-r--r--microkde/kdecore/kstandarddirs.cpp2
-rw-r--r--microkde/kdeui/kactioncollection.cpp5
-rw-r--r--microkde/kdeui/klistview.cpp2
4 files changed, 7 insertions, 6 deletions
diff --git a/microkde/kconfig.cpp b/microkde/kconfig.cpp
index ba41f6c..5b685d3 100644
--- a/microkde/kconfig.cpp
+++ b/microkde/kconfig.cpp
@@ -80,386 +80,386 @@ QValueList<int> KConfig::readIntListEntry( const QString & key)
80 } 80 }
81 81
82 if (ok2 == false) 82 if (ok2 == false)
83 { 83 {
84 84
85 qDebug("KConfig::readIntListEntry: error while reading one of the intvalues."); 85 qDebug("KConfig::readIntListEntry: error while reading one of the intvalues.");
86 } 86 }
87 87
88 return result; 88 return result;
89} 89}
90 90
91int KConfig::readNumEntry( const QString & key, int def ) 91int KConfig::readNumEntry( const QString & key, int def )
92{ 92{
93 QString res = readEntry(key, QString::number(def ) ); 93 QString res = readEntry(key, QString::number(def ) );
94 bool ok = false; 94 bool ok = false;
95 int result = res.toInt(&ok); 95 int result = res.toInt(&ok);
96 if ( ok ) 96 if ( ok )
97 return result; 97 return result;
98 return def; 98 return def;
99} 99}
100 100
101QString KConfig::readEntry( const QString &key, const QString &def ) 101QString KConfig::readEntry( const QString &key, const QString &def )
102{ 102{
103 QMap<QString,QString>::ConstIterator it = mStringMap.find( mGroup + key ); 103 QMap<QString,QString>::ConstIterator it = mStringMap.find( mGroup + key );
104 104
105 if ( it == mStringMap.end() ) { 105 if ( it == mStringMap.end() ) {
106 return def; 106 return def;
107 } 107 }
108 108
109 return *it; 109 return *it;
110} 110}
111 111
112QSize KConfig::readSizeEntry( const QString &key, QSize* def ) 112QSize KConfig::readSizeEntry( const QString &key, QSize* def )
113{ 113{
114 QValueList<int> intlist = readIntListEntry(key); 114 QValueList<int> intlist = readIntListEntry(key);
115 115
116 if (intlist.count() < 2) 116 if (intlist.count() < 2)
117 { 117 {
118 if (def) 118 if (def)
119 return *def; 119 return *def;
120 else 120 else
121 return QSize(); 121 return QSize();
122 } 122 }
123 123
124 QSize ret; 124 QSize ret;
125 ret.setWidth(intlist[0]); 125 ret.setWidth(intlist[0]);
126 ret.setHeight(intlist[1]); 126 ret.setHeight(intlist[1]);
127 127
128 return ret; 128 return ret;
129} 129}
130 130
131QStringList KConfig::readListEntry( const QString &key ) 131QStringList KConfig::readListEntry( const QString &key )
132{ 132{
133 QMap<QString,QString>::ConstIterator it = mStringMap.find( mGroup + key ); 133 QMap<QString,QString>::ConstIterator it = mStringMap.find( mGroup + key );
134 134
135 if ( it == mStringMap.end() ) { 135 if ( it == mStringMap.end() ) {
136 return QStringList(); 136 return QStringList();
137 } 137 }
138 return QStringList::split(":", *it ); 138 return QStringList::split(":", *it );
139 139
140} 140}
141 141
142bool KConfig::readBoolEntry( const QString &key, bool def ) 142bool KConfig::readBoolEntry( const QString &key, bool def )
143{ 143{
144 QMap<QString,bool>::ConstIterator it = mBoolMap.find( mGroup + key ); 144 QMap<QString,bool>::ConstIterator it = mBoolMap.find( mGroup + key );
145 145
146 if ( it == mBoolMap.end() ) { 146 if ( it == mBoolMap.end() ) {
147 return def; 147 return def;
148 } 148 }
149 149
150 return *it; 150 return *it;
151} 151}
152 152
153QColor KConfig::readColorEntry( const QString & e, QColor *def ) 153QColor KConfig::readColorEntry( const QString & e, QColor *def )
154{ 154{
155 155
156 QStringList l; 156 QStringList l;
157 l = readListEntry( e ); 157 l = readListEntry( e );
158 if (l.count() != 3 ) { 158 if (l.count() != 3 ) {
159 if ( def ) 159 if ( def )
160 return *def; 160 return *def;
161 else 161 else
162 return QColor(); 162 return QColor();
163 } 163 }
164 QColor c ( l[0].toInt(), l[1].toInt(), l[2].toInt() ); 164 QColor c ( l[0].toInt(), l[1].toInt(), l[2].toInt() );
165 return c; 165 return c;
166} 166}
167 167
168QFont KConfig::readFontEntry( const QString & e, QFont *def ) 168QFont KConfig::readFontEntry( const QString & e, QFont *def )
169{ 169{
170 QStringList font = readListEntry( e ); 170 QStringList font = readListEntry( e );
171 if ( font.isEmpty() ) 171 if ( font.isEmpty() )
172 return *def; 172 return *def;
173 QFont f; 173 QFont f;
174 f.setFamily( font[0]); 174 f.setFamily( font[0]);
175 f.setBold ( font[1] == "bold"); 175 f.setBold ( font[1] == "bold");
176 f.setPointSize ( font[2].toInt()); 176 f.setPointSize ( font[2].toInt());
177 f.setItalic( font[3] == "italic" ); 177 f.setItalic( font[3] == "italic" );
178 return f; 178 return f;
179} 179}
180 180
181QDateTime KConfig::readDateTimeEntry( const QString &key, const QDateTime *def ) 181QDateTime KConfig::readDateTimeEntry( const QString &key, const QDateTime *def )
182{ 182{
183 QMap<QString,QDateTime>::ConstIterator it = mDateTimeMap.find( mGroup + key ); 183 QMap<QString,QDateTime>::ConstIterator it = mDateTimeMap.find( mGroup + key );
184 184
185 if ( it == mDateTimeMap.end() ) { 185 if ( it == mDateTimeMap.end() ) {
186 if ( def ) return *def; 186 if ( def ) return *def;
187 else return QDateTime(); 187 else return QDateTime();
188 } 188 }
189 189
190 return *it; 190 return *it;
191} 191}
192 192
193//US added method 193//US added method
194void KConfig::writeEntry( const QString &key, const QValueList<int> &value) 194void KConfig::writeEntry( const QString &key, const QValueList<int> &value)
195{ 195{
196 QStringList valuesAsStrings; 196 QStringList valuesAsStrings;
197 197
198 QValueList<int>::ConstIterator it; 198 QValueList<int>::ConstIterator it;
199 199
200 for( it = value.begin(); it != value.end(); ++it ) 200 for( it = value.begin(); it != value.end(); ++it )
201 { 201 {
202 valuesAsStrings << QString::number(*it); 202 valuesAsStrings << QString::number(*it);
203 } 203 }
204 204
205 mStringMap.insert( mGroup + key, valuesAsStrings.join(":") ); 205 mStringMap.insert( mGroup + key, valuesAsStrings.join(":") );
206 mDirty = true; 206 mDirty = true;
207} 207}
208 208
209void KConfig::writeEntry( const QString & key , int num ) 209void KConfig::writeEntry( const QString & key , int num )
210{ 210{
211 writeEntry( key, QString::number ( num ) ); 211 writeEntry( key, QString::number ( num ) );
212} 212}
213 213
214void KConfig::writeEntry( const QString &key, const QString &value ) 214void KConfig::writeEntry( const QString &key, const QString &value )
215{ 215{
216 mStringMap.insert( mGroup + key, value ); 216 mStringMap.insert( mGroup + key, value );
217 217
218 mDirty = true; 218 mDirty = true;
219} 219}
220 220
221void KConfig::writeEntry( const QString &key, const QStringList &value ) 221void KConfig::writeEntry( const QString &key, const QStringList &value )
222{ 222{
223 mStringMap.insert( mGroup + key, value.join(":") ); 223 mStringMap.insert( mGroup + key, value.join(":") );
224 224
225 mDirty = true; 225 mDirty = true;
226} 226}
227 227
228void KConfig::writeEntry( const QString &key, bool value) 228void KConfig::writeEntry( const QString &key, bool value)
229{ 229{
230 mBoolMap.insert( mGroup + key, value ); 230 mBoolMap.insert( mGroup + key, value );
231 231
232 mDirty = true; 232 mDirty = true;
233} 233}
234 234
235void KConfig::writeEntry( const QString & e, const QColor & c ) 235void KConfig::writeEntry( const QString & e, const QColor & c )
236{ 236{
237 QStringList l; 237 QStringList l;
238 l.append( QString::number ( c.red() ) ); 238 l.append( QString::number ( c.red() ) );
239 l.append( QString::number ( c.green() ) ); 239 l.append( QString::number ( c.green() ) );
240 l.append( QString::number ( c.blue() ) ); 240 l.append( QString::number ( c.blue() ) );
241 writeEntry( e, l ); 241 writeEntry( e, l );
242} 242}
243 243
244void KConfig::writeEntry( const QString & e, const QSize & s ) 244void KConfig::writeEntry( const QString & e, const QSize & s )
245{ 245{
246 QValueList<int> intlist; 246 QValueList<int> intlist;
247 intlist << s.width() << s.height(); 247 intlist << s.width() << s.height();
248 writeEntry( e, intlist ); 248 writeEntry( e, intlist );
249} 249}
250 250
251void KConfig::writeEntry( const QString & e , const QFont & f ) 251void KConfig::writeEntry( const QString & e , const QFont & f )
252{ 252{
253 QStringList font; 253 QStringList font;
254 font.append( f.family()); 254 font.append( f.family());
255 font.append( (!f.bold ()?"nonbold":"bold") ); 255 font.append( (!f.bold ()?"nonbold":"bold") );
256 font.append( QString::number ( f.pointSize () ) ); 256 font.append( QString::number ( f.pointSize () ) );
257 font.append( !f.italic ()?"nonitalic":"italic" ); 257 font.append( !f.italic ()?"nonitalic":"italic" );
258 writeEntry( e, font ); 258 writeEntry( e, font );
259} 259}
260 260
261void KConfig::writeEntry( const QString &key, const QDateTime &dt ) 261void KConfig::writeEntry( const QString &key, const QDateTime &dt )
262{ 262{
263 mDateTimeMap.insert( mGroup + key, dt ); 263 mDateTimeMap.insert( mGroup + key, dt );
264} 264}
265 265
266void KConfig::load() 266void KConfig::load()
267{ 267{
268 268
269 269
270 QFile f( mFileName ); 270 QFile f( mFileName );
271 if ( !f.open( IO_ReadOnly ) ) { 271 if ( !f.open( IO_ReadOnly ) ) {
272 qDebug("KConfig: could not open file %s ",mFileName.latin1() ); 272 //qDebug("KConfig: could not open file %s ",mFileName.latin1() );
273 return; 273 return;
274 } 274 }
275 275
276 mBoolMap.clear(); 276 mBoolMap.clear();
277 mStringMap.clear(); 277 mStringMap.clear();
278 278
279 QTextStream t( &f ); 279 QTextStream t( &f );
280 280
281 QString line = t.readLine(); 281 QString line = t.readLine();
282 282
283 while ( !line.isNull() ) { 283 while ( !line.isNull() ) {
284 QStringList tokens = QStringList::split( ",", line ); 284 QStringList tokens = QStringList::split( ",", line );
285 if ( tokens[0] == "bool" ) { 285 if ( tokens[0] == "bool" ) {
286 bool value = false; 286 bool value = false;
287 if ( tokens[2] == "1" ) value = true; 287 if ( tokens[2] == "1" ) value = true;
288 mBoolMap.insert( tokens[1], value ); 288 mBoolMap.insert( tokens[1], value );
289 } else if ( tokens[0] == "QString" ) { 289 } else if ( tokens[0] == "QString" ) {
290 QString value = tokens[2]; 290 QString value = tokens[2];
291 mStringMap.insert( tokens[1], value ); 291 mStringMap.insert( tokens[1], value );
292 } else if ( tokens[0] == "QDateTime" ) { 292 } else if ( tokens[0] == "QDateTime" ) {
293#if 0 293#if 0
294 int year = tokens[2].toInt(); 294 int year = tokens[2].toInt();
295 QDateTime dt( QDate( year, 295 QDateTime dt( QDate( year,
296 tokens[3].toInt(), 296 tokens[3].toInt(),
297 tokens[4].toInt() ), 297 tokens[4].toInt() ),
298 QTime( tokens[5].toInt(), tokens[6].toInt(), 298 QTime( tokens[5].toInt(), tokens[6].toInt(),
299 tokens[7].toInt() ) ); 299 tokens[7].toInt() ) );
300 mDateTimeMap.insert( tokens[1], dt ); 300 mDateTimeMap.insert( tokens[1], dt );
301#endif 301#endif
302 } 302 }
303 303
304 line = t.readLine(); 304 line = t.readLine();
305 } 305 }
306} 306}
307 307
308void KConfig::sync() 308void KConfig::sync()
309{ 309{
310 310
311 if ( !mDirty ) return; 311 if ( !mDirty ) return;
312 //qDebug("KConfig::sync() %s ",mFileName.latin1() ); 312 //qDebug("KConfig::sync() %s ",mFileName.latin1() );
313 //kdDebug() << "KConfig::sync(): " << mFileName << endl; 313 //kdDebug() << "KConfig::sync(): " << mFileName << endl;
314 314
315//US I took the following code from a newer version of KDE 315//US I took the following code from a newer version of KDE
316 // Create the containing dir if needed 316 // Create the containing dir if needed
317 KURL path; 317 KURL path;
318 path.setPath(mFileName); 318 path.setPath(mFileName);
319 QString dir=path.directory(); 319 QString dir=path.directory();
320 KStandardDirs::makeDir(dir); 320 KStandardDirs::makeDir(dir);
321 321
322 QFile f( mFileName ); 322 QFile f( mFileName );
323 if ( !f.open( IO_WriteOnly ) ) { 323 if ( !f.open( IO_WriteOnly ) ) {
324 324
325 qDebug("KConfig::sync() Can't open file %s ",mFileName.latin1() ); 325 qDebug("KConfig::sync() Can't open file %s ",mFileName.latin1() );
326 326
327 return; 327 return;
328 } 328 }
329 329
330 QTextStream t( &f ); 330 QTextStream t( &f );
331 331
332 QMap<QString,bool>::ConstIterator itBool; 332 QMap<QString,bool>::ConstIterator itBool;
333 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) { 333 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) {
334 t << "bool," << itBool.key() << "," << ( *itBool ? "1" : "0" ) << endl; 334 t << "bool," << itBool.key() << "," << ( *itBool ? "1" : "0" ) << endl;
335 } 335 }
336 336
337 QMap<QString,QString>::ConstIterator itString; 337 QMap<QString,QString>::ConstIterator itString;
338 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) { 338 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) {
339 t << "QString," << itString.key() << "," << (*itString ) << endl; 339 t << "QString," << itString.key() << "," << (*itString ) << endl;
340 } 340 }
341 341
342 QMap<QString,QDateTime>::ConstIterator itDateTime; 342 QMap<QString,QDateTime>::ConstIterator itDateTime;
343 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) { 343 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) {
344 QDateTime dt = *itDateTime; 344 QDateTime dt = *itDateTime;
345 t << "QDateTime," << itDateTime.key() << "," 345 t << "QDateTime," << itDateTime.key() << ","
346 << dt.date().year() << "," 346 << dt.date().year() << ","
347 << dt.date().month() << "," 347 << dt.date().month() << ","
348 << dt.date().day() << "," 348 << dt.date().day() << ","
349 << dt.time().hour() << "," 349 << dt.time().hour() << ","
350 << dt.time().minute() << "," 350 << dt.time().minute() << ","
351 << dt.time().second() << endl; 351 << dt.time().second() << endl;
352 } 352 }
353 353
354 f.close(); 354 f.close();
355 355
356 mDirty = false; 356 mDirty = false;
357} 357}
358 358
359 359
360//US I took the following deleteGroup method from a newer version from KDE. 360//US I took the following deleteGroup method from a newer version from KDE.
361/** 361/**
362 * Deletes a configuration entry group 362 * Deletes a configuration entry group
363 * 363 *
364 * If the group is not empty and bDeep is false, nothing gets 364 * If the group is not empty and bDeep is false, nothing gets
365 * deleted and false is returned. 365 * deleted and false is returned.
366 * If this group is the current group and it is deleted, the 366 * If this group is the current group and it is deleted, the
367 * current group is undefined and should be set with setGroup() 367 * current group is undefined and should be set with setGroup()
368 * before the next operation on the configuration object. 368 * before the next operation on the configuration object.
369 * 369 *
370 * @param group The name of the group 370 * @param group The name of the group
371 * returns true if we deleted at least one entry. 371 * returns true if we deleted at least one entry.
372 */ 372 */
373bool KConfig::deleteGroup( const QString& group) 373bool KConfig::deleteGroup( const QString& group)
374{ 374{
375 bool dirty = false; 375 bool dirty = false;
376 int pos; 376 int pos;
377 377
378 QMap<QString,bool>::Iterator itBool = mBoolMap.begin(); 378 QMap<QString,bool>::Iterator itBool = mBoolMap.begin();
379 QMap<QString,bool>::Iterator delBool; 379 QMap<QString,bool>::Iterator delBool;
380 380
381 while ( itBool != mBoolMap.end() ) { 381 while ( itBool != mBoolMap.end() ) {
382 pos = itBool.key().find( group ); 382 pos = itBool.key().find( group );
383 if (pos == 0) { 383 if (pos == 0) {
384 delBool = itBool; 384 delBool = itBool;
385 ++itBool; 385 ++itBool;
386 mBoolMap.remove(delBool); 386 mBoolMap.remove(delBool);
387 dirty = true; 387 dirty = true;
388 } else 388 } else
389 ++itBool; 389 ++itBool;
390 390
391 } 391 }
392 /* 392 /*
393 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) 393 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool )
394 { 394 {
395 pos = itBool.key().find( group ); 395 pos = itBool.key().find( group );
396 if (pos == 0) { 396 if (pos == 0) {
397 mBoolMap.remove(itBool); 397 mBoolMap.remove(itBool);
398 dirty = true; 398 dirty = true;
399 } 399 }
400 } 400 }
401 */ 401 */
402 QMap<QString,QString>::Iterator itString = mStringMap.begin(); 402 QMap<QString,QString>::Iterator itString = mStringMap.begin();
403 QMap<QString,QString>::Iterator delString ; 403 QMap<QString,QString>::Iterator delString ;
404 while( itString != mStringMap.end() ) { 404 while( itString != mStringMap.end() ) {
405 pos = itString.key().find( group ); 405 pos = itString.key().find( group );
406 if (pos == 0) { 406 if (pos == 0) {
407 delString = itString; 407 delString = itString;
408 ++itString; 408 ++itString;
409 mStringMap.remove(delString); 409 mStringMap.remove(delString);
410 //qDebug("delte++++++++++++++++++ "); 410 //qDebug("delte++++++++++++++++++ ");
411 dirty = true; 411 dirty = true;
412 } else 412 } else
413 ++itString; 413 ++itString;
414 414
415 } 415 }
416 /* this leads to a memory access violation 416 /* this leads to a memory access violation
417 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) 417 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString )
418 { 418 {
419 pos = itString.key().find( group ); 419 pos = itString.key().find( group );
420 if (pos == 0) { 420 if (pos == 0) {
421 mStringMap.remove(itString); 421 mStringMap.remove(itString);
422 dirty = true; 422 dirty = true;
423 } 423 }
424 } 424 }
425 */ 425 */
426 QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin(); 426 QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin();
427 QMap<QString,QDateTime>::Iterator delDateTime; 427 QMap<QString,QDateTime>::Iterator delDateTime;
428 while ( itDateTime != mDateTimeMap.end() ) { 428 while ( itDateTime != mDateTimeMap.end() ) {
429 pos = itDateTime.key().find( group ); 429 pos = itDateTime.key().find( group );
430 if (pos == 0) { 430 if (pos == 0) {
431 delDateTime = itDateTime; 431 delDateTime = itDateTime;
432 ++itDateTime; 432 ++itDateTime;
433 mDateTimeMap.remove(delDateTime); 433 mDateTimeMap.remove(delDateTime);
434 dirty = true; 434 dirty = true;
435 } else 435 } else
436 ++itDateTime; 436 ++itDateTime;
437 437
438 } 438 }
439 /* 439 /*
440 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) 440 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime )
441 { 441 {
442 pos = itDateTime.key().find( group ); 442 pos = itDateTime.key().find( group );
443 if (pos == 0) { 443 if (pos == 0) {
444 mDateTimeMap.remove(itDateTime); 444 mDateTimeMap.remove(itDateTime);
445 dirty = true; 445 dirty = true;
446 } 446 }
447 } 447 }
448 */ 448 */
449 449
450 if (dirty) 450 if (dirty)
451 mDirty = true; 451 mDirty = true;
452 452
453 return dirty; 453 return dirty;
454 454
455} 455}
456 456
457//US I took the following hasGroup method from a newer version from KDE. 457//US I took the following hasGroup method from a newer version from KDE.
458 /** 458 /**
459 * Returns true if the specified group is known about. 459 * Returns true if the specified group is known about.
460 * 460 *
461 * @param group The group to search for. 461 * @param group The group to search for.
462 * @return Whether the group exists. 462 * @return Whether the group exists.
463 */ 463 */
464bool KConfig::hasGroup(const QString &group) const 464bool KConfig::hasGroup(const QString &group) const
465{ 465{
diff --git a/microkde/kdecore/kstandarddirs.cpp b/microkde/kdecore/kstandarddirs.cpp
index 1c3e0ae..4c03c15 100644
--- a/microkde/kdecore/kstandarddirs.cpp
+++ b/microkde/kdecore/kstandarddirs.cpp
@@ -1367,296 +1367,296 @@ void KStandardDirs::addKDEDefaults()
1367 addXdgConfigPrefix(dir); 1367 addXdgConfigPrefix(dir);
1368 } 1368 }
1369 // end XDG_CONFIG_XXX 1369 // end XDG_CONFIG_XXX
1370 1370
1371 // begin XDG_DATA_XXX 1371 // begin XDG_DATA_XXX
1372 xdgdirs = readEnvPath("XDG_DATA_DIRS"); 1372 xdgdirs = readEnvPath("XDG_DATA_DIRS");
1373 if (!xdgdirs.isEmpty()) 1373 if (!xdgdirs.isEmpty())
1374 { 1374 {
1375 tokenize(xdgdirList, xdgdirs, ":"); 1375 tokenize(xdgdirList, xdgdirs, ":");
1376 } 1376 }
1377 else 1377 else
1378 { 1378 {
1379 xdgdirList.clear(); 1379 xdgdirList.clear();
1380 for (QStringList::ConstIterator it = kdedirList.begin(); 1380 for (QStringList::ConstIterator it = kdedirList.begin();
1381 it != kdedirList.end(); it++) 1381 it != kdedirList.end(); it++)
1382 { 1382 {
1383 QString dir = *it; 1383 QString dir = *it;
1384 if (dir.at(dir.length()-1) != '/') 1384 if (dir.at(dir.length()-1) != '/')
1385 dir += '/'; 1385 dir += '/';
1386 xdgdirList.append(dir+"share/"); 1386 xdgdirList.append(dir+"share/");
1387 } 1387 }
1388 1388
1389 xdgdirList.append("/usr/local/share/"); 1389 xdgdirList.append("/usr/local/share/");
1390 xdgdirList.append("/usr/share/"); 1390 xdgdirList.append("/usr/share/");
1391 } 1391 }
1392 1392
1393 localXdgDir = readEnvPath("XDG_DATA_HOME"); 1393 localXdgDir = readEnvPath("XDG_DATA_HOME");
1394 if (!localXdgDir.isEmpty()) 1394 if (!localXdgDir.isEmpty())
1395 { 1395 {
1396 if (localXdgDir.at(localXdgDir.length()-1) != '/') 1396 if (localXdgDir.at(localXdgDir.length()-1) != '/')
1397 localXdgDir += '/'; 1397 localXdgDir += '/';
1398 } 1398 }
1399 else 1399 else
1400 { 1400 {
1401//US if (getuid()) 1401//US if (getuid())
1402 if (true) 1402 if (true)
1403 { 1403 {
1404 localXdgDir = QDir::homeDirPath() + "/.local/share/"; 1404 localXdgDir = QDir::homeDirPath() + "/.local/share/";
1405 } 1405 }
1406 else 1406 else
1407 { 1407 {
1408//US struct passwd *pw = getpwuid(0); 1408//US struct passwd *pw = getpwuid(0);
1409//US localXdgDir = QFile::decodeName((pw && pw->pw_dir) ? pw->pw_dir : "/root") + "/.local/share/"; 1409//US localXdgDir = QFile::decodeName((pw && pw->pw_dir) ? pw->pw_dir : "/root") + "/.local/share/";
1410 qDebug("KStandardDirs::addKDEDefaults: 3 has to be fixed"); 1410 qDebug("KStandardDirs::addKDEDefaults: 3 has to be fixed");
1411 } 1411 }
1412 } 1412 }
1413 1413
1414 localXdgDir = KShell::tildeExpand(localXdgDir); 1414 localXdgDir = KShell::tildeExpand(localXdgDir);
1415 addXdgDataPrefix(localXdgDir); 1415 addXdgDataPrefix(localXdgDir);
1416 1416
1417 for (QStringList::ConstIterator it = xdgdirList.begin(); 1417 for (QStringList::ConstIterator it = xdgdirList.begin();
1418 it != xdgdirList.end(); it++) 1418 it != xdgdirList.end(); it++)
1419 { 1419 {
1420 QString dir = KShell::tildeExpand(*it); 1420 QString dir = KShell::tildeExpand(*it);
1421 1421
1422 addXdgDataPrefix(dir); 1422 addXdgDataPrefix(dir);
1423 } 1423 }
1424 // end XDG_DATA_XXX 1424 // end XDG_DATA_XXX
1425 1425
1426 1426
1427 uint index = 0; 1427 uint index = 0;
1428 while (types[index] != 0) { 1428 while (types[index] != 0) {
1429 addResourceType(types[index], kde_default(types[index])); 1429 addResourceType(types[index], kde_default(types[index]));
1430 index++; 1430 index++;
1431 } 1431 }
1432 1432
1433 addResourceDir("home", QDir::homeDirPath()); 1433 addResourceDir("home", QDir::homeDirPath());
1434} 1434}
1435 1435
1436void KStandardDirs::checkConfig() const 1436void KStandardDirs::checkConfig() const
1437{ 1437{
1438/*US 1438/*US
1439 if (!addedCustoms && KGlobal::_instance && KGlobal::_instance->_config) 1439 if (!addedCustoms && KGlobal::_instance && KGlobal::_instance->_config)
1440 const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::_instance->_config); 1440 const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::_instance->_config);
1441*/ 1441*/
1442 if (!addedCustoms && KGlobal::config()) 1442 if (!addedCustoms && KGlobal::config())
1443 const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::config()); 1443 const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::config());
1444} 1444}
1445 1445
1446bool KStandardDirs::addCustomized(KConfig *config) 1446bool KStandardDirs::addCustomized(KConfig *config)
1447{ 1447{
1448 if (addedCustoms) // there are already customized entries 1448 if (addedCustoms) // there are already customized entries
1449 return false; // we just quite and hope they are the right ones 1449 return false; // we just quite and hope they are the right ones
1450 1450
1451 // save the numbers of config directories. If this changes, 1451 // save the numbers of config directories. If this changes,
1452 // we will return true to give KConfig a chance to reparse 1452 // we will return true to give KConfig a chance to reparse
1453 uint configdirs = resourceDirs("config").count(); 1453 uint configdirs = resourceDirs("config").count();
1454 1454
1455 // reading the prefixes in 1455 // reading the prefixes in
1456 QString oldGroup = config->group(); 1456 QString oldGroup = config->group();
1457 config->setGroup("Directories"); 1457 config->setGroup("Directories");
1458 1458
1459 QStringList list; 1459 QStringList list;
1460 QStringList::ConstIterator it; 1460 QStringList::ConstIterator it;
1461 list = config->readListEntry("prefixes"); 1461 list = config->readListEntry("prefixes");
1462 for (it = list.begin(); it != list.end(); it++) 1462 for (it = list.begin(); it != list.end(); it++)
1463 addPrefix(*it); 1463 addPrefix(*it);
1464 1464
1465 // iterating over all entries in the group Directories 1465 // iterating over all entries in the group Directories
1466 // to find entries that start with dir_$type 1466 // to find entries that start with dir_$type
1467/*US 1467/*US
1468 QMap<QString, QString> entries = config->entryMap("Directories"); 1468 QMap<QString, QString> entries = config->entryMap("Directories");
1469 1469
1470 QMap<QString, QString>::ConstIterator it2; 1470 QMap<QString, QString>::ConstIterator it2;
1471 for (it2 = entries.begin(); it2 != entries.end(); it2++) 1471 for (it2 = entries.begin(); it2 != entries.end(); it2++)
1472 { 1472 {
1473 QString key = it2.key(); 1473 QString key = it2.key();
1474 if (key.left(4) == "dir_") { 1474 if (key.left(4) == "dir_") {
1475 // generate directory list, there may be more than 1. 1475 // generate directory list, there may be more than 1.
1476 QStringList dirs = QStringList::split(',', *it2); 1476 QStringList dirs = QStringList::split(',', *it2);
1477 QStringList::Iterator sIt(dirs.begin()); 1477 QStringList::Iterator sIt(dirs.begin());
1478 QString resType = key.mid(4, key.length()); 1478 QString resType = key.mid(4, key.length());
1479 for (; sIt != dirs.end(); ++sIt) { 1479 for (; sIt != dirs.end(); ++sIt) {
1480 addResourceDir(resType.latin1(), *sIt); 1480 addResourceDir(resType.latin1(), *sIt);
1481 } 1481 }
1482 } 1482 }
1483 } 1483 }
1484 1484
1485 // Process KIOSK restrictions. 1485 // Process KIOSK restrictions.
1486 config->setGroup("KDE Resource Restrictions"); 1486 config->setGroup("KDE Resource Restrictions");
1487 entries = config->entryMap("KDE Resource Restrictions"); 1487 entries = config->entryMap("KDE Resource Restrictions");
1488 for (it2 = entries.begin(); it2 != entries.end(); it2++) 1488 for (it2 = entries.begin(); it2 != entries.end(); it2++)
1489 { 1489 {
1490 QString key = it2.key(); 1490 QString key = it2.key();
1491 if (!config->readBoolEntry(key, true)) 1491 if (!config->readBoolEntry(key, true))
1492 { 1492 {
1493 d->restrictionsActive = true; 1493 d->restrictionsActive = true;
1494 d->restrictions.insert(key.latin1(), &d->restrictionsActive); // Anything will do 1494 d->restrictions.insert(key.latin1(), &d->restrictionsActive); // Anything will do
1495 dircache.remove(key.latin1()); 1495 dircache.remove(key.latin1());
1496 } 1496 }
1497 } 1497 }
1498*/ 1498*/
1499 // save it for future calls - that will return 1499 // save it for future calls - that will return
1500 addedCustoms = true; 1500 addedCustoms = true;
1501 config->setGroup(oldGroup); 1501 config->setGroup(oldGroup);
1502 1502
1503 // return true if the number of config dirs changed 1503 // return true if the number of config dirs changed
1504 return (resourceDirs("config").count() != configdirs); 1504 return (resourceDirs("config").count() != configdirs);
1505} 1505}
1506 1506
1507QString KStandardDirs::localkdedir() const 1507QString KStandardDirs::localkdedir() const
1508{ 1508{
1509 // Return the prefix to use for saving 1509 // Return the prefix to use for saving
1510 return prefixes.first(); 1510 return prefixes.first();
1511} 1511}
1512 1512
1513QString KStandardDirs::localxdgdatadir() const 1513QString KStandardDirs::localxdgdatadir() const
1514{ 1514{
1515 // Return the prefix to use for saving 1515 // Return the prefix to use for saving
1516 return d->xdgdata_prefixes.first(); 1516 return d->xdgdata_prefixes.first();
1517} 1517}
1518 1518
1519QString KStandardDirs::localxdgconfdir() const 1519QString KStandardDirs::localxdgconfdir() const
1520{ 1520{
1521 // Return the prefix to use for saving 1521 // Return the prefix to use for saving
1522 return d->xdgconf_prefixes.first(); 1522 return d->xdgconf_prefixes.first();
1523} 1523}
1524 1524
1525void KStandardDirs::setAppDir( const QString &appDir ) 1525void KStandardDirs::setAppDir( const QString &appDir )
1526{ 1526{
1527 mAppDir = appDir; 1527 mAppDir = appDir;
1528 1528
1529 if ( mAppDir.right( 1 ) != "/" ) 1529 if ( mAppDir.right( 1 ) != "/" )
1530 mAppDir += "/"; 1530 mAppDir += "/";
1531} 1531}
1532 1532
1533QString KStandardDirs::appDir() 1533QString KStandardDirs::appDir()
1534{ 1534{
1535 return mAppDir; 1535 return mAppDir;
1536} 1536}
1537 1537
1538// just to make code more readable without macros 1538// just to make code more readable without macros
1539QString locate( const char *type, 1539QString locate( const char *type,
1540 const QString& filename/*US , const KInstance* inst*/ ) 1540 const QString& filename/*US , const KInstance* inst*/ )
1541{ 1541{
1542//US return inst->dirs()->findResource(type, filename); 1542//US return inst->dirs()->findResource(type, filename);
1543 return KGlobal::dirs()->findResource(type, filename); 1543 return KGlobal::dirs()->findResource(type, filename);
1544} 1544}
1545 1545
1546QString locateLocal( const char *type, 1546QString locateLocal( const char *type,
1547 const QString& filename/*US , const KInstance* inst*/ ) 1547 const QString& filename/*US , const KInstance* inst*/ )
1548{ 1548{
1549 1549
1550 QString path = locateLocal(type, filename, true /*US, inst*/); 1550 QString path = locateLocal(type, filename, true /*US, inst*/);
1551 1551
1552 1552
1553/* 1553/*
1554 static int ccc = 0; 1554 static int ccc = 0;
1555 ++ccc; 1555 ++ccc;
1556 if ( ccc > 13 ) 1556 if ( ccc > 13 )
1557 abort(); 1557 abort();
1558*/ 1558*/
1559 qDebug("locatelocal: %s" , path.latin1()); 1559 //qDebug("locatelocal: %s" , path.latin1());
1560 return path; 1560 return path;
1561 1561
1562/*US why do we put all files into one directory. It is quit complicated. 1562/*US why do we put all files into one directory. It is quit complicated.
1563why not staying with the original directorystructure ? 1563why not staying with the original directorystructure ?
1564 1564
1565 1565
1566 QString escapedFilename = filename; 1566 QString escapedFilename = filename;
1567 escapedFilename.replace( QRegExp( "/" ), "_" ); 1567 escapedFilename.replace( QRegExp( "/" ), "_" );
1568 1568
1569 QString path = KStandardDirs::appDir() + type + "_" + escapedFilename; 1569 QString path = KStandardDirs::appDir() + type + "_" + escapedFilename;
1570 1570
1571 kdDebug() << "locate: '" << path << "'" << endl; 1571 kdDebug() << "locate: '" << path << "'" << endl;
1572 qDebug("locate: %s" , path.latin1()); 1572 qDebug("locate: %s" , path.latin1());
1573 return path; 1573 return path;
1574*/ 1574*/
1575//US so my proposal is this: 1575//US so my proposal is this:
1576 1576
1577// QString escapedFilename = filename; 1577// QString escapedFilename = filename;
1578// escapedFilename.replace( QRegExp( "/" ), "_" ); 1578// escapedFilename.replace( QRegExp( "/" ), "_" );
1579 1579
1580#if 0 1580#if 0
1581#ifdef _WIN32_ 1581#ifdef _WIN32_
1582 QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename); 1582 QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename);
1583#else 1583#else
1584 QString path = KStandardDirs::appDir() + type + "/" + filename; 1584 QString path = KStandardDirs::appDir() + type + "/" + filename;
1585#endif 1585#endif
1586 1586
1587 //US Create the containing dir if needed 1587 //US Create the containing dir if needed
1588 QFileInfo fi ( path ); 1588 QFileInfo fi ( path );
1589 1589
1590 // QString dir=pathurl.directory(); 1590 // QString dir=pathurl.directory();
1591 //QMessageBox::information( 0,"path", path, 1 ); 1591 //QMessageBox::information( 0,"path", path, 1 );
1592 1592
1593#ifdef _WIN32_ 1593#ifdef _WIN32_
1594 KStandardDirs::makeDir(path); 1594 KStandardDirs::makeDir(path);
1595#else 1595#else
1596 KStandardDirs::makeDir(fi.dirPath( true )); 1596 KStandardDirs::makeDir(fi.dirPath( true ));
1597#endif 1597#endif
1598 1598
1599 qDebug("locate22: %s" , path.latin1()); 1599 qDebug("locate22: %s" , path.latin1());
1600 return path; 1600 return path;
1601 1601
1602#endif 1602#endif
1603 1603
1604} 1604}
1605 1605
1606QString locateLocal( const char *type, 1606QString locateLocal( const char *type,
1607 const QString& filename, bool createDir/*US , const KInstance* inst*/ ) 1607 const QString& filename, bool createDir/*US , const KInstance* inst*/ )
1608{ 1608{
1609 // try to find slashes. If there are some, we have to 1609 // try to find slashes. If there are some, we have to
1610 // create the subdir first 1610 // create the subdir first
1611 int slash = filename.findRev('/')+1; 1611 int slash = filename.findRev('/')+1;
1612 if (!slash) // only one filename 1612 if (!slash) // only one filename
1613 //USreturn inst->dirs()->saveLocation(type, QString::null, createDir) + filename; 1613 //USreturn inst->dirs()->saveLocation(type, QString::null, createDir) + filename;
1614 return KGlobal::dirs()->saveLocation(type, QString::null, createDir) + filename; 1614 return KGlobal::dirs()->saveLocation(type, QString::null, createDir) + filename;
1615 1615
1616 // split path from filename 1616 // split path from filename
1617 QString dir = filename.left(slash); 1617 QString dir = filename.left(slash);
1618 QString file = filename.mid(slash); 1618 QString file = filename.mid(slash);
1619//US return inst->dirs()->saveLocation(type, dir, createDir) + file; 1619//US return inst->dirs()->saveLocation(type, dir, createDir) + file;
1620 return KGlobal::dirs()->saveLocation(type, dir, createDir) + file; 1620 return KGlobal::dirs()->saveLocation(type, dir, createDir) + file;
1621 1621
1622 // *************************************************************** 1622 // ***************************************************************
1623#if 0 1623#if 0
1624 1624
1625/*US why do we put all files into one directory. It is quit complicated. 1625/*US why do we put all files into one directory. It is quit complicated.
1626why not staying with the original directorystructure ? 1626why not staying with the original directorystructure ?
1627 1627
1628 1628
1629 QString escapedFilename = filename; 1629 QString escapedFilename = filename;
1630 escapedFilename.replace( QRegExp( "/" ), "_" ); 1630 escapedFilename.replace( QRegExp( "/" ), "_" );
1631 1631
1632 QString path = KStandardDirs::appDir() + type + "_" + escapedFilename; 1632 QString path = KStandardDirs::appDir() + type + "_" + escapedFilename;
1633 1633
1634 kdDebug() << "locate: '" << path << "'" << endl; 1634 kdDebug() << "locate: '" << path << "'" << endl;
1635 qDebug("locate: %s" , path.latin1()); 1635 qDebug("locate: %s" , path.latin1());
1636 return path; 1636 return path;
1637*/ 1637*/
1638//US so my proposal is this: 1638//US so my proposal is this:
1639 1639
1640// QString escapedFilename = filename; 1640// QString escapedFilename = filename;
1641// escapedFilename.replace( QRegExp( "/" ), "_" ); 1641// escapedFilename.replace( QRegExp( "/" ), "_" );
1642 1642
1643#ifdef _WIN32_ 1643#ifdef _WIN32_
1644 QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename); 1644 QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename);
1645#else 1645#else
1646 QString path = KStandardDirs::appDir() + type + "/" + filename; 1646 QString path = KStandardDirs::appDir() + type + "/" + filename;
1647#endif 1647#endif
1648 1648
1649 //US Create the containing dir if needed 1649 //US Create the containing dir if needed
1650 KURL pathurl; 1650 KURL pathurl;
1651 pathurl.setPath(path); 1651 pathurl.setPath(path);
1652 QString dir=pathurl.directory(); 1652 QString dir=pathurl.directory();
1653 //QMessageBox::information( 0,"path", path, 1 ); 1653 //QMessageBox::information( 0,"path", path, 1 );
1654#ifdef _WIN32_ 1654#ifdef _WIN32_
1655 KStandardDirs::makeDir(path); 1655 KStandardDirs::makeDir(path);
1656#else 1656#else
1657 KStandardDirs::makeDir(dir); 1657 KStandardDirs::makeDir(dir);
1658#endif 1658#endif
1659 1659
1660 return path; 1660 return path;
1661#endif 1661#endif
1662} 1662}
diff --git a/microkde/kdeui/kactioncollection.cpp b/microkde/kdeui/kactioncollection.cpp
index b819e76..69e5d02 100644
--- a/microkde/kdeui/kactioncollection.cpp
+++ b/microkde/kdeui/kactioncollection.cpp
@@ -1,352 +1,353 @@
1/* This file is part of the KDE libraries 1/* This file is part of the KDE libraries
2 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org> 2 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org>
3 (C) 1999 Simon Hausmann <hausmann@kde.org> 3 (C) 1999 Simon Hausmann <hausmann@kde.org>
4 (C) 2000 Nicolas Hadacek <haadcek@kde.org> 4 (C) 2000 Nicolas Hadacek <haadcek@kde.org>
5 (C) 2000 Kurt Granroth <granroth@kde.org> 5 (C) 2000 Kurt Granroth <granroth@kde.org>
6 (C) 2000 Michael Koch <koch@kde.org> 6 (C) 2000 Michael Koch <koch@kde.org>
7 (C) 2001 Holger Freyther <freyther@kde.org> 7 (C) 2001 Holger Freyther <freyther@kde.org>
8 (C) 2002 Ellis Whitehead <ellis@kde.org> 8 (C) 2002 Ellis Whitehead <ellis@kde.org>
9 (C) 2002 Joseph Wenninger <jowenn@kde.org> 9 (C) 2002 Joseph Wenninger <jowenn@kde.org>
10 10
11 This library is free software; you can redistribute it and/or 11 This library is free software; you can redistribute it and/or
12 modify it under the terms of the GNU Library General Public 12 modify it under the terms of the GNU Library General Public
13 License version 2 as published by the Free Software Foundation. 13 License version 2 as published by the Free Software Foundation.
14 14
15 This library is distributed in the hope that it will be useful, 15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Library General Public License for more details. 18 Library General Public License for more details.
19 19
20 You should have received a copy of the GNU Library General Public License 20 You should have received a copy of the GNU Library General Public License
21 along with this library; see the file COPYING.LIB. If not, write to 21 along with this library; see the file COPYING.LIB. If not, write to
22 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 22 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 Boston, MA 02111-1307, USA. 23 Boston, MA 02111-1307, USA.
24*/ 24*/
25 25
26#include "kactioncollection.h" 26#include "kactioncollection.h"
27//US#include "kactionshortcutlist.h" 27//US#include "kactionshortcutlist.h"
28 28
29#include <qptrdict.h> 29#include <qptrdict.h>
30//US#include <qvariant.h> 30//US#include <qvariant.h>
31 31
32//US#include <kaccel.h> 32//US#include <kaccel.h>
33//US#include <kaccelbase.h> 33//US#include <kaccelbase.h>
34//US#include <kapplication.h> 34//US#include <kapplication.h>
35#include <kdebug.h> 35#include <kdebug.h>
36//US#include <kxmlguifactory.h> 36//US#include <kxmlguifactory.h>
37 37
38//US I included the following files 38//US I included the following files
39#include <qasciidict.h> 39#include <qasciidict.h>
40#include <qptrlist.h> 40#include <qptrlist.h>
41#include "kaction.h" 41#include "kaction.h"
42#include <kglobal.h> 42#include <kglobal.h>
43#include <qobject.h> 43#include <qobject.h>
44#include <qwidget.h> 44#include <qwidget.h>
45 45
46class KActionCollection::KActionCollectionPrivate 46class KActionCollection::KActionCollectionPrivate
47{ 47{
48public: 48public:
49 KActionCollectionPrivate() 49 KActionCollectionPrivate()
50 { 50 {
51//US m_instance = 0; 51//US m_instance = 0;
52 //m_bOneKAccelOnly = false; 52 //m_bOneKAccelOnly = false;
53 //m_iWidgetCurrent = 0; 53 //m_iWidgetCurrent = 0;
54 m_bAutoConnectShortcuts = true; 54 m_bAutoConnectShortcuts = true;
55 m_widget = 0; 55 m_widget = 0;
56 m_kaccel = m_builderKAccel = 0; 56 m_kaccel = m_builderKAccel = 0;
57 m_dctHighlightContainers.setAutoDelete( true ); 57 m_dctHighlightContainers.setAutoDelete( true );
58 m_highlight = false; 58 m_highlight = false;
59 m_currentHighlightAction = 0; 59 m_currentHighlightAction = 0;
60 m_statusCleared = true; 60 m_statusCleared = true;
61 } 61 }
62 62
63//US KInstance *m_instance; 63//US KInstance *m_instance;
64//US QString m_sXMLFile; 64//US QString m_sXMLFile;
65 bool m_bAutoConnectShortcuts; 65 bool m_bAutoConnectShortcuts;
66 //bool m_bOneKAccelOnly; 66 //bool m_bOneKAccelOnly;
67 //int m_iWidgetCurrent; 67 //int m_iWidgetCurrent;
68 //QValueList<QWidget*> m_widgetList; 68 //QValueList<QWidget*> m_widgetList;
69 //QValueList<KAccel*> m_kaccelList; 69 //QValueList<KAccel*> m_kaccelList;
70 QValueList<KActionCollection*> m_docList; 70 QValueList<KActionCollection*> m_docList;
71 QWidget *m_widget; 71 QWidget *m_widget;
72 KAccel *m_kaccel; 72 KAccel *m_kaccel;
73 KAccel *m_builderKAccel; 73 KAccel *m_builderKAccel;
74 74
75 QAsciiDict<KAction> m_actionDict; 75 QAsciiDict<KAction> m_actionDict;
76 QPtrDict< QPtrList<KAction> > m_dctHighlightContainers; 76 QPtrDict< QPtrList<KAction> > m_dctHighlightContainers;
77 bool m_highlight; 77 bool m_highlight;
78 KAction *m_currentHighlightAction; 78 KAction *m_currentHighlightAction;
79 bool m_statusCleared; 79 bool m_statusCleared;
80}; 80};
81 81
82KActionCollection::KActionCollection( QWidget *parent, const char *name /*US, 82KActionCollection::KActionCollection( QWidget *parent, const char *name /*US,
83 KInstance *instance */) 83 KInstance *instance */)
84 : QObject( (QObject*)parent, name ) 84 : QObject( (QObject*)parent, name )
85{ 85{
86 kdDebug(129) << "KActionCollection::KActionCollection( " << parent << ", " << name << " ): this = " << this << endl; // ellis 86 kdDebug(129) << "KActionCollection::KActionCollection( " << parent << ", " << name << " ): this = " << this << endl; // ellis
87 d = new KActionCollectionPrivate; 87 d = new KActionCollectionPrivate;
88 if( parent ) 88 if( parent )
89 setWidget( parent ); 89 setWidget( parent );
90 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0); 90 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0);
91//US setInstance( instance ); 91//US setInstance( instance );
92} 92}
93 93
94 94
95KActionCollection::KActionCollection( QWidget *watch, QObject* parent, const char *name /*US, 95KActionCollection::KActionCollection( QWidget *watch, QObject* parent, const char *name /*US,
96 KInstance *instance */) 96 KInstance *instance */)
97 : QObject( parent, name ) 97 : QObject( parent, name )
98{ 98{
99 kdDebug(129) << "KActionCollection::KActionCollection( " << watch << ", " << parent << ", " << name << " ): this = " << this << endl; //ellis 99 kdDebug(129) << "KActionCollection::KActionCollection( " << watch << ", " << parent << ", " << name << " ): this = " << this << endl; //ellis
100 d = new KActionCollectionPrivate; 100 d = new KActionCollectionPrivate;
101 if( watch ) 101 if( watch )
102 setWidget( watch ); 102 setWidget( watch );
103 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0); 103 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0);
104//US setInstance( instance ); 104//US setInstance( instance );
105} 105}
106 106
107// KDE 4: remove 107// KDE 4: remove
108KActionCollection::KActionCollection( QObject *parent, const char *name /*US, 108KActionCollection::KActionCollection( QObject *parent, const char *name /*US,
109 KInstance *instance */) 109 KInstance *instance */)
110 : QObject( parent, name ) 110 : QObject( parent, name )
111{ 111{
112 kdWarning(129) << "KActionCollection::KActionCollection( QObject *parent, const char *name, KInstance *instance )" << endl; //ellis 112 kdWarning(129) << "KActionCollection::KActionCollection( QObject *parent, const char *name, KInstance *instance )" << endl; //ellis
113//US kdBacktrace not available 113//US kdBacktrace not available
114//US kdDebug(129) << kdBacktrace() << endl; 114//US kdDebug(129) << kdBacktrace() << endl;
115 d = new KActionCollectionPrivate; 115 d = new KActionCollectionPrivate;
116//US QWidget* w = dynamic_cast<QWidget*>( parent ); 116//US QWidget* w = dynamic_cast<QWidget*>( parent );
117 QWidget* w = (QWidget*)( parent ); 117 QWidget* w = (QWidget*)( parent );
118 if( w ) 118 if( w )
119 setWidget( w ); 119 setWidget( w );
120 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0); 120 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0);
121//US setInstance( instance ); 121//US setInstance( instance );
122} 122}
123 123
124KActionCollection::KActionCollection( const KActionCollection &copy ) 124KActionCollection::KActionCollection( const KActionCollection &copy )
125 : QObject() 125 : QObject()
126{ 126{
127 kdWarning(129) << "KActionCollection::KActionCollection( const KActionCollection & ): function is severely deprecated." << endl; 127 kdWarning(129) << "KActionCollection::KActionCollection( const KActionCollection & ): function is severely deprecated." << endl;
128 d = new KActionCollectionPrivate; 128 d = new KActionCollectionPrivate;
129 *this = copy; 129 *this = copy;
130} 130}
131// KDE 4: remove end 131// KDE 4: remove end
132 132
133KActionCollection::~KActionCollection() 133KActionCollection::~KActionCollection()
134{ 134{
135 kdDebug(129) << "KActionCollection::~KActionCollection(): this = " << this << endl; 135 kdDebug(129) << "KActionCollection::~KActionCollection(): this = " << this << endl;
136 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) { 136 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) {
137 KAction* pAction = it.current(); 137 KAction* pAction = it.current();
138 if ( pAction->m_parentCollection == this ) 138 if ( pAction->m_parentCollection == this )
139 pAction->m_parentCollection = 0L; 139 pAction->m_parentCollection = 0L;
140 } 140 }
141 141
142//US delete d->m_kaccel; 142//US delete d->m_kaccel;
143//US delete d->m_builderKAccel; 143//US delete d->m_builderKAccel;
144 delete d; d = 0; 144 delete d; d = 0;
145} 145}
146 146
147void KActionCollection::setWidget( QWidget* w ) 147void KActionCollection::setWidget( QWidget* w )
148{ 148{
149 //if ( d->m_actionDict.count() > 0 ) { 149 //if ( d->m_actionDict.count() > 0 ) {
150 // kdError(129) << "KActionCollection::setWidget(): must be called before any actions are added to collection!" << endl; 150 // kdError(129) << "KActionCollection::setWidget(): must be called before any actions are added to collection!" << endl;
151 // kdDebug(129) << kdBacktrace() << endl; 151 // kdDebug(129) << kdBacktrace() << endl;
152 //} 152 //}
153 //else 153 //else
154 if ( !d->m_widget ) { 154 if ( !d->m_widget ) {
155 d->m_widget = w; 155 d->m_widget = w;
156 qDebug("KActionCollection::setWidget: warning: KAccel is never used in microkde"); 156 //qDebug("KActionCollection::setWidget: warning: KAccel is never used in microkde");
157//US d->m_kaccel = new KAccel( w, this, "KActionCollection-KAccel" ); 157//US d->m_kaccel = new KAccel( w, this, "KActionCollection-KAccel" );
158 } 158 }
159 else if ( d->m_widget != w ) 159 else if ( d->m_widget != w )
160 kdWarning(129) << "KActionCollection::setWidget(): tried to change widget from " << d->m_widget << " to " << w << endl; 160 ;
161
161} 162}
162 163
163void KActionCollection::setAutoConnectShortcuts( bool b ) 164void KActionCollection::setAutoConnectShortcuts( bool b )
164{ 165{
165 d->m_bAutoConnectShortcuts = b; 166 d->m_bAutoConnectShortcuts = b;
166} 167}
167 168
168bool KActionCollection::isAutoConnectShortcuts() 169bool KActionCollection::isAutoConnectShortcuts()
169{ 170{
170 return d->m_bAutoConnectShortcuts; 171 return d->m_bAutoConnectShortcuts;
171} 172}
172 173
173bool KActionCollection::addDocCollection( KActionCollection* pDoc ) 174bool KActionCollection::addDocCollection( KActionCollection* pDoc )
174{ 175{
175 d->m_docList.append( pDoc ); 176 d->m_docList.append( pDoc );
176 return true; 177 return true;
177} 178}
178 179
179void KActionCollection::beginXMLPlug( QWidget *widget ) 180void KActionCollection::beginXMLPlug( QWidget *widget )
180{ 181{
181 qDebug("KActionCollection::beginXMLPlug has to be fixed"); 182 qDebug("KActionCollection::beginXMLPlug has to be fixed");
182/*US 183/*US
183 kdDebug(129) << "KActionCollection::beginXMLPlug( buildWidget = " << widget << " ): this = " << this << " d->m_builderKAccel = " << d->m_builderKAccel << endl; 184 kdDebug(129) << "KActionCollection::beginXMLPlug( buildWidget = " << widget << " ): this = " << this << " d->m_builderKAccel = " << d->m_builderKAccel << endl;
184 185
185 if( widget && !d->m_builderKAccel ) { 186 if( widget && !d->m_builderKAccel ) {
186 d->m_builderKAccel = new KAccel( widget, this, "KActionCollection-BuilderKAccel" ); 187 d->m_builderKAccel = new KAccel( widget, this, "KActionCollection-BuilderKAccel" );
187 } 188 }
188*/ 189*/
189} 190}
190 191
191void KActionCollection::endXMLPlug() 192void KActionCollection::endXMLPlug()
192{ 193{
193 kdDebug(129) << "KActionCollection::endXMLPlug(): this = " << this << endl; 194 kdDebug(129) << "KActionCollection::endXMLPlug(): this = " << this << endl;
194 //s_kaccelXML = 0; 195 //s_kaccelXML = 0;
195} 196}
196 197
197void KActionCollection::prepareXMLUnplug() 198void KActionCollection::prepareXMLUnplug()
198{ 199{
199 qDebug("KActionCollection::prepareXMLUnplug has to be fixed"); 200 qDebug("KActionCollection::prepareXMLUnplug has to be fixed");
200/*US 201/*US
201 kdDebug(129) << "KActionCollection::prepareXMLUnplug(): this = " << this << endl; 202 kdDebug(129) << "KActionCollection::prepareXMLUnplug(): this = " << this << endl;
202 unplugShortcuts( d->m_kaccel ); 203 unplugShortcuts( d->m_kaccel );
203 204
204 if( d->m_builderKAccel ) { 205 if( d->m_builderKAccel ) {
205 unplugShortcuts( d->m_builderKAccel ); 206 unplugShortcuts( d->m_builderKAccel );
206 delete d->m_builderKAccel; 207 delete d->m_builderKAccel;
207 d->m_builderKAccel = 0; 208 d->m_builderKAccel = 0;
208 } 209 }
209*/ 210*/
210} 211}
211 212
212void KActionCollection::unplugShortcuts( KAccel* kaccel ) 213void KActionCollection::unplugShortcuts( KAccel* kaccel )
213{ 214{
214 qDebug("KActionCollection::unplugShortcuts has to be fixed"); 215 qDebug("KActionCollection::unplugShortcuts has to be fixed");
215/*US 216/*US
216 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) { 217 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) {
217 KAction* pAction = it.current(); 218 KAction* pAction = it.current();
218 pAction->removeKAccel( kaccel ); 219 pAction->removeKAccel( kaccel );
219 } 220 }
220 221
221 for( uint i = 0; i < d->m_docList.count(); i++ ) 222 for( uint i = 0; i < d->m_docList.count(); i++ )
222 d->m_docList[i]->unplugShortcuts( kaccel ); 223 d->m_docList[i]->unplugShortcuts( kaccel );
223*/ 224*/
224 225
225} 226}
226 227
227/*void KActionCollection::addWidget( QWidget* w ) 228/*void KActionCollection::addWidget( QWidget* w )
228{ 229{
229 if( !d->m_bOneKAccelOnly ) { 230 if( !d->m_bOneKAccelOnly ) {
230 kdDebug(129) << "KActionCollection::addWidget( " << w << " ): this = " << this << endl; 231 kdDebug(129) << "KActionCollection::addWidget( " << w << " ): this = " << this << endl;
231 for( uint i = 0; i < d->m_widgetList.count(); i++ ) { 232 for( uint i = 0; i < d->m_widgetList.count(); i++ ) {
232 if( d->m_widgetList[i] == w ) { 233 if( d->m_widgetList[i] == w ) {
233 d->m_iWidgetCurrent = i; 234 d->m_iWidgetCurrent = i;
234 return; 235 return;
235 } 236 }
236 } 237 }
237 d->m_iWidgetCurrent = d->m_widgetList.count(); 238 d->m_iWidgetCurrent = d->m_widgetList.count();
238 d->m_widgetList.append( w ); 239 d->m_widgetList.append( w );
239 d->m_kaccelList.append( new KAccel( w, this, "KActionCollection-KAccel" ) ); 240 d->m_kaccelList.append( new KAccel( w, this, "KActionCollection-KAccel" ) );
240 } 241 }
241} 242}
242 243
243void KActionCollection::removeWidget( QWidget* w ) 244void KActionCollection::removeWidget( QWidget* w )
244{ 245{
245 if( !d->m_bOneKAccelOnly ) { 246 if( !d->m_bOneKAccelOnly ) {
246 kdDebug(129) << "KActionCollection::removeWidget( " << w << " ): this = " << this << endl; 247 kdDebug(129) << "KActionCollection::removeWidget( " << w << " ): this = " << this << endl;
247 for( uint i = 0; i < d->m_widgetList.count(); i++ ) { 248 for( uint i = 0; i < d->m_widgetList.count(); i++ ) {
248 if( d->m_widgetList[i] == w ) { 249 if( d->m_widgetList[i] == w ) {
249 // Remove KAccel object from children. 250 // Remove KAccel object from children.
250 KAccel* pKAccel = d->m_kaccelList[i]; 251 KAccel* pKAccel = d->m_kaccelList[i];
251 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) { 252 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) {
252 KAction* pAction = it.current(); 253 KAction* pAction = it.current();
253 if ( pAction->m_parentCollection == this ) { 254 if ( pAction->m_parentCollection == this ) {
254 pAction->removeKAccel( pKAccel ); 255 pAction->removeKAccel( pKAccel );
255 } 256 }
256 } 257 }
257 delete pKAccel; 258 delete pKAccel;
258 259
259 d->m_widgetList.remove( d->m_widgetList.at( i ) ); 260 d->m_widgetList.remove( d->m_widgetList.at( i ) );
260 d->m_kaccelList.remove( d->m_kaccelList.at( i ) ); 261 d->m_kaccelList.remove( d->m_kaccelList.at( i ) );
261 262
262 if( d->m_iWidgetCurrent == (int)i ) 263 if( d->m_iWidgetCurrent == (int)i )
263 d->m_iWidgetCurrent = -1; 264 d->m_iWidgetCurrent = -1;
264 else if( d->m_iWidgetCurrent > (int)i ) 265 else if( d->m_iWidgetCurrent > (int)i )
265 d->m_iWidgetCurrent--; 266 d->m_iWidgetCurrent--;
266 return; 267 return;
267 } 268 }
268 } 269 }
269 kdWarning(129) << "KActionCollection::removeWidget( " << w << " ): widget not in list." << endl; 270 kdWarning(129) << "KActionCollection::removeWidget( " << w << " ): widget not in list." << endl;
270 } 271 }
271} 272}
272 273
273bool KActionCollection::ownsKAccel() const 274bool KActionCollection::ownsKAccel() const
274{ 275{
275 return d->m_bOneKAccelOnly; 276 return d->m_bOneKAccelOnly;
276} 277}
277 278
278uint KActionCollection::widgetCount() const 279uint KActionCollection::widgetCount() const
279{ 280{
280 return d->m_widgetList.count(); 281 return d->m_widgetList.count();
281} 282}
282 283
283const KAccel* KActionCollection::widgetKAccel( uint i ) const 284const KAccel* KActionCollection::widgetKAccel( uint i ) const
284{ 285{
285 return d->m_kaccelList[i]; 286 return d->m_kaccelList[i];
286}*/ 287}*/
287 288
288//US we are using no accelerators so far. So just setup an empty implementation. 289//US we are using no accelerators so far. So just setup an empty implementation.
289KAccel* KActionCollection::kaccel() 290KAccel* KActionCollection::kaccel()
290{ 291{
291 //if( d->m_kaccelList.count() > 0 ) 292 //if( d->m_kaccelList.count() > 0 )
292 // return d->m_kaccelList[d->m_iWidgetCurrent]; 293 // return d->m_kaccelList[d->m_iWidgetCurrent];
293 //else 294 //else
294 // return 0; 295 // return 0;
295//US return d->m_kaccel; 296//US return d->m_kaccel;
296 return 0; 297 return 0;
297} 298}
298 299
299//US we are using no accelerators so far. So just setup an empty implementation. 300//US we are using no accelerators so far. So just setup an empty implementation.
300const KAccel* KActionCollection::kaccel() const 301const KAccel* KActionCollection::kaccel() const
301{ 302{
302 //if( d->m_kaccelList.count() > 0 ) 303 //if( d->m_kaccelList.count() > 0 )
303 // return d->m_kaccelList[d->m_iWidgetCurrent]; 304 // return d->m_kaccelList[d->m_iWidgetCurrent];
304 //else 305 //else
305 // return 0; 306 // return 0;
306 //USreturn d->m_kaccel; 307 //USreturn d->m_kaccel;
307 return 0; 308 return 0;
308} 309}
309 310
310/*void KActionCollection::findMainWindow( QWidget *w ) 311/*void KActionCollection::findMainWindow( QWidget *w )
311{ 312{
312 // Note: topLevelWidget() stops too early, we can't use it. 313 // Note: topLevelWidget() stops too early, we can't use it.
313 QWidget * tl = w; 314 QWidget * tl = w;
314 while ( tl->parentWidget() ) // lookup parent and store 315 while ( tl->parentWidget() ) // lookup parent and store
315 tl = tl->parentWidget(); 316 tl = tl->parentWidget();
316 317
317 KMainWindow * mw = dynamic_cast<KMainWindow *>(tl); // try to see if it's a kmainwindow 318 KMainWindow * mw = dynamic_cast<KMainWindow *>(tl); // try to see if it's a kmainwindow
318 if (mw) 319 if (mw)
319 d->m_mainwindow = mw; 320 d->m_mainwindow = mw;
320 else 321 else
321 kdDebug(129) << "KAction::plugMainWindowAccel: Toplevel widget isn't a KMainWindow, can't plug accel. " << tl << endl; 322 kdDebug(129) << "KAction::plugMainWindowAccel: Toplevel widget isn't a KMainWindow, can't plug accel. " << tl << endl;
322}*/ 323}*/
323 324
324void KActionCollection::_insert( KAction* action ) 325void KActionCollection::_insert( KAction* action )
325{ 326{
326 char unnamed_name[100]; 327 char unnamed_name[100];
327 const char *name = action->name(); 328 const char *name = action->name();
328 if( qstrcmp( name, "unnamed" ) == 0 ) 329 if( qstrcmp( name, "unnamed" ) == 0 )
329 { 330 {
330 sprintf(unnamed_name, "unnamed-%p", (void *)action); 331 sprintf(unnamed_name, "unnamed-%p", (void *)action);
331 name = unnamed_name; 332 name = unnamed_name;
332 } 333 }
333 KAction *a = d->m_actionDict[ name ]; 334 KAction *a = d->m_actionDict[ name ];
334 if ( a == action ) 335 if ( a == action )
335 return; 336 return;
336 337
337 d->m_actionDict.insert( name, action ); 338 d->m_actionDict.insert( name, action );
338 339
339 emit inserted( action ); 340 emit inserted( action );
340} 341}
341 342
342void KActionCollection::_remove( KAction* action ) 343void KActionCollection::_remove( KAction* action )
343{ 344{
344 delete _take( action ); 345 delete _take( action );
345} 346}
346 347
347KAction* KActionCollection::_take( KAction* action ) 348KAction* KActionCollection::_take( KAction* action )
348{ 349{
349 char unnamed_name[100]; 350 char unnamed_name[100];
350 const char *name = action->name(); 351 const char *name = action->name();
351 if( qstrcmp( name, "unnamed" ) == 0 ) 352 if( qstrcmp( name, "unnamed" ) == 0 )
352 { 353 {
diff --git a/microkde/kdeui/klistview.cpp b/microkde/kdeui/klistview.cpp
index b53a88a..2856f2d 100644
--- a/microkde/kdeui/klistview.cpp
+++ b/microkde/kdeui/klistview.cpp
@@ -326,385 +326,385 @@ bool KListViewLineEdit::event (QEvent *pe)
326 if (pe->type() == QEvent::KeyPress) 326 if (pe->type() == QEvent::KeyPress)
327 { 327 {
328 QKeyEvent *k = (QKeyEvent *) pe; 328 QKeyEvent *k = (QKeyEvent *) pe;
329 329
330 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) && 330 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) &&
331 p->tabOrderedRenaming() && p->itemsRenameable() && 331 p->tabOrderedRenaming() && p->itemsRenameable() &&
332 !(k->state() & ControlButton || k->state() & AltButton)) 332 !(k->state() & ControlButton || k->state() & AltButton))
333 { 333 {
334 selectNextCell(item, col, 334 selectNextCell(item, col,
335 (k->key() == Key_Tab && !(k->state() & ShiftButton))); 335 (k->key() == Key_Tab && !(k->state() & ShiftButton)));
336 return true; 336 return true;
337 } 337 }
338 } 338 }
339 339
340 return KLineEdit::event(pe); 340 return KLineEdit::event(pe);
341} 341}
342 342
343void KListViewLineEdit::keyPressEvent(QKeyEvent *e) 343void KListViewLineEdit::keyPressEvent(QKeyEvent *e)
344{ 344{
345 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) 345 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter )
346 terminate(true); 346 terminate(true);
347 else if(e->key() == Qt::Key_Escape) 347 else if(e->key() == Qt::Key_Escape)
348 terminate(false); 348 terminate(false);
349 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up) 349 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up)
350 { 350 {
351 terminate(true); 351 terminate(true);
352 KLineEdit::keyPressEvent(e); 352 KLineEdit::keyPressEvent(e);
353 } 353 }
354 else 354 else
355 KLineEdit::keyPressEvent(e); 355 KLineEdit::keyPressEvent(e);
356} 356}
357 357
358void KListViewLineEdit::terminate() 358void KListViewLineEdit::terminate()
359{ 359{
360 terminate(true); 360 terminate(true);
361} 361}
362 362
363void KListViewLineEdit::terminate(bool commit) 363void KListViewLineEdit::terminate(bool commit)
364{ 364{
365 if ( item ) 365 if ( item )
366 { 366 {
367 //kdDebug() << "KListViewLineEdit::terminate " << commit << endl; 367 //kdDebug() << "KListViewLineEdit::terminate " << commit << endl;
368 if (commit) 368 if (commit)
369 item->setText(col, text()); 369 item->setText(col, text());
370 int c=col; 370 int c=col;
371 QListViewItem *i=item; 371 QListViewItem *i=item;
372 col=0; 372 col=0;
373 item=0; 373 item=0;
374 hide(); // will call focusOutEvent, that's why we set item=0 before 374 hide(); // will call focusOutEvent, that's why we set item=0 before
375 emit done(i,c); 375 emit done(i,c);
376 } 376 }
377} 377}
378 378
379void KListViewLineEdit::focusOutEvent(QFocusEvent *ev) 379void KListViewLineEdit::focusOutEvent(QFocusEvent *ev)
380{ 380{
381 QFocusEvent * focusEv = static_cast<QFocusEvent*>(ev); 381 QFocusEvent * focusEv = static_cast<QFocusEvent*>(ev);
382 // Don't let a RMB close the editor 382 // Don't let a RMB close the editor
383 if (focusEv->reason() != QFocusEvent::Popup && focusEv->reason() != QFocusEvent::ActiveWindow) 383 if (focusEv->reason() != QFocusEvent::Popup && focusEv->reason() != QFocusEvent::ActiveWindow)
384 terminate(true); 384 terminate(true);
385} 385}
386 386
387void KListViewLineEdit::paintEvent( QPaintEvent *e ) 387void KListViewLineEdit::paintEvent( QPaintEvent *e )
388{ 388{
389 KLineEdit::paintEvent( e ); 389 KLineEdit::paintEvent( e );
390 390
391 if ( !frame() ) { 391 if ( !frame() ) {
392 QPainter p( this ); 392 QPainter p( this );
393 p.setClipRegion( e->region() ); 393 p.setClipRegion( e->region() );
394 p.drawRect( rect() ); 394 p.drawRect( rect() );
395 } 395 }
396} 396}
397 397
398// selection changed -> terminate. As our "item" can be already deleted, 398// selection changed -> terminate. As our "item" can be already deleted,
399// we can't call terminate(false), because that would emit done() with 399// we can't call terminate(false), because that would emit done() with
400// a dangling pointer to "item". 400// a dangling pointer to "item".
401void KListViewLineEdit::slotSelectionChanged() 401void KListViewLineEdit::slotSelectionChanged()
402{ 402{
403 item = 0; 403 item = 0;
404 col = 0; 404 col = 0;
405 hide(); 405 hide();
406} 406}
407*/ 407*/
408 408
409KListView::KListView( QWidget *parent, const char *name ) 409KListView::KListView( QWidget *parent, const char *name )
410 : QListView( parent, name ), 410 : QListView( parent, name ),
411 d (new KListViewPrivate (this)) 411 d (new KListViewPrivate (this))
412{ 412{
413#ifndef DESKTOP_VERSION 413#ifndef DESKTOP_VERSION
414 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 414 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
415#endif 415#endif
416//US setDragAutoScroll(true); 416//US setDragAutoScroll(true);
417 417
418 connect( this, SIGNAL( onViewport() ), 418 connect( this, SIGNAL( onViewport() ),
419 this, SLOT( slotOnViewport() ) ); 419 this, SLOT( slotOnViewport() ) );
420 connect( this, SIGNAL( onItem( QListViewItem * ) ), 420 connect( this, SIGNAL( onItem( QListViewItem * ) ),
421 this, SLOT( slotOnItem( QListViewItem * ) ) ); 421 this, SLOT( slotOnItem( QListViewItem * ) ) );
422 422
423 connect (this, SIGNAL(contentsMoving(int,int)), 423 connect (this, SIGNAL(contentsMoving(int,int)),
424 this, SLOT(cleanDropVisualizer())); 424 this, SLOT(cleanDropVisualizer()));
425 connect (this, SIGNAL(contentsMoving(int,int)), 425 connect (this, SIGNAL(contentsMoving(int,int)),
426 this, SLOT(cleanItemHighlighter())); 426 this, SLOT(cleanItemHighlighter()));
427 427
428/*US 428/*US
429 slotSettingsChanged(KApplication::SETTINGS_MOUSE); 429 slotSettingsChanged(KApplication::SETTINGS_MOUSE);
430 430
431 if (kapp) 431 if (kapp)
432 { 432 {
433 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) ); 433 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) );
434 kapp->addKipcEventMask( KIPC::SettingsChanged ); 434 kapp->addKipcEventMask( KIPC::SettingsChanged );
435 } 435 }
436*/ 436*/
437 slotSettingsChanged(1); //US do this to initialize the connections 437 slotSettingsChanged(1); //US do this to initialize the connections
438 438
439 439
440 connect(&d->autoSelect, SIGNAL( timeout() ), 440 connect(&d->autoSelect, SIGNAL( timeout() ),
441 this, SLOT( slotAutoSelect() ) ); 441 this, SLOT( slotAutoSelect() ) );
442 connect(&d->dragExpand, SIGNAL( timeout() ), 442 connect(&d->dragExpand, SIGNAL( timeout() ),
443 this, SLOT( slotDragExpand() ) ); 443 this, SLOT( slotDragExpand() ) );
444 444
445 // context menu handling 445 // context menu handling
446 if (d->showContextMenusOnPress) 446 if (d->showContextMenusOnPress)
447 { 447 {
448 connect (this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)), 448 connect (this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)),
449 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 449 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
450 } 450 }
451 else 451 else
452 { 452 {
453 connect (this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)), 453 connect (this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)),
454 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 454 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
455 } 455 }
456 456
457 connect (this, SIGNAL (menuShortCutPressed (KListView*, QListViewItem*)), 457 connect (this, SIGNAL (menuShortCutPressed (KListView*, QListViewItem*)),
458 this, SLOT (emitContextMenu (KListView*, QListViewItem*))); 458 this, SLOT (emitContextMenu (KListView*, QListViewItem*)));
459 459
460 460
461 //qDebug("KListView::KListView make alternate color configurable"); 461 //qDebug("KListView::KListView make alternate color configurable");
462//US d->alternateBackground = KGlobalSettings::alternateBackgroundColor(); 462//US d->alternateBackground = KGlobalSettings::alternateBackgroundColor();
463 d->alternateBackground = QColor(240, 240, 240); 463 d->alternateBackground = QColor(240, 240, 240);
464} 464}
465 465
466 466
467 467
468KListView::~KListView() 468KListView::~KListView()
469{ 469{
470 delete d; 470 delete d;
471} 471}
472 472
473bool KListView::isExecuteArea( const QPoint& point ) 473bool KListView::isExecuteArea( const QPoint& point )
474{ 474{
475 if ( itemAt( point ) ) 475 if ( itemAt( point ) )
476 return isExecuteArea( point.x() ); 476 return isExecuteArea( point.x() );
477 477
478 return false; 478 return false;
479} 479}
480 480
481bool KListView::isExecuteArea( int x ) 481bool KListView::isExecuteArea( int x )
482{ 482{
483 if( allColumnsShowFocus() ) 483 if( allColumnsShowFocus() )
484 return true; 484 return true;
485 else { 485 else {
486 int offset = 0; 486 int offset = 0;
487 int width = columnWidth( 0 ); 487 int width = columnWidth( 0 );
488 int pos = header()->mapToIndex( 0 ); 488 int pos = header()->mapToIndex( 0 );
489 489
490 for ( int index = 0; index < pos; index++ ) 490 for ( int index = 0; index < pos; index++ )
491 offset += columnWidth( header()->mapToSection( index ) ); 491 offset += columnWidth( header()->mapToSection( index ) );
492 492
493 x += contentsX(); // in case of a horizontal scrollbar 493 x += contentsX(); // in case of a horizontal scrollbar
494 return ( x > offset && x < ( offset + width ) ); 494 return ( x > offset && x < ( offset + width ) );
495 } 495 }
496} 496}
497 497
498void KListView::slotOnItem( QListViewItem *item ) 498void KListView::slotOnItem( QListViewItem *item )
499{ 499{
500 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() ); 500 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() );
501 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) { 501 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) {
502 d->autoSelect.start( d->autoSelectDelay, true ); 502 d->autoSelect.start( d->autoSelectDelay, true );
503 d->pCurrentItem = item; 503 d->pCurrentItem = item;
504 } 504 }
505} 505}
506 506
507void KListView::slotOnViewport() 507void KListView::slotOnViewport()
508{ 508{
509 if ( d->bChangeCursorOverItem ) 509 if ( d->bChangeCursorOverItem )
510 viewport()->unsetCursor(); 510 viewport()->unsetCursor();
511 511
512 d->autoSelect.stop(); 512 d->autoSelect.stop();
513 d->pCurrentItem = 0L; 513 d->pCurrentItem = 0L;
514} 514}
515 515
516void KListView::slotSettingsChanged(int category) 516void KListView::slotSettingsChanged(int category)
517{ 517{
518qDebug("KListView::slotSettingsChanged has to be verified"); 518 //qDebug("KListView::slotSettingsChanged has to be verified");
519/*US 519/*US
520 520
521 switch (category) 521 switch (category)
522 { 522 {
523 case KApplication::SETTINGS_MOUSE: 523 case KApplication::SETTINGS_MOUSE:
524 d->dragDelay = KGlobalSettings::dndEventDelay(); 524 d->dragDelay = KGlobalSettings::dndEventDelay();
525 d->bUseSingle = KGlobalSettings::singleClick(); 525 d->bUseSingle = KGlobalSettings::singleClick();
526 526
527 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 527 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
528 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int))); 528 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int)));
529 529
530 if( d->bUseSingle ) 530 if( d->bUseSingle )
531 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 531 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
532 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int))); 532 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
533 533
534 d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon(); 534 d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon();
535 d->autoSelectDelay = KGlobalSettings::autoSelectDelay(); 535 d->autoSelectDelay = KGlobalSettings::autoSelectDelay();
536 536
537 if( !d->bUseSingle || !d->bChangeCursorOverItem ) 537 if( !d->bUseSingle || !d->bChangeCursorOverItem )
538 viewport()->unsetCursor(); 538 viewport()->unsetCursor();
539 539
540 break; 540 break;
541 541
542 case KApplication::SETTINGS_POPUPMENU: 542 case KApplication::SETTINGS_POPUPMENU:
543 d->contextMenuKey = KGlobalSettings::contextMenuKey (); 543 d->contextMenuKey = KGlobalSettings::contextMenuKey ();
544 d->showContextMenusOnPress = KGlobalSettings::showContextMenusOnPress (); 544 d->showContextMenusOnPress = KGlobalSettings::showContextMenusOnPress ();
545 545
546 if (d->showContextMenusOnPress) 546 if (d->showContextMenusOnPress)
547 { 547 {
548 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 548 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
549 549
550 connect(this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)), 550 connect(this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)),
551 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 551 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
552 } 552 }
553 else 553 else
554 { 554 {
555 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 555 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
556 556
557 connect(this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)), 557 connect(this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)),
558 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 558 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
559 } 559 }
560 break; 560 break;
561 561
562 default: 562 default:
563 break; 563 break;
564 } 564 }
565*/ 565*/
566 566
567 if( d->bUseSingle ) 567 if( d->bUseSingle )
568 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 568 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
569 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int))); 569 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
570 570
571} 571}
572 572
573void KListView::slotAutoSelect() 573void KListView::slotAutoSelect()
574{ 574{
575 // check that the item still exists 575 // check that the item still exists
576 if( itemIndex( d->pCurrentItem ) == -1 ) 576 if( itemIndex( d->pCurrentItem ) == -1 )
577 return; 577 return;
578 578
579 if (!isActiveWindow()) 579 if (!isActiveWindow())
580 { 580 {
581 d->autoSelect.stop(); 581 d->autoSelect.stop();
582 return; 582 return;
583 } 583 }
584 584
585 //Give this widget the keyboard focus. 585 //Give this widget the keyboard focus.
586 if( !hasFocus() ) 586 if( !hasFocus() )
587 setFocus(); 587 setFocus();
588 588
589 QListViewItem* previousItem = currentItem(); 589 QListViewItem* previousItem = currentItem();
590 setCurrentItem( d->pCurrentItem ); 590 setCurrentItem( d->pCurrentItem );
591 591
592#if 0 592#if 0
593#ifndef Q_WS_QWS 593#ifndef Q_WS_QWS
594 // FIXME(E): Implement for Qt Embedded 594 // FIXME(E): Implement for Qt Embedded
595 if( d->pCurrentItem ) { 595 if( d->pCurrentItem ) {
596 //Shift pressed? 596 //Shift pressed?
597 if( (keybstate & ShiftMask) ) { 597 if( (keybstate & ShiftMask) ) {
598 bool block = signalsBlocked(); 598 bool block = signalsBlocked();
599 blockSignals( true ); 599 blockSignals( true );
600 600
601 //No Ctrl? Then clear before! 601 //No Ctrl? Then clear before!
602 if( !(keybstate & ControlMask) ) 602 if( !(keybstate & ControlMask) )
603 clearSelection(); 603 clearSelection();
604 604
605 bool select = !d->pCurrentItem->isSelected(); 605 bool select = !d->pCurrentItem->isSelected();
606 bool update = viewport()->isUpdatesEnabled(); 606 bool update = viewport()->isUpdatesEnabled();
607 viewport()->setUpdatesEnabled( false ); 607 viewport()->setUpdatesEnabled( false );
608 608
609 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos(); 609 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos();
610 QListViewItemIterator lit( down ? previousItem : d->pCurrentItem ); 610 QListViewItemIterator lit( down ? previousItem : d->pCurrentItem );
611 for ( ; lit.current(); ++lit ) { 611 for ( ; lit.current(); ++lit ) {
612 if ( down && lit.current() == d->pCurrentItem ) { 612 if ( down && lit.current() == d->pCurrentItem ) {
613 d->pCurrentItem->setSelected( select ); 613 d->pCurrentItem->setSelected( select );
614 break; 614 break;
615 } 615 }
616 if ( !down && lit.current() == previousItem ) { 616 if ( !down && lit.current() == previousItem ) {
617 previousItem->setSelected( select ); 617 previousItem->setSelected( select );
618 break; 618 break;
619 } 619 }
620 lit.current()->setSelected( select ); 620 lit.current()->setSelected( select );
621 } 621 }
622 622
623 blockSignals( block ); 623 blockSignals( block );
624 viewport()->setUpdatesEnabled( update ); 624 viewport()->setUpdatesEnabled( update );
625 triggerUpdate(); 625 triggerUpdate();
626 626
627 emit selectionChanged(); 627 emit selectionChanged();
628 628
629 if( selectionMode() == QListView::Single ) 629 if( selectionMode() == QListView::Single )
630 emit selectionChanged( d->pCurrentItem ); 630 emit selectionChanged( d->pCurrentItem );
631 } 631 }
632 else if( (keybstate & ControlMask) ) 632 else if( (keybstate & ControlMask) )
633 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() ); 633 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() );
634 else { 634 else {
635 bool block = signalsBlocked(); 635 bool block = signalsBlocked();
636 blockSignals( true ); 636 blockSignals( true );
637 637
638 if( !d->pCurrentItem->isSelected() ) 638 if( !d->pCurrentItem->isSelected() )
639 clearSelection(); 639 clearSelection();
640 640
641 blockSignals( block ); 641 blockSignals( block );
642 642
643 setSelected( d->pCurrentItem, true ); 643 setSelected( d->pCurrentItem, true );
644 } 644 }
645 } 645 }
646 else 646 else
647 kdDebug() << "KListView::slotAutoSelect: Thats not supposed to happen!!!!" << endl; 647 kdDebug() << "KListView::slotAutoSelect: Thats not supposed to happen!!!!" << endl;
648#endif 648#endif
649#endif 649#endif
650} 650}
651 651
652void KListView::slotHeaderChanged() 652void KListView::slotHeaderChanged()
653{ 653{
654 if (d->fullWidth && columns()) 654 if (d->fullWidth && columns())
655 { 655 {
656 int w = 0; 656 int w = 0;
657 for (int i = 0; i < columns() - 1; ++i) w += columnWidth(i); 657 for (int i = 0; i < columns() - 1; ++i) w += columnWidth(i);
658 setColumnWidth( columns() - 1, viewport()->width() - w - 1 ); 658 setColumnWidth( columns() - 1, viewport()->width() - w - 1 );
659 } 659 }
660} 660}
661 661
662void KListView::emitExecute( QListViewItem *item, const QPoint &pos, int c ) 662void KListView::emitExecute( QListViewItem *item, const QPoint &pos, int c )
663{ 663{
664 if( isExecuteArea( viewport()->mapFromGlobal(pos) ) ) { 664 if( isExecuteArea( viewport()->mapFromGlobal(pos) ) ) {
665 665
666 // Double click mode ? 666 // Double click mode ?
667 if ( !d->bUseSingle ) 667 if ( !d->bUseSingle )
668 { 668 {
669 emit executed( item ); 669 emit executed( item );
670 emit executed( item, pos, c ); 670 emit executed( item, pos, c );
671 } 671 }
672 else 672 else
673 { 673 {
674#if 0 674#if 0
675#ifndef Q_WS_QWS 675#ifndef Q_WS_QWS
676 // FIXME(E): Implement for Qt Embedded 676 // FIXME(E): Implement for Qt Embedded
677 Window root; 677 Window root;
678 Window child; 678 Window child;
679 int root_x, root_y, win_x, win_y; 679 int root_x, root_y, win_x, win_y;
680 uint keybstate; 680 uint keybstate;
681 XQueryPointer( qt_xdisplay(), qt_xrootwin(), &root, &child, 681 XQueryPointer( qt_xdisplay(), qt_xrootwin(), &root, &child,
682 &root_x, &root_y, &win_x, &win_y, &keybstate ); 682 &root_x, &root_y, &win_x, &win_y, &keybstate );
683 683
684 d->autoSelect.stop(); 684 d->autoSelect.stop();
685 685
686 //Dont emit executed if in SC mode and Shift or Ctrl are pressed 686 //Dont emit executed if in SC mode and Shift or Ctrl are pressed
687 if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) { 687 if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) {
688 emit executed( item ); 688 emit executed( item );
689 emit executed( item, pos, c ); 689 emit executed( item, pos, c );
690 } 690 }
691#endif 691#endif
692#endif 692#endif
693 } 693 }
694 } 694 }
695} 695}
696 696
697void KListView::focusInEvent( QFocusEvent *fe ) 697void KListView::focusInEvent( QFocusEvent *fe )
698{ 698{
699 // kdDebug()<<"KListView::focusInEvent()"<<endl; 699 // kdDebug()<<"KListView::focusInEvent()"<<endl;
700 QListView::focusInEvent( fe ); 700 QListView::focusInEvent( fe );
701 if ((d->selectedBySimpleMove) 701 if ((d->selectedBySimpleMove)
702 && (d->selectionMode == FileManager) 702 && (d->selectionMode == FileManager)
703 && (fe->reason()!=QFocusEvent::Popup) 703 && (fe->reason()!=QFocusEvent::Popup)
704 && (fe->reason()!=QFocusEvent::ActiveWindow) 704 && (fe->reason()!=QFocusEvent::ActiveWindow)
705 && (currentItem()!=0)) 705 && (currentItem()!=0))
706 { 706 {
707 currentItem()->setSelected(true); 707 currentItem()->setSelected(true);
708 currentItem()->repaint(); 708 currentItem()->repaint();
709 emit selectionChanged(); 709 emit selectionChanged();
710 }; 710 };