diff --git a/massifdata/parseworker.cpp b/massifdata/parseworker.cpp index 684bd54..af75d61 100644 --- a/massifdata/parseworker.cpp +++ b/massifdata/parseworker.cpp @@ -1,103 +1,103 @@ /* This file is part of Massif Visualizer Copyright 2012 Milian Wolff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) version 3 or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of version 3 of the license. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "parseworker.h" #include "parser.h" #include "filedata.h" #include #include #include namespace Massif { ParseWorker::ParseWorker(QObject* parent) : QObject(parent) { } void ParseWorker::parse(const QUrl &url, const QStringList& allocators) { // process in background thread if (QThread::currentThread() != thread()) { QMetaObject::invokeMethod(this, "parse", Q_ARG(QUrl, url), Q_ARG(QStringList, allocators)); return; } m_shouldStop = 0; QString file; // FIXME: KF5 #if 0 if (!url.isLocalFile()) { if (!KIO::NetAccess::download(url, file, 0)) { emit error(i18n("Download Failed"), i18n("Failed to download remote massif data file %1.", url.pathOrUrl())); return; } } else { file = url.toLocalFile(); } #endif file = url.toLocalFile(); - QScopedPointer device(KFilterDev::deviceForFile(file)); + QScopedPointer device(new KFilterDev(file)); if (!device->open(QIODevice::ReadOnly)) { emit error(i18n("Read Failed"), i18n("Could not open file %1 for reading.", file)); return; } Parser p; emit progressRange(0, 100); connect(&p, SIGNAL(progress(int)), this, SIGNAL(progress(int))); QScopedPointer data(p.parse(device.data(), allocators, &m_shouldStop)); if (!data) { if (!m_shouldStop.load()) { emit error(i18n("Parser Failed"), i18n("Could not parse file %1.
" "Parse error in line %2:
%3", url.toString(), p.errorLine() + 1, QString::fromLatin1(p.errorLineString()))); } return; } else if (data->snapshots().isEmpty()) { emit error(i18n("Empty data file %1.", url.toString()), i18n("Empty Data File")); return; } emit progress(100); // success! emit finished(url, data.take()); } void ParseWorker::stop() { m_shouldStop = 1; } } #include "parseworker.moc"