summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
Unidiff
Diffstat (limited to 'libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp158
1 files changed, 79 insertions, 79 deletions
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
index 07ad29a..0adba68 100644
--- a/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
+++ b/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
@@ -54,7 +54,7 @@ using namespace Opie;
54 54
55 55
56namespace Opie { 56namespace Opie {
57OContactAccessBackend_XML::OContactAccessBackend_XML ( const QString& appname, const QString& filename ): 57OPimContactAccessBackend_XML::OPimContactAccessBackend_XML ( const QString& appname, const QString& filename ):
58 m_changed( false ) 58 m_changed( false )
59{ 59{
60 // Just m_contactlist should call delete if an entry 60 // Just m_contactlist should call delete if an entry
@@ -78,7 +78,7 @@ OContactAccessBackend_XML::OContactAccessBackend_XML ( const QString& appname, c
78 load (); 78 load ();
79} 79}
80 80
81bool OContactAccessBackend_XML::save() 81bool OPimContactAccessBackend_XML::save()
82{ 82{
83 83
84 if ( !m_changed ) 84 if ( !m_changed )
@@ -104,7 +104,7 @@ bool OContactAccessBackend_XML::save()
104 out = ""; 104 out = "";
105 105
106 // Write all contacts 106 // Write all contacts
107 QListIterator<OContact> it( m_contactList ); 107 QListIterator<OPimContact> it( m_contactList );
108 for ( ; it.current(); ++it ) { 108 for ( ; it.current(); ++it ) {
109 // qWarning(" Uid %d at Offset: %x", (*it)->uid(), idx_offset ); 109 // qWarning(" Uid %d at Offset: %x", (*it)->uid(), idx_offset );
110 out += "<Contact "; 110 out += "<Contact ";
@@ -148,7 +148,7 @@ bool OContactAccessBackend_XML::save()
148 return true; 148 return true;
149} 149}
150 150
151bool OContactAccessBackend_XML::load () 151bool OPimContactAccessBackend_XML::load ()
152{ 152{
153 m_contactList.clear(); 153 m_contactList.clear();
154 m_uidToContact.clear(); 154 m_uidToContact.clear();
@@ -167,7 +167,7 @@ bool OContactAccessBackend_XML::load ()
167 return true; 167 return true;
168} 168}
169 169
170void OContactAccessBackend_XML::clear () 170void OPimContactAccessBackend_XML::clear ()
171{ 171{
172 m_contactList.clear(); 172 m_contactList.clear();
173 m_uidToContact.clear(); 173 m_uidToContact.clear();
@@ -175,7 +175,7 @@ void OContactAccessBackend_XML::clear ()
175 m_changed = false; 175 m_changed = false;
176} 176}
177 177
178bool OContactAccessBackend_XML::wasChangedExternally() 178bool OPimContactAccessBackend_XML::wasChangedExternally()
179{ 179{
180 QFileInfo fi( m_fileName ); 180 QFileInfo fi( m_fileName );
181 181
@@ -184,12 +184,12 @@ bool OContactAccessBackend_XML::wasChangedExternally()
184 return (lastmod != m_readtime); 184 return (lastmod != m_readtime);
185} 185}
186 186
187QArray<int> OContactAccessBackend_XML::allRecords() const 187QArray<int> OPimContactAccessBackend_XML::allRecords() const
188{ 188{
189 QArray<int> uid_list( m_contactList.count() ); 189 QArray<int> uid_list( m_contactList.count() );
190 190
191 uint counter = 0; 191 uint counter = 0;
192 QListIterator<OContact> it( m_contactList ); 192 QListIterator<OPimContact> it( m_contactList );
193 for( ; it.current(); ++it ){ 193 for( ; it.current(); ++it ){
194 uid_list[counter++] = (*it)->uid(); 194 uid_list[counter++] = (*it)->uid();
195 } 195 }
@@ -197,11 +197,11 @@ QArray<int> OContactAccessBackend_XML::allRecords() const
197 return ( uid_list ); 197 return ( uid_list );
198} 198}
199 199
200OContact OContactAccessBackend_XML::find ( int uid ) const 200OPimContact OPimContactAccessBackend_XML::find ( int uid ) const
201{ 201{
202 OContact foundContact; //Create empty contact 202 OPimContact foundContact; //Create empty contact
203 203
204 OContact* found = m_uidToContact.find( QString().setNum( uid ) ); 204 OPimContact* found = m_uidToContact.find( QString().setNum( uid ) );
205 205
206 if ( found ){ 206 if ( found ){
207 foundContact = *found; 207 foundContact = *found;
@@ -210,12 +210,12 @@ OContact OContactAccessBackend_XML::find ( int uid ) const
210 return ( foundContact ); 210 return ( foundContact );
211} 211}
212 212
213QArray<int> OContactAccessBackend_XML::queryByExample ( const OContact &query, int settings, 213QArray<int> OPimContactAccessBackend_XML::queryByExample ( const OPimContact &query, int settings,
214 const QDateTime& d ) 214 const QDateTime& d )
215{ 215{
216 216
217 QArray<int> m_currentQuery( m_contactList.count() ); 217 QArray<int> m_currentQuery( m_contactList.count() );
218 QListIterator<OContact> it( m_contactList ); 218 QListIterator<OPimContact> it( m_contactList );
219 uint arraycounter = 0; 219 uint arraycounter = 0;
220 220
221 for( ; it.current(); ++it ){ 221 for( ; it.current(); ++it ){
@@ -240,19 +240,19 @@ QArray<int> OContactAccessBackend_XML::queryByExample ( const OContact &query, i
240 240
241 if ( queryDate->isValid() ){ 241 if ( queryDate->isValid() ){
242 if( checkDate->isValid() ){ 242 if( checkDate->isValid() ){
243 if ( settings & OContactAccess::DateYear ){ 243 if ( settings & OPimContactAccess::DateYear ){
244 if ( queryDate->year() != checkDate->year() ) 244 if ( queryDate->year() != checkDate->year() )
245 allcorrect = false; 245 allcorrect = false;
246 } 246 }
247 if ( settings & OContactAccess::DateMonth ){ 247 if ( settings & OPimContactAccess::DateMonth ){
248 if ( queryDate->month() != checkDate->month() ) 248 if ( queryDate->month() != checkDate->month() )
249 allcorrect = false; 249 allcorrect = false;
250 } 250 }
251 if ( settings & OContactAccess::DateDay ){ 251 if ( settings & OPimContactAccess::DateDay ){
252 if ( queryDate->day() != checkDate->day() ) 252 if ( queryDate->day() != checkDate->day() )
253 allcorrect = false; 253 allcorrect = false;
254 } 254 }
255 if ( settings & OContactAccess::DateDiff ) { 255 if ( settings & OPimContactAccess::DateDiff ) {
256 QDate current; 256 QDate current;
257 // If we get an additional date, we 257 // If we get an additional date, we
258 // will take this date instead of 258 // will take this date instead of
@@ -301,32 +301,32 @@ QArray<int> OContactAccessBackend_XML::queryByExample ( const OContact &query, i
301 default: 301 default:
302 /* Just compare fields which are not empty in the query object */ 302 /* Just compare fields which are not empty in the query object */
303 if ( !query.field(i).isEmpty() ){ 303 if ( !query.field(i).isEmpty() ){
304 switch ( settings & ~( OContactAccess::IgnoreCase 304 switch ( settings & ~( OPimContactAccess::IgnoreCase
305 | OContactAccess::DateDiff 305 | OPimContactAccess::DateDiff
306 | OContactAccess::DateYear 306 | OPimContactAccess::DateYear
307 | OContactAccess::DateMonth 307 | OPimContactAccess::DateMonth
308 | OContactAccess::DateDay 308 | OPimContactAccess::DateDay
309 | OContactAccess::MatchOne 309 | OPimContactAccess::MatchOne
310 ) ){ 310 ) ){
311 311
312 case OContactAccess::RegExp:{ 312 case OPimContactAccess::RegExp:{
313 QRegExp expr ( query.field(i), 313 QRegExp expr ( query.field(i),
314 !(settings & OContactAccess::IgnoreCase), 314 !(settings & OPimContactAccess::IgnoreCase),
315 false ); 315 false );
316 if ( expr.find ( (*it)->field(i), 0 ) == -1 ) 316 if ( expr.find ( (*it)->field(i), 0 ) == -1 )
317 allcorrect = false; 317 allcorrect = false;
318 } 318 }
319 break; 319 break;
320 case OContactAccess::WildCards:{ 320 case OPimContactAccess::WildCards:{
321 QRegExp expr ( query.field(i), 321 QRegExp expr ( query.field(i),
322 !(settings & OContactAccess::IgnoreCase), 322 !(settings & OPimContactAccess::IgnoreCase),
323 true ); 323 true );
324 if ( expr.find ( (*it)->field(i), 0 ) == -1 ) 324 if ( expr.find ( (*it)->field(i), 0 ) == -1 )
325 allcorrect = false; 325 allcorrect = false;
326 } 326 }
327 break; 327 break;
328 case OContactAccess::ExactMatch:{ 328 case OPimContactAccess::ExactMatch:{
329 if (settings & OContactAccess::IgnoreCase){ 329 if (settings & OPimContactAccess::IgnoreCase){
330 if ( query.field(i).upper() != 330 if ( query.field(i).upper() !=
331 (*it)->field(i).upper() ) 331 (*it)->field(i).upper() )
332 allcorrect = false; 332 allcorrect = false;
@@ -351,10 +351,10 @@ QArray<int> OContactAccessBackend_XML::queryByExample ( const OContact &query, i
351 return m_currentQuery; 351 return m_currentQuery;
352} 352}
353 353
354QArray<int> OContactAccessBackend_XML::matchRegexp( const QRegExp &r ) const 354QArray<int> OPimContactAccessBackend_XML::matchRegexp( const QRegExp &r ) const
355{ 355{
356 QArray<int> m_currentQuery( m_contactList.count() ); 356 QArray<int> m_currentQuery( m_contactList.count() );
357 QListIterator<OContact> it( m_contactList ); 357 QListIterator<OPimContact> it( m_contactList );
358 uint arraycounter = 0; 358 uint arraycounter = 0;
359 359
360 for( ; it.current(); ++it ){ 360 for( ; it.current(); ++it ){
@@ -369,58 +369,58 @@ QArray<int> OContactAccessBackend_XML::matchRegexp( const QRegExp &r ) const
369 return m_currentQuery; 369 return m_currentQuery;
370} 370}
371 371
372const uint OContactAccessBackend_XML::querySettings() 372const uint OPimContactAccessBackend_XML::querySettings()
373{ 373{
374 return ( OContactAccess::WildCards 374 return ( OPimContactAccess::WildCards
375 | OContactAccess::IgnoreCase 375 | OPimContactAccess::IgnoreCase
376 | OContactAccess::RegExp 376 | OPimContactAccess::RegExp
377 | OContactAccess::ExactMatch 377 | OPimContactAccess::ExactMatch
378 | OContactAccess::DateDiff 378 | OPimContactAccess::DateDiff
379 | OContactAccess::DateYear 379 | OPimContactAccess::DateYear
380 | OContactAccess::DateMonth 380 | OPimContactAccess::DateMonth
381 | OContactAccess::DateDay 381 | OPimContactAccess::DateDay
382 ); 382 );
383} 383}
384 384
385bool OContactAccessBackend_XML::hasQuerySettings (uint querySettings) const 385bool OPimContactAccessBackend_XML::hasQuerySettings (uint querySettings) const
386{ 386{
387 /* OContactAccess::IgnoreCase, DateDiff, DateYear, DateMonth, DateDay 387 /* OPimContactAccess::IgnoreCase, DateDiff, DateYear, DateMonth, DateDay
388 * may be added with any of the other settings. IgnoreCase should never used alone. 388 * may be added with any of the other settings. IgnoreCase should never used alone.
389 * Wildcards, RegExp, ExactMatch should never used at the same time... 389 * Wildcards, RegExp, ExactMatch should never used at the same time...
390 */ 390 */
391 391
392 // Step 1: Check whether the given settings are supported by this backend 392 // Step 1: Check whether the given settings are supported by this backend
393 if ( ( querySettings & ( 393 if ( ( querySettings & (
394 OContactAccess::IgnoreCase 394 OPimContactAccess::IgnoreCase
395 | OContactAccess::WildCards 395 | OPimContactAccess::WildCards
396 | OContactAccess::DateDiff 396 | OPimContactAccess::DateDiff
397 | OContactAccess::DateYear 397 | OPimContactAccess::DateYear
398 | OContactAccess::DateMonth 398 | OPimContactAccess::DateMonth
399 | OContactAccess::DateDay 399 | OPimContactAccess::DateDay
400 | OContactAccess::RegExp 400 | OPimContactAccess::RegExp
401 | OContactAccess::ExactMatch 401 | OPimContactAccess::ExactMatch
402 ) ) != querySettings ) 402 ) ) != querySettings )
403 return false; 403 return false;
404 404
405 // Step 2: Check whether the given combinations are ok.. 405 // Step 2: Check whether the given combinations are ok..
406 406
407 // IngoreCase alone is invalid 407 // IngoreCase alone is invalid
408 if ( querySettings == OContactAccess::IgnoreCase ) 408 if ( querySettings == OPimContactAccess::IgnoreCase )
409 return false; 409 return false;
410 410
411 // WildCards, RegExp and ExactMatch should never used at the same time 411 // WildCards, RegExp and ExactMatch should never used at the same time
412 switch ( querySettings & ~( OContactAccess::IgnoreCase 412 switch ( querySettings & ~( OPimContactAccess::IgnoreCase
413 | OContactAccess::DateDiff 413 | OPimContactAccess::DateDiff
414 | OContactAccess::DateYear 414 | OPimContactAccess::DateYear
415 | OContactAccess::DateMonth 415 | OPimContactAccess::DateMonth
416 | OContactAccess::DateDay 416 | OPimContactAccess::DateDay
417 ) 417 )
418 ){ 418 ){
419 case OContactAccess::RegExp: 419 case OPimContactAccess::RegExp:
420 return ( true ); 420 return ( true );
421 case OContactAccess::WildCards: 421 case OPimContactAccess::WildCards:
422 return ( true ); 422 return ( true );
423 case OContactAccess::ExactMatch: 423 case OPimContactAccess::ExactMatch:
424 return ( true ); 424 return ( true );
425 case 0: // one of the upper removed bits were set.. 425 case 0: // one of the upper removed bits were set..
426 return ( true ); 426 return ( true );
@@ -430,7 +430,7 @@ bool OContactAccessBackend_XML::hasQuerySettings (uint querySettings) const
430} 430}
431 431
432// Currently only asc implemented.. 432// Currently only asc implemented..
433QArray<int> OContactAccessBackend_XML::sorted( bool asc, int , int , int ) 433QArray<int> OPimContactAccessBackend_XML::sorted( bool asc, int , int , int )
434{ 434{
435 QMap<QString, int> nameToUid; 435 QMap<QString, int> nameToUid;
436 QStringList names; 436 QStringList names;
@@ -438,7 +438,7 @@ QArray<int> OContactAccessBackend_XML::sorted( bool asc, int , int , int )
438 438
439 // First fill map and StringList with all Names 439 // First fill map and StringList with all Names
440 // Afterwards sort namelist and use map to fill array to return.. 440 // Afterwards sort namelist and use map to fill array to return..
441 QListIterator<OContact> it( m_contactList ); 441 QListIterator<OPimContact> it( m_contactList );
442 for( ; it.current(); ++it ){ 442 for( ; it.current(); ++it ){
443 names.append( (*it)->fileAs() + QString::number( (*it)->uid() ) ); 443 names.append( (*it)->fileAs() + QString::number( (*it)->uid() ) );
444 nameToUid.insert( (*it)->fileAs() + QString::number( (*it)->uid() ), (*it)->uid() ); 444 nameToUid.insert( (*it)->fileAs() + QString::number( (*it)->uid() ), (*it)->uid() );
@@ -458,7 +458,7 @@ QArray<int> OContactAccessBackend_XML::sorted( bool asc, int , int , int )
458 458
459} 459}
460 460
461bool OContactAccessBackend_XML::add ( const OContact &newcontact ) 461bool OPimContactAccessBackend_XML::add ( const OPimContact &newcontact )
462{ 462{
463 //qWarning("odefaultbackend: ACTION::ADD"); 463 //qWarning("odefaultbackend: ACTION::ADD");
464 updateJournal (newcontact, ACTION_ADD); 464 updateJournal (newcontact, ACTION_ADD);
@@ -469,14 +469,14 @@ bool OContactAccessBackend_XML::add ( const OContact &newcontact )
469 return true; 469 return true;
470} 470}
471 471
472bool OContactAccessBackend_XML::replace ( const OContact &contact ) 472bool OPimContactAccessBackend_XML::replace ( const OPimContact &contact )
473{ 473{
474 m_changed = true; 474 m_changed = true;
475 475
476 OContact* found = m_uidToContact.find ( QString().setNum( contact.uid() ) ); 476 OPimContact* found = m_uidToContact.find ( QString().setNum( contact.uid() ) );
477 477
478 if ( found ) { 478 if ( found ) {
479 OContact* newCont = new OContact( contact ); 479 OPimContact* newCont = new OPimContact( contact );
480 480
481 updateJournal ( *newCont, ACTION_REPLACE); 481 updateJournal ( *newCont, ACTION_REPLACE);
482 m_contactList.removeRef ( found ); 482 m_contactList.removeRef ( found );
@@ -491,11 +491,11 @@ bool OContactAccessBackend_XML::replace ( const OContact &contact )
491 return false; 491 return false;
492} 492}
493 493
494bool OContactAccessBackend_XML::remove ( int uid ) 494bool OPimContactAccessBackend_XML::remove ( int uid )
495{ 495{
496 m_changed = true; 496 m_changed = true;
497 497
498 OContact* found = m_uidToContact.find ( QString().setNum( uid ) ); 498 OPimContact* found = m_uidToContact.find ( QString().setNum( uid ) );
499 499
500 if ( found ) { 500 if ( found ) {
501 updateJournal ( *found, ACTION_REMOVE); 501 updateJournal ( *found, ACTION_REMOVE);
@@ -507,21 +507,21 @@ bool OContactAccessBackend_XML::remove ( int uid )
507 return false; 507 return false;
508} 508}
509 509
510bool OContactAccessBackend_XML::reload(){ 510bool OPimContactAccessBackend_XML::reload(){
511 /* Reload is the same as load in this implementation */ 511 /* Reload is the same as load in this implementation */
512 return ( load() ); 512 return ( load() );
513} 513}
514 514
515void OContactAccessBackend_XML::addContact_p( const OContact &newcontact ) 515void OPimContactAccessBackend_XML::addContact_p( const OPimContact &newcontact )
516{ 516{
517 OContact* contRef = new OContact( newcontact ); 517 OPimContact* contRef = new OPimContact( newcontact );
518 518
519 m_contactList.append ( contRef ); 519 m_contactList.append ( contRef );
520 m_uidToContact.insert( QString().setNum( newcontact.uid() ), contRef ); 520 m_uidToContact.insert( QString().setNum( newcontact.uid() ), contRef );
521} 521}
522 522
523/* This function loads the xml-database and the journalfile */ 523/* This function loads the xml-database and the journalfile */
524bool OContactAccessBackend_XML::load( const QString filename, bool isJournal ) 524bool OPimContactAccessBackend_XML::load( const QString filename, bool isJournal )
525{ 525{
526 526
527 /* We use the time of the last read to check if the file was 527 /* We use the time of the last read to check if the file was
@@ -590,7 +590,7 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
590 dict.insert( "action", new int(JOURNALACTION) ); 590 dict.insert( "action", new int(JOURNALACTION) );
591 dict.insert( "actionrow", new int(JOURNALROW) ); 591 dict.insert( "actionrow", new int(JOURNALROW) );
592 592
593 //qWarning( "OContactDefaultBackEnd::loading %s", filename.latin1() ); 593 //qWarning( "OPimContactDefaultBackEnd::loading %s", filename.latin1() );
594 594
595 XMLElement *root = XMLElement::load( filename ); 595 XMLElement *root = XMLElement::load( filename );
596 if(root != 0l ){ // start parsing 596 if(root != 0l ){ // start parsing
@@ -598,13 +598,13 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
598 * Contact-Class 598 * Contact-Class
599 */ 599 */
600 XMLElement *element = root->firstChild(); 600 XMLElement *element = root->firstChild();
601 //qWarning("OContactAccess::load tagName(): %s", root->tagName().latin1() ); 601 //qWarning("OPimContactAccess::load tagName(): %s", root->tagName().latin1() );
602 element = element->firstChild(); 602 element = element->firstChild();
603 603
604 /* Search Tag "Contacts" which is the parent of all Contacts */ 604 /* Search Tag "Contacts" which is the parent of all Contacts */
605 while( element && !isJournal ){ 605 while( element && !isJournal ){
606 if( element->tagName() != QString::fromLatin1("Contacts") ){ 606 if( element->tagName() != QString::fromLatin1("Contacts") ){
607 //qWarning ("OContactDefBack::Searching for Tag \"Contacts\"! Found: %s", 607 //qWarning ("OPimContactDefBack::Searching for Tag \"Contacts\"! Found: %s",
608 // element->tagName().latin1()); 608 // element->tagName().latin1());
609 element = element->nextChild(); 609 element = element->nextChild();
610 } else { 610 } else {
@@ -615,7 +615,7 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
615 /* Parse all Contacts and ignore unknown tags */ 615 /* Parse all Contacts and ignore unknown tags */
616 while( element ){ 616 while( element ){
617 if( element->tagName() != QString::fromLatin1("Contact") ){ 617 if( element->tagName() != QString::fromLatin1("Contact") ){
618 //qWarning ("OContactDefBack::Searching for Tag \"Contact\"! Found: %s", 618 //qWarning ("OPimContactDefBack::Searching for Tag \"Contact\"! Found: %s",
619 // element->tagName().latin1()); 619 // element->tagName().latin1());
620 element = element->nextChild(); 620 element = element->nextChild();
621 continue; 621 continue;
@@ -623,7 +623,7 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
623 /* Found alement with tagname "contact", now parse and store all 623 /* Found alement with tagname "contact", now parse and store all
624 * attributes contained 624 * attributes contained
625 */ 625 */
626 //qWarning("OContactDefBack::load element tagName() : %s", 626 //qWarning("OPimContactDefBack::load element tagName() : %s",
627 // element->tagName().latin1() ); 627 // element->tagName().latin1() );
628 QString dummy; 628 QString dummy;
629 foundAction = false; 629 foundAction = false;
@@ -670,7 +670,7 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
670 } 670 }
671 } 671 }
672 /* now generate the Contact contact */ 672 /* now generate the Contact contact */
673 OContact contact( contactMap ); 673 OPimContact contact( contactMap );
674 674
675 for (customIt = customMap.begin(); customIt != customMap.end(); ++customIt ) { 675 for (customIt = customMap.begin(); customIt != customMap.end(); ++customIt ) {
676 contact.setCustomField( customIt.key(), customIt.data() ); 676 contact.setCustomField( customIt.key(), customIt.data() );
@@ -713,7 +713,7 @@ bool OContactAccessBackend_XML::load( const QString filename, bool isJournal )
713} 713}
714 714
715 715
716void OContactAccessBackend_XML::updateJournal( const OContact& cnt, 716void OPimContactAccessBackend_XML::updateJournal( const OPimContact& cnt,
717 journal_action action ) 717 journal_action action )
718{ 718{
719 QFile f( m_journalName ); 719 QFile f( m_journalName );
@@ -741,7 +741,7 @@ void OContactAccessBackend_XML::updateJournal( const OContact& cnt,
741 f.writeBlock( cstr.data(), cstr.length() ); 741 f.writeBlock( cstr.data(), cstr.length() );
742} 742}
743 743
744void OContactAccessBackend_XML::removeJournal() 744void OPimContactAccessBackend_XML::removeJournal()
745{ 745{
746 QFile f ( m_journalName ); 746 QFile f ( m_journalName );
747 if ( f.exists() ) 747 if ( f.exists() )