From: Christoph Feck Date: Tue, 21 May 2013 20:48:18 +0000 (+0200) Subject: Fix relative paths in saved kvtml documents X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=6e38b67fce6e5ae78e4d2b66975afc4d6ac531a5;p=libqmvoc.git Fix relative paths in saved kvtml documents BUG: 318787 FIXED-IN: 4.10.4 REVIEW: 110432 --- diff --git a/keduvocdocument/keduvocdocument.cpp b/keduvocdocument/keduvocdocument.cpp index 2ee6541..b73fc69 100644 --- a/keduvocdocument/keduvocdocument.cpp +++ b/keduvocdocument/keduvocdocument.cpp @@ -379,7 +379,9 @@ int KEduVocDocument::saveAs( const KUrl & url, FileType ft, const QString & gene return FileCannotWrite; } + KUrl oldUrl = d->m_url; bool saved = false; + d->m_url = tmp; switch ( ft ) { case Kvtml: { @@ -410,10 +412,10 @@ int KEduVocDocument::saveAs( const KUrl & url, FileType ft, const QString & gene if ( !saved ) { kError() << "Error Saving File" << tmp.path(); + d->m_url = oldUrl; return FileWriterFailed; } - d->m_url = tmp; setModified( false ); return 0; } diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index 99ad94d..859ab8b 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -531,7 +531,7 @@ bool KEduVocKvtml2Writer::writeTranslation( QDomElement &translationElement, KEd // image if ( !translation->imageUrl().isEmpty() ) { QString urlString; - if ( translation->imageUrl().url().startsWith(m_doc->url().upUrl().url()) ) { + if ( m_doc->url().upUrl().isParentOf( translation->imageUrl()) ) { // try to save as relative url urlString = KUrl::relativeUrl( m_doc->url() , translation->imageUrl() ); } else { @@ -543,7 +543,7 @@ bool KEduVocKvtml2Writer::writeTranslation( QDomElement &translationElement, KEd // sound if ( !translation->soundUrl().isEmpty() ) { QString urlString; - if ( translation->soundUrl().url().startsWith(m_doc->url().upUrl().url()) ) { + if ( m_doc->url().upUrl().isParentOf( translation->soundUrl()) ) { // try to save as relative url urlString = KUrl::relativeUrl( m_doc->url() , translation->soundUrl() ); } else {