X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;f=src%2Fplugins%2FLogView%2Flogview.h;h=e652f619b7d3e4aec5a1a1b10608ec50231449b1;hb=13dedf19c628b9967e4c4106ab0fd967f1df0b90;hp=383588de454272efb192c1c019531688143004c6;hpb=d50faf159f17a66fb89ea3e7878b6f56e34b9e72;p=evaf diff --git a/src/plugins/LogView/logview.h b/src/plugins/LogView/logview.h index 383588d..e652f61 100644 --- a/src/plugins/LogView/logview.h +++ b/src/plugins/LogView/logview.h @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -30,6 +31,11 @@ #include #include +class QListView; +class QLabel; +class QTabWidget; +class QStatusBar; +class QEvent; namespace eVaf { @@ -62,20 +68,22 @@ public: : dt(QDateTime::currentDateTime()) , severity(s) , text(t) + , simplified(t.simplified()) , where(w) {} QDateTime dt; Common::iLogger::Severity severity; QString text; + QString simplified; QString where; }; - Model(QObject * parent = 0); + Model(QObject * parent = nullptr); Message const & messageAt(int idx) const { return mData.at(idx); } - virtual int rowCount(QModelIndex const & parent = QModelIndex()) const { return mData.size(); } + virtual int rowCount(QModelIndex const & = QModelIndex()) const { return mData.size(); } virtual QVariant data(QModelIndex const & index, int role = Qt::DisplayRole) const; @@ -118,6 +126,8 @@ private: // Methods /** * The log view widget + * + * The Widget class implements a widget that shows messages from one logger source. */ class Widget : public QWidget { @@ -125,9 +135,59 @@ class Widget : public QWidget public: - Widget(QWidget * parent = 0, Qt::WindowFlags flags = 0); + Widget(QString const & source, QWidget * parent = nullptr); + + QString const & source() const { return mSource; } + + inline void addMessage(Common::iLogger::Severity severity, QString const & text, QString const & where) + { + mModel->addMessage(severity, text, where); + } + + +private slots: + + void messageAdded(QModelIndex const & index); + + void currentChanged(QModelIndex const &, QModelIndex const &); + + void copyToClipboard(); + + void saveToFile(); + + +private: + + QString mSource; + + Model * mModel; + + bool mAutoScroll; + + QListView * wList; + QLabel * wDetails; + +}; + +/** + * The log view window + */ +class Window : public Gui::Panel +{ + Q_OBJECT + +public: + + Window(QString const & args, QWidget * parent = nullptr, Qt::WindowFlags flags = 0); - virtual ~Widget(); + virtual ~Window(); + + virtual bool event(QEvent * e); + + +public slots: + + void loggerEvent(Common::iLogger::Severity severity, QString const & text, QString const & source, QString const & where); private: // Methods @@ -136,6 +196,16 @@ private: // Methods void restoreSettings(); + QString getPanelName(QString const & args) const; + + +private: // Members + + QString mDefSource; + QTabWidget * wTabs; + QHash mLogViews; + QStatusBar * wStatusBar; + }; /** @@ -156,11 +226,11 @@ public: virtual void done(); - virtual bool isReady() const { return wWidget != 0; } + virtual bool isReady() const { return wWindow != nullptr; } private: // Members - Widget * wWidget; + Window * wWindow; };