File indexing completed on 2024-04-28 04:38:54
0001 /* 0002 SPDX-FileCopyrightText: 2017 Anton Anikin <anton.anikin@htower.ru> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "visualizer.h" 0008 0009 #include "debug.h" 0010 #include "globalsettings.h" 0011 #include "utils.h" 0012 // KDevPlatform 0013 #include <interfaces/icore.h> 0014 #include <interfaces/iuicontroller.h> 0015 #include <sublime/message.h> 0016 #include <util/path.h> 0017 // KF 0018 #include <KLocalizedString> 0019 // Qt 0020 #include <QFile> 0021 0022 namespace Heaptrack 0023 { 0024 0025 Visualizer::Visualizer(const QString& resultsFile, QObject* parent) 0026 : QProcess(parent) 0027 , m_resultsFile(resultsFile) 0028 { 0029 connect(this, &QProcess::errorOccurred, 0030 this, [this](QProcess::ProcessError error) { 0031 QString errorMessage; 0032 if (error == QProcess::FailedToStart) { 0033 errorMessage = i18n("Failed to start Heaptrack visualizer from \"%1\".", program()) 0034 + QLatin1String("\n\n") 0035 + i18n("Check your settings and install the visualizer if necessary."); 0036 } else { 0037 errorMessage = i18n("Error during Heaptrack visualizer execution:") 0038 + QLatin1String("\n\n") 0039 + errorString(); 0040 } 0041 auto* message = new Sublime::Message(errorMessage, Sublime::Message::Error); 0042 KDevelop::ICore::self()->uiController()->postMessage(message); 0043 }); 0044 0045 connect(this, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), 0046 this, [this]() { 0047 deleteLater(); 0048 }); 0049 0050 setProgram(KDevelop::Path(GlobalSettings::heaptrackGuiExecutable()).toLocalFile()); 0051 setArguments({ resultsFile }); 0052 } 0053 0054 Visualizer::~Visualizer() 0055 { 0056 QFile::remove(m_resultsFile); 0057 } 0058 0059 } 0060 0061 #include "moc_visualizer.cpp"