#ifndef CSV_DOC_GLOBALDEBUGPROFILEMENU_H
#define CSV_DOC_GLOBALDEBUGPROFILEMENU_H

#include <QMenu>

#include <string>

class QAction;
class QActionGroup;
class QModelIndex;
class QObject;
class QWidget;

namespace CSMWorld
{
    class IdTable;
}

namespace CSVDoc
{
    class GlobalDebugProfileMenu : public QMenu
    {
        Q_OBJECT

        CSMWorld::IdTable* mDebugProfiles;
        QActionGroup* mActions;

    private:
        void rebuild();

    public:
        GlobalDebugProfileMenu(CSMWorld::IdTable* debugProfiles, QWidget* parent = nullptr);

        void updateActions(bool running);

    private slots:

        void profileAboutToBeRemoved(const QModelIndex& parent, int start, int end);

        void profileInserted(const QModelIndex& parent, int start, int end);

        void profileChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);

        void actionTriggered(QAction* action);

    signals:

        void triggered(const std::string& profile);
    };
}

#endif
