#ifndef AdsDebug_H
#define AdsDebug_H

#include <QObject>

class QMainWindow;

class AdsDebug : public QObject
{
  Q_OBJECT
public:
    static bool createDebugWindows(QMainWindow* parent);
    static AdsDebug& instance();
    static void log_print(const QString&);

    static void log_qmsg(int level, const char* const msg);

    void startMonitoring(unsigned int interval_ms=1000);

    void timerEvent(QTimerEvent*);

    static void destroyDebugWindow();

    virtual ~AdsDebug();

signals:

public slots:
    void resetAllTimesMetrics();
    void resetSelectedTimesMetrics();
    void resizeTimesMetrics();

private:
    explicit AdsDebug(QObject *parent = 0);
    bool create(QMainWindow* parent);
};


#endif // AdsDebug_H
