1/*
2 * wpa_gui - EventHistory class
3 * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
11 *
12 * See README and COPYING for more details.
13 */
14
15#include <QHeaderView>
16
17#include "eventhistory.h"
18
19
20int EventListModel::rowCount(const QModelIndex &) const
21{
22	return msgList.count();
23}
24
25
26int EventListModel::columnCount(const QModelIndex &) const
27{
28	return 2;
29}
30
31
32QVariant EventListModel::data(const QModelIndex &index, int role) const
33{
34	if (!index.isValid())
35		return QVariant();
36
37        if (role == Qt::DisplayRole)
38		if (index.column() == 0) {
39			if (index.row() >= timeList.size())
40				return QVariant();
41			return timeList.at(index.row());
42		} else {
43			if (index.row() >= msgList.size())
44				return QVariant();
45			return msgList.at(index.row());
46		}
47        else
48		return QVariant();
49}
50
51
52QVariant EventListModel::headerData(int section, Qt::Orientation orientation,
53				    int role) const
54{
55	if (role != Qt::DisplayRole)
56		return QVariant();
57
58	if (orientation == Qt::Horizontal) {
59		switch (section) {
60		case 0:
61			return QString("Timestamp");
62		case 1:
63			return QString("Message");
64		default:
65			return QVariant();
66		}
67	} else
68		return QString("%1").arg(section);
69}
70
71
72void EventListModel::addEvent(QString time, QString msg)
73{
74	beginInsertRows(QModelIndex(), msgList.size(), msgList.size() + 1);
75	timeList << time;
76	msgList << msg;
77	endInsertRows();
78}
79
80
81EventHistory::EventHistory(QWidget *parent, const char *, bool, Qt::WFlags)
82	: QDialog(parent)
83{
84	setupUi(this);
85
86	connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
87
88	elm = new EventListModel(parent);
89	eventListView->setModel(elm);
90}
91
92
93EventHistory::~EventHistory()
94{
95	destroy();
96	delete elm;
97}
98
99
100void EventHistory::languageChange()
101{
102	retranslateUi(this);
103}
104
105
106void EventHistory::addEvents(WpaMsgList msgs)
107{
108	WpaMsgList::iterator it;
109	for (it = msgs.begin(); it != msgs.end(); it++)
110		addEvent(*it);
111}
112
113
114void EventHistory::addEvent(WpaMsg msg)
115{
116	elm->addEvent(msg.getTimestamp().toString("yyyy-MM-dd hh:mm:ss.zzz"),
117		      msg.getMsg());
118#if QT_VERSION >= 0x040100
119	eventListView->resizeColumnsToContents();
120	eventListView->resizeRowsToContents();
121#endif
122}
123