1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/* This file is part of KDevelop
Copyright 2017 Anton Anikin <anton.anikin@htower.ru>
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) any later version.
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "visualizer.h"
#include "debug.h"
#include "globalsettings.h"
#include "utils.h"
// KDevPlatform
#include <interfaces/icore.h>
#include <interfaces/iuicontroller.h>
#include <sublime/message.h>
#include <util/path.h>
// KF
#include <KLocalizedString>
// Qt
#include <QFile>
namespace Heaptrack
{
Visualizer::Visualizer(const QString& resultsFile, QObject* parent)
: QProcess(parent)
, m_resultsFile(resultsFile)
{
connect(this, &QProcess::errorOccurred,
this, [this](QProcess::ProcessError error) {
QString errorMessage;
if (error == QProcess::FailedToStart) {
errorMessage = i18n("Failed to start Heaptrack visualizer from \"%1\".", program())
+ QLatin1String("\n\n")
+ i18n("Check your settings and install the visualizer if necessary.");
} else {
errorMessage = i18n("Error during Heaptrack visualizer execution:")
+ QLatin1String("\n\n")
+ errorString();
}
auto* message = new Sublime::Message(errorMessage, Sublime::Message::Error);
KDevelop::ICore::self()->uiController()->postMessage(message);
});
connect(this, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
this, [this]() {
deleteLater();
});
setProgram(KDevelop::Path(GlobalSettings::heaptrackGuiExecutable()).toLocalFile());
setArguments({ resultsFile });
}
Visualizer::~Visualizer()
{
QFile::remove(m_resultsFile);
}
}
|