File indexing completed on 2024-05-19 05:44:25

0001 /*
0002     SPDX-FileCopyrightText: 2015-2017 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #ifndef MAINWINDOW_H
0008 #define MAINWINDOW_H
0009 
0010 #include <QMainWindow>
0011 
0012 #include <KSharedConfig>
0013 
0014 #include <analyze/filterparameters.h>
0015 
0016 namespace Ui {
0017 class MainWindow;
0018 }
0019 
0020 class TreeModel;
0021 class ChartModel;
0022 class Parser;
0023 class ResultData;
0024 
0025 class MainWindow : public QMainWindow
0026 {
0027     Q_OBJECT
0028 public:
0029     MainWindow(QWidget* parent = nullptr);
0030     virtual ~MainWindow();
0031 
0032 public slots:
0033     void loadFile(const QString& path, const QString& diffBase = {});
0034     void reparse(int64_t minTime, int64_t maxTime);
0035     void openNewFile();
0036     void closeFile();
0037 
0038     void setCodeNavigationIDE(QAction* action);
0039     void navigateToCode(const QString& url, int lineNumber, int columnNumber = -1);
0040 
0041     void setDisableEmbeddedSuppressions(bool disable);
0042     void setDisableBuiltinSuppressions(bool disable);
0043     void setSuppressions(std::vector<std::string> suppressions);
0044 
0045 signals:
0046     void clearData();
0047 
0048 private:
0049     void showError(const QString& message);
0050     void setupStacks();
0051     void setupCodeNavigationMenu();
0052 
0053     QScopedPointer<Ui::MainWindow> m_ui;
0054     Parser* m_parser;
0055     KSharedConfig::Ptr m_config;
0056     bool m_diffMode = false;
0057 
0058     QAction* m_openAction = nullptr;
0059     QAction* m_openNewAction = nullptr;
0060     QAction* m_closeAction = nullptr;
0061     QAction* m_quitAction = nullptr;
0062     QAction* m_disableEmbeddedSuppressions = nullptr;
0063     QAction* m_disableBuiltinSuppressions = nullptr;
0064     FilterParameters m_lastFilterParameters;
0065 };
0066 
0067 #endif // MAINWINDOW_H