Home | History | Annotate | Download | only in wpa_gui-qt4
      1 /*
      2  * wpa_gui - EventHistory class
      3  * Copyright (c) 2005-2006, Jouni Malinen <j (at) 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 
     20 int EventListModel::rowCount(const QModelIndex &) const
     21 {
     22 	return msgList.count();
     23 }
     24 
     25 
     26 int EventListModel::columnCount(const QModelIndex &) const
     27 {
     28 	return 2;
     29 }
     30 
     31 
     32 QVariant 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 
     52 QVariant 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 
     72 void 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 
     81 EventHistory::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 
     93 EventHistory::~EventHistory()
     94 {
     95 	destroy();
     96 	delete elm;
     97 }
     98 
     99 
    100 void EventHistory::languageChange()
    101 {
    102 	retranslateUi(this);
    103 }
    104 
    105 
    106 void EventHistory::addEvents(WpaMsgList msgs)
    107 {
    108 	WpaMsgList::iterator it;
    109 	for (it = msgs.begin(); it != msgs.end(); it++)
    110 		addEvent(*it);
    111 }
    112 
    113 
    114 void 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