From eccc538b3a6ac0316120c96e60b261a3ffb5e0c0 Mon Sep 17 00:00:00 2001 From: APTX Date: Tue, 4 Jun 2013 19:50:07 +0200 Subject: [PATCH] Add simple client log tab. Displays whatever gets printed to (usually) stderr starting from the time the tab was opened. --- .../localmylist-management.pro | 9 ++-- localmylist-management/registertabs.cpp | 2 + localmylist-management/tabs/clientlogtab.cpp | 43 +++++++++++++++++++ localmylist-management/tabs/clientlogtab.h | 32 ++++++++++++++ localmylist-management/tabs/clientlogtab.ui | 34 +++++++++++++++ localmylist/messagehandler.cpp | 11 +++++ localmylist/mylist.h | 1 + 7 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 localmylist-management/tabs/clientlogtab.cpp create mode 100644 localmylist-management/tabs/clientlogtab.h create mode 100644 localmylist-management/tabs/clientlogtab.ui diff --git a/localmylist-management/localmylist-management.pro b/localmylist-management/localmylist-management.pro index 6801dbc..d4b045d 100644 --- a/localmylist-management/localmylist-management.pro +++ b/localmylist-management/localmylist-management.pro @@ -26,7 +26,8 @@ SOURCES += main.cpp\ tabs/unknownfilestab.cpp \ tabs/pendingrequesttab.cpp \ registertabs.cpp \ - tabs/databaselogtab.cpp + tabs/databaselogtab.cpp \ + tabs/clientlogtab.cpp HEADERS += mainwindow.h \ databaseconnectiondialog.h \ @@ -43,7 +44,8 @@ HEADERS += mainwindow.h \ tabs/reportstab.h \ tabs/unknownfilestab.h \ tabs/pendingrequesttab.h \ - tabs/databaselogtab.h + tabs/databaselogtab.h \ + tabs/clientlogtab.h FORMS += mainwindow.ui \ databaseconnectiondialog.ui \ @@ -52,7 +54,8 @@ FORMS += mainwindow.ui \ tabs/reportstab.ui \ tabs/unknownfilestab.ui \ tabs/pendingrequesttab.ui \ - tabs/databaselogtab.ui + tabs/databaselogtab.ui \ + tabs/clientlogtab.ui include(../localmylist.pri) include(qtsingleapplication/qtsingleapplication.pri) diff --git a/localmylist-management/registertabs.cpp b/localmylist-management/registertabs.cpp index bae47ec..8e0ea67 100644 --- a/localmylist-management/registertabs.cpp +++ b/localmylist-management/registertabs.cpp @@ -5,6 +5,7 @@ #include "tabs/unknownfilestab.h" #include "tabs/pendingrequesttab.h" #include "tabs/databaselogtab.h" +#include "tabs/clientlogtab.h" void registerTabs() { @@ -14,4 +15,5 @@ void registerTabs() TabWidget::registerTab(); TabWidget::registerTab(); TabWidget::registerTab(); + TabWidget::registerTab(); } diff --git a/localmylist-management/tabs/clientlogtab.cpp b/localmylist-management/tabs/clientlogtab.cpp new file mode 100644 index 0000000..71ccb51 --- /dev/null +++ b/localmylist-management/tabs/clientlogtab.cpp @@ -0,0 +1,43 @@ +#include "clientlogtab.h" +#include "ui_clientlogtab.h" + +#include + +#include "mylist.h" + +ClientLogTab::ClientLogTab(QWidget *parent) : + AbstractTabBase(parent), + ui(new Ui::ClientLogTab) +{ + ui->setupUi(this); + setLabel(name()); +} + +ClientLogTab::~ClientLogTab() +{ + delete ui; +} + +QString ClientLogTab::staticId() +{ + return "client_log"; +} + +QString ClientLogTab::name() +{ + return tr("Client Log"); +} + +void ClientLogTab::init() +{ + connect(LocalMyList::instance(), SIGNAL(debugMessage(QString)), this, SLOT(appendMessage(QString))); + QString message = tr("Logging started at %1.").arg( + QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")); + ui->textBox->appendPlainText(message); +} + + +void ClientLogTab::appendMessage(const QString &message) +{ + ui->textBox->appendPlainText(message); +} diff --git a/localmylist-management/tabs/clientlogtab.h b/localmylist-management/tabs/clientlogtab.h new file mode 100644 index 0000000..65be1ed --- /dev/null +++ b/localmylist-management/tabs/clientlogtab.h @@ -0,0 +1,32 @@ +#ifndef CLIENTLOGTAB_H +#define CLIENTLOGTAB_H + +#include "abstracttab.h" + +#include + +namespace Ui { +class ClientLogTab; +} + +class ClientLogTab : public AbstractTabBase +{ + Q_OBJECT + +public: + explicit ClientLogTab(QWidget *parent = 0); + ~ClientLogTab(); + + static QString staticId(); + static QString name(); + + void init(); + +public slots: + void appendMessage(const QString &message); + +private: + Ui::ClientLogTab *ui; +}; + +#endif // CLIENTLOGTAB_H diff --git a/localmylist-management/tabs/clientlogtab.ui b/localmylist-management/tabs/clientlogtab.ui new file mode 100644 index 0000000..8542d67 --- /dev/null +++ b/localmylist-management/tabs/clientlogtab.ui @@ -0,0 +1,34 @@ + + + ClientLogTab + + + + 0 + 0 + 559 + 382 + + + + Form + + + + 0 + + + 0 + + + + + true + + + + + + + + diff --git a/localmylist/messagehandler.cpp b/localmylist/messagehandler.cpp index cffdcbd..874d4e9 100644 --- a/localmylist/messagehandler.cpp +++ b/localmylist/messagehandler.cpp @@ -5,6 +5,8 @@ #include #include +#include "mylist.h" + namespace LocalMyList { /* @@ -29,6 +31,11 @@ const char *messageType2Str(QtMsgType type) } } +auto debugMessageSignal = [](const QString &message) +{ + emit MyList::instance()->debugMessage(message); +}; + /* * messageHandler will try to format the debug message * and use Qt's default handlerto print it. @@ -64,6 +71,8 @@ void messageHandler(QtMsgType type, const QMessageLogContext &context, const QSt ctx); qtMessageHandler(type, context, message); + + debugMessageSignal(message); } #else void messageHandler(QtMsgType type, const char *msg) @@ -81,6 +90,8 @@ void messageHandler(QtMsgType type, const char *msg) // actually printing the message. qt_message_output(type, buf.constData()); qInstallMsgHandler(messageHandler); + + debugMessageSignal(message); } #endif diff --git a/localmylist/mylist.h b/localmylist/mylist.h index 31107d4..bf7a417 100644 --- a/localmylist/mylist.h +++ b/localmylist/mylist.h @@ -87,6 +87,7 @@ private slots: signals: void taskCountChanged(); void allTasksFinished(); + void debugMessage(const QString &message); private: DatabaseConnectionSettings dbs; -- 2.52.0