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