]> Some of my projects - localmylist.git/commitdiff
Add basic log viewer tab.
authorAPTX <marek321@gmail.com>
Tue, 4 Jun 2013 17:27:56 +0000 (19:27 +0200)
committerAPTX <marek321@gmail.com>
Tue, 4 Jun 2013 17:27:56 +0000 (19:27 +0200)
localmylist-management/localmylist-management.pro
localmylist-management/registertabs.cpp
localmylist-management/tabs/databaselogtab.cpp [new file with mode: 0644]
localmylist-management/tabs/databaselogtab.h [new file with mode: 0644]
localmylist-management/tabs/databaselogtab.ui [new file with mode: 0644]

index 60ca22bfa11a4411ef61d9c3e7534c5697c1deb1..6801dbc7b576333f27ef0cd3a356ffe03f106c20 100644 (file)
@@ -25,7 +25,8 @@ SOURCES += main.cpp\
        tabs/reportstab.cpp \
        tabs/unknownfilestab.cpp \
        tabs/pendingrequesttab.cpp \
-       registertabs.cpp
+       registertabs.cpp \
+       tabs/databaselogtab.cpp
 
 HEADERS += mainwindow.h \
        databaseconnectiondialog.h \
@@ -41,7 +42,8 @@ HEADERS += mainwindow.h \
        tabs/searchtab.h \
        tabs/reportstab.h \
        tabs/unknownfilestab.h \
-       tabs/pendingrequesttab.h
+       tabs/pendingrequesttab.h \
+       tabs/databaselogtab.h
 
 FORMS += mainwindow.ui \
        databaseconnectiondialog.ui \
@@ -49,7 +51,8 @@ FORMS += mainwindow.ui \
        tabs/searchtab.ui \
        tabs/reportstab.ui \
        tabs/unknownfilestab.ui \
-       tabs/pendingrequesttab.ui
+       tabs/pendingrequesttab.ui \
+       tabs/databaselogtab.ui
 
 include(../localmylist.pri)
 include(qtsingleapplication/qtsingleapplication.pri)
index 1039af1384be99207b00226d39ac1b437371089e..bae47ec6b7c7587f637b82b17332746d6ec9ccf8 100644 (file)
@@ -4,6 +4,7 @@
 #include "tabs/reportstab.h"
 #include "tabs/unknownfilestab.h"
 #include "tabs/pendingrequesttab.h"
+#include "tabs/databaselogtab.h"
 
 void registerTabs()
 {
@@ -12,4 +13,5 @@ void registerTabs()
        TabWidget::registerTab<ReportsTab>();
        TabWidget::registerTab<UnknownFilesTab>();
        TabWidget::registerTab<PendingRequestTab>();
+       TabWidget::registerTab<DatabaseLogTab>();
 }
diff --git a/localmylist-management/tabs/databaselogtab.cpp b/localmylist-management/tabs/databaselogtab.cpp
new file mode 100644 (file)
index 0000000..34168a6
--- /dev/null
@@ -0,0 +1,58 @@
+#include "databaselogtab.h"
+#include "ui_databaselogtab.h"
+
+#include <QSqlQueryModel>
+
+#include "mylist.h"
+#include "database.h"
+
+DatabaseLogTab::DatabaseLogTab(QWidget *parent) :
+       AbstractTabBase(parent),
+       ui(new Ui::DatabaseLogTab)
+{
+       ui->setupUi(this);
+       setLabel(name());
+}
+
+DatabaseLogTab::~DatabaseLogTab()
+{
+       delete ui;
+}
+
+QString DatabaseLogTab::staticId()
+{
+       return "database_log";
+}
+
+QString DatabaseLogTab::name()
+{
+       return tr("Log");
+}
+
+void DatabaseLogTab::init()
+{
+       model = new QSqlQueryModel(this);
+       ui->view->setModel(model);
+       ui->view->setSelectionMode(QAbstractItemView::NoSelection);
+}
+
+void DatabaseLogTab::activate()
+{
+       reload();
+}
+
+void DatabaseLogTab::reload()
+{
+       QSqlQuery &q = LocalMyList::instance()->database()->prepare(
+       "SELECT log_id, log_time, log, type "
+       "       FROM log "
+       "       ORDER BY log_id DESC LIMIT 100 ");
+
+       LocalMyList::instance()->database()->exec(q);
+       model->setQuery(q);
+       ui->view->setColumnHidden(0, true);
+       model->setHeaderData(1, Qt::Horizontal, tr("Time"));
+       model->setHeaderData(2, Qt::Horizontal, tr("Message"));
+       model->setHeaderData(3, Qt::Horizontal, tr("Type"));
+       ui->view->resizeColumnsToContents();
+}
diff --git a/localmylist-management/tabs/databaselogtab.h b/localmylist-management/tabs/databaselogtab.h
new file mode 100644 (file)
index 0000000..4434283
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef DATABASELOGTAB_H
+#define DATABASELOGTAB_H
+
+#include "abstracttab.h"
+
+class QSqlQueryModel;
+
+namespace Ui {
+class DatabaseLogTab;
+}
+
+class DatabaseLogTab : public AbstractTabBase<DatabaseLogTab>
+{
+       Q_OBJECT
+
+public:
+       explicit DatabaseLogTab(QWidget *parent = 0);
+       ~DatabaseLogTab();
+
+       static QString staticId();
+       static QString name();
+
+       void init();
+       void activate();
+
+       void reload();
+
+private:
+       Ui::DatabaseLogTab *ui;
+
+       QSqlQueryModel *model;
+};
+
+#endif // DATABASELOGTAB_H
diff --git a/localmylist-management/tabs/databaselogtab.ui b/localmylist-management/tabs/databaselogtab.ui
new file mode 100644 (file)
index 0000000..18f1c8d
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DatabaseLogTab</class>
+ <widget class="QWidget" name="DatabaseLogTab">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QTableView" name="view"/>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>