diff --git a/kmplot/kmplotio.cpp b/kmplot/kmplotio.cpp --- a/kmplot/kmplotio.cpp +++ b/kmplot/kmplotio.cpp @@ -35,7 +35,8 @@ #include // KDE includes -#include +#include +#include #include #include @@ -142,11 +143,16 @@ doc.save( ts, 4 ); ts.flush(); - if ( !KIO::NetAccess::upload(tmpfile.fileName(), url,0)) { + Q_CONSTEXPR int permission = -1; + QFile file(tmpfile.fileName()); + file.open(QIODevice::ReadOnly); + KIO::StoredTransferJob *putjob = KIO::storedPut(file.readAll(), url, permission, KIO::JobFlag::Overwrite); + if (!putjob->exec()) { qWarning() << "Could not open " << url.toString() - << " for writing ("<errorString()<<").\n"; return false; } + file.close(); } else { QFile xmlfile (url.toLocalFile()); @@ -338,20 +344,27 @@ { QDomDocument doc( "kmpdoc" ); QFile f; + bool downloadedFile = false; if ( !url.isLocalFile() ) { - if( !KIO::NetAccess::exists( url, KIO::NetAccess::SourceSide, 0 ) ) + if( !MainDlg::fileExists( url ) ) { KMessageBox::sorry(0,i18n("The file does not exist.")); return false; } - QString tmpfile; - if( !KIO::NetAccess::download( url, tmpfile, 0 ) ) - { - KMessageBox::sorry(0,i18n("An error appeared when opening this file (%1)", KIO::NetAccess::lastErrorString() )); - return false; + downloadedFile = true; + KIO::StoredTransferJob *transferjob = KIO::storedGet (url); + KJobWidgets::setWindow(transferjob, 0); + if ( !transferjob->exec() ) { + KMessageBox::sorry(0,i18n("An error appeared when opening this file (%1)", transferjob->errorString() )); + return false; } - f.setFileName(tmpfile); + QTemporaryFile file; + file.setAutoRemove(false); + file.open(); + file.write(transferjob->data()); + f.setFileName(file.fileName()); + file.close(); } else f.setFileName( url.toLocalFile() ); @@ -374,8 +387,8 @@ if ( !restore( doc ) ) return false; - if ( !url.isLocalFile() ) - KIO::NetAccess::removeTempFile( f.fileName() ); + if ( downloadedFile ) + QFile::remove( f.fileName() ); return true; } diff --git a/kmplot/kparametereditor.cpp b/kmplot/kparametereditor.cpp --- a/kmplot/kparametereditor.cpp +++ b/kmplot/kparametereditor.cpp @@ -26,23 +26,24 @@ #include "kparametereditor.h" #include -#include -#include -#include -#include -#include -#include +#include #include -#include +#include #include #include - -#include -#include -#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include + +#include "maindlg.h" + +#include class ParameterValueList; @@ -225,27 +226,32 @@ if ( url.isEmpty() ) return; - if (!KIO::NetAccess::exists(url, KIO::NetAccess::SourceSide, this) ) + if (!MainDlg::fileExists( url ) ) { KMessageBox::sorry(0,i18n("The file does not exist.")); - return; + return; } bool verbose = false; - QFile file; - QString tmpfile; - if ( !url.isLocalFile() ) - { - if ( !KIO::NetAccess::download(url, tmpfile, this) ) - { - KMessageBox::sorry(0,i18n("An error appeared when opening this file")); - return; - } - file.setFileName(tmpfile); - } - else - file.setFileName(url.toLocalFile() ); - + QFile file; + if ( !url.isLocalFile() ) + { + KIO::StoredTransferJob *transferjob = KIO::storedGet (url); + KJobWidgets::setWindow(transferjob, 0); + if ( !transferjob->exec() ) { + KMessageBox::sorry(0,i18n("An error appeared when opening this file: %1", transferjob->errorString() )); + return; + } + QTemporaryFile tmpfile; + tmpfile.setAutoRemove(false); + tmpfile.open(); + tmpfile.write(transferjob->data()); + file.setFileName(tmpfile.fileName()); + tmpfile.close(); + } + else + file.setFileName(url.toLocalFile() ); + if ( file.open(QIODevice::ReadOnly) ) { QTextStream stream(&file); @@ -270,7 +276,7 @@ if ( KMessageBox::warningContinueCancel(this,i18n("Line %1 is not a valid parameter value and will therefore not be included. Do you want to continue?", i) ) == KMessageBox::Cancel) { file.close(); - KIO::NetAccess::removeTempFile( tmpfile ); + QFile::remove( file.fileName() ); return; } else if (KMessageBox::warningYesNo(this,i18n("Would you like to be informed about other lines that cannot be read?"), QString(), KGuiItem(i18n("Get Informed")), KGuiItem(i18n("Ignore Information")) ) == KMessageBox::No) @@ -283,23 +289,23 @@ KMessageBox::sorry(0,i18n("An error appeared when opening this file")); if ( !url.isLocalFile() ) - KIO::NetAccess::removeTempFile( tmpfile ); + QFile::remove( file.fileName() ); } void KParameterEditor::cmdExport_clicked() { if ( !m_mainWidget->list->count() ) return; QUrl url = QFileDialog::getSaveFileUrl(this, i18n("Save File"), QUrl(), i18n("Plain Text File (*.txt)")); - if ( url.isEmpty() ) - return; + if ( url.isEmpty() ) + return; - if( !KIO::NetAccess::exists( url, KIO::NetAccess::DestinationSide, this ) || KMessageBox::warningContinueCancel( this, i18n( "A file named \"%1\" already exists. Are you sure you want to continue and overwrite this file?", url.toDisplayString()), i18n( "Overwrite File?" ), KStandardGuiItem::overwrite() ) == KMessageBox::Continue ) - { - if ( !url.isLocalFile() ) - { - QTemporaryFile tmpfile; + if( !MainDlg::fileExists( url ) || KMessageBox::warningContinueCancel( this, i18n( "A file named \"%1\" already exists. Are you sure you want to continue and overwrite this file?", url.toDisplayString()), i18n( "Overwrite File?" ), KStandardGuiItem::overwrite() ) == KMessageBox::Continue ) + { + if ( !url.isLocalFile() ) + { + QTemporaryFile tmpfile; if (tmpfile.open() ) { @@ -315,16 +321,20 @@ } else KMessageBox::sorry(0,i18n("An error appeared when saving this file")); - - if ( !KIO::NetAccess::upload(tmpfile.fileName(),url, this) ) - { + + Q_CONSTEXPR int permission = -1; + QFile file(tmpfile.fileName()); + file.open(QIODevice::ReadOnly); + KIO::StoredTransferJob *putjob = KIO::storedPut(file.readAll(), url, permission, KIO::JobFlag::Overwrite); + if (!putjob->exec()) { KMessageBox::sorry(0,i18n("An error appeared when saving this file")); - return; - } - } - else - { - QFile file; + return; + } + file.close(); + } + else + { + QFile file; qDebug() << "url.path()="< #include #include -#include -#include +#include #include #include #include @@ -523,8 +522,7 @@ if ( url.isEmpty() ) return; - bool exists = KIO::NetAccess::exists( url, KIO::NetAccess::DestinationSide, m_parent ); - if ( exists ) + if ( MainDlg::fileExists( url ) ) { // check if file exists and overwriting is ok. @@ -574,8 +572,7 @@ if ( !url.isValid() ) return; - bool exists = KIO::NetAccess::exists( url, KIO::NetAccess::DestinationSide, m_parent ); - if ( exists ) + if ( MainDlg::fileExists( url ) ) { // check if file exists and overwriting is ok. @@ -585,18 +582,11 @@ return; } -QMimeDatabase db; - QMimeType mimeType = db.mimeTypeForUrl( url ); + QMimeType mimeType = mimeDatabase.mimeTypeForUrl( url ); qDebug() << "mimetype: " << mimeType.name(); bool isSvg = mimeType.name() == "image/svg+xml"; - if ( !KImageIO::isSupported( mimeType.name(), KImageIO::Writing ) && !isSvg ) - { - KMessageBox::sorry( m_parent, i18n( "Sorry, this file format is not supported." ) ); - return; - }; - bool saveOk = true; if ( isSvg ) @@ -621,14 +611,21 @@ View::self()->draw( &img, View::SVG ); if ( !url.isLocalFile() ) - saveOk &= KIO::NetAccess::upload(tmp.fileName(), url, 0); + { + Q_CONSTEXPR int permission = -1; + QFile file(tmp.fileName()); + file.open(QIODevice::ReadOnly); + KIO::StoredTransferJob *putjob = KIO::storedPut(file.readAll(), url, permission, KIO::JobFlag::Overwrite); + saveOk &= putjob->exec(); + file.close(); + } } else { QPixmap img( View::self()->size() ); View::self()->draw( & img, View::Pixmap ); - QStringList types = KImageIO::typeForMime( mimeType.name() ); + QStringList types = mimeType.suffixes(); if ( types.isEmpty() ) return; // TODO error dialog? @@ -639,7 +636,12 @@ QTemporaryFile tmp; tmp.open(); img.save( tmp.fileName(), types.at(0).toLatin1() ); - saveOk = KIO::NetAccess::upload(tmp.fileName(), url, 0); + Q_CONSTEXPR int permission = -1; + QFile file(tmp.fileName()); + file.open(QIODevice::ReadOnly); + KIO::StoredTransferJob *putjob = KIO::storedPut(file.readAll(), url, permission, KIO::JobFlag::Overwrite); + saveOk = putjob->exec(); + file.close(); } } @@ -742,6 +744,21 @@ m_constantEditor->show(); } +bool MainDlg::fileExists(const QUrl &url) +{ + bool fileExists = false; + if (url.isValid()) { + short int detailLevel = 0; // Lowest level: file/dir/symlink/none + KIO::StatJob* statjob = KIO::stat(url, KIO::StatJob::SourceSide, detailLevel); + bool noerror = statjob->exec(); + if (noerror) { + // We want a file + fileExists = !statjob->statResult().isDir(); + } + } + return fileExists; +} + void MainDlg::slotNames() { KHelpClient::invokeHelp( "func-predefined", "kmplot" );