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
|
/*
SPDX-FileCopyrightText: 2017 Anton Anikin <anton.anikin@htower.ru>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#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);
}
}
#include "moc_visualizer.cpp"
|