File indexing completed on 2024-04-14 05:20:29

0001 /*******************************************************************
0002  * drkonqidialog.h
0003  * SPDX-FileCopyrightText: 2009 Dario Andres Rodriguez <andresbajotierra@gmail.com>
0004  * SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org>
0005  *
0006  * SPDX-License-Identifier: GPL-2.0-or-later
0007  *
0008  ******************************************************************/
0009 
0010 #ifndef DRKONQIDIALOG__H
0011 #define DRKONQIDIALOG__H
0012 
0013 #include <QHash>
0014 #include <QPointer>
0015 
0016 #include <QDialog>
0017 
0018 #include "ui_maindialog.h"
0019 
0020 class BacktraceWidget;
0021 class QTabWidget;
0022 class AbstractDebuggerLauncher;
0023 class QDialogButtonBox;
0024 class QMenu;
0025 
0026 class DrKonqiDialog : public QDialog
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit DrKonqiDialog(QWidget *parent = nullptr);
0032     ~DrKonqiDialog() override;
0033 
0034     enum class GoTo { Main, Sentry };
0035     void show(GoTo to);
0036 
0037 private Q_SLOTS:
0038     void linkActivated(const QString &);
0039 
0040     void applicationRestarted(bool success);
0041 
0042     void addDebugger(AbstractDebuggerLauncher *launcher);
0043     void removeDebugger(AbstractDebuggerLauncher *launcher);
0044     void enableDebugMenu(bool);
0045 
0046     // GUI
0047     void buildIntroWidget();
0048     void buildDialogButtons();
0049 
0050     void tabIndexChanged(int);
0051 
0052 private:
0053     QTabWidget *m_tabWidget = nullptr;
0054 
0055     QWidget *m_introWidget = nullptr;
0056     Ui::MainWidget ui;
0057 
0058     BacktraceWidget *m_backtraceWidget = nullptr;
0059 
0060     QMenu *m_debugMenu = nullptr;
0061     QHash<AbstractDebuggerLauncher *, QAction *> m_debugMenuActions;
0062     QDialogButtonBox *m_buttonBox = nullptr;
0063     QPushButton *m_debugButton = nullptr;
0064     QPushButton *m_restartButton = nullptr;
0065     bool m_debugButtonInBox = false;
0066 };
0067 
0068 #endif