diff options
Diffstat (limited to 'browser/errorlogger.h')
-rw-r--r-- | browser/errorlogger.h | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/browser/errorlogger.h b/browser/errorlogger.h index ad7fb9a..814a812 100644 --- a/browser/errorlogger.h +++ b/browser/errorlogger.h @@ -16,6 +16,7 @@ #include <QObject> #include <QDBusContext> +#include <QDateTime> #include "../common/browserdefs.h" @@ -23,8 +24,51 @@ class errorlogger : public QObject, protected QDBusContext { Q_OBJECT public: - errorlogger(QObject *parent = 0); + static errorlogger *instance() + { + if (!m_instance) + m_instance = new errorlogger(); + return m_instance; + } + static void logError (qlonglong dateTime, + QString browserVersion, + QString connectionType, + QString code, + QString source, + QString desc) + { + conn::brw::ErrorItem err; + err.i64DateTime = dateTime; + err.strBrowserVersion = browserVersion; + err.strConnectionType = connectionType; + err.strCode = code; + err.strSource = source; + err.strDescription = desc; + errorlogger::logError(err); + } + + static void logError(QString error) + { + errorlogger::logError( + QDateTime::currentDateTime().toTime_t(), + "Unknown", + "Unknown", + "Unknown", + "Unknown", + error); + } + + static void logError(conn::brw::ErrorItem item) + { + m_instance->m_logError(item); + } + + void clearErrors() + { + m_errors->clear(); + emit onErrorListChanged(); + } signals: void onErrorListChanged(); void onNewErrorItem (const conn::brw::ErrorItem); @@ -36,9 +80,17 @@ public Q_SLOTS: conn::brw::ERROR_SORT_TYPE sortType, uint startIndex, uint itemsCount, - conn::brw::ErrorItemList items); + conn::brw::ErrorItemList &items); private: + errorlogger(){ + m_errors = new conn::brw::ErrorItemList(); + } + static errorlogger *m_instance; + + void m_logError(conn::brw::ErrorItem); + + conn::brw::ErrorItemList *m_errors; }; #endif // ERRORLOGGER_H |