optimization

This commit is contained in:
canpadawan
2016-07-08 11:02:23 +02:00
parent 5162769712
commit d36b437239
2 changed files with 51 additions and 50 deletions
+3 -3
View File
@@ -4,9 +4,9 @@
SnifferItem::SnifferItem(const CANFrame& pFrame): SnifferItem::SnifferItem(const CANFrame& pFrame):
mNotch(0) mNotch(0),
mID(pFrame.ID)
{ {
mID = pFrame.ID;
mMarker = {0,0}; mMarker = {0,0};
mLastMarker = {0,0}; mLastMarker = {0,0};
/* that's dirty */ /* that's dirty */
@@ -65,7 +65,7 @@ void SnifferItem::update(const CANFrame& pFrame)
/* update marker */ /* update marker */
mMarker.data |= mLast.data ^ mCurrent.data; mMarker.data |= mLast.data ^ mCurrent.data;
mMarker.len |= mLast.len ^ mCurrent.data; mMarker.len |= mLast.len ^ mCurrent.len;
/* restart timeout */ /* restart timeout */
mTime.restart(); mTime.restart();
+12 -11
View File
@@ -11,7 +11,9 @@ SnifferModel::SnifferModel(QObject *parent)
SnifferModel::~SnifferModel() SnifferModel::~SnifferModel()
{ {
clear(); qDeleteAll(mMap);
mMap.clear();
mFilters.clear();
} }
@@ -33,12 +35,8 @@ QVariant SnifferModel::data(const QModelIndex &index, int role) const
if (!index.isValid()) if (!index.isValid())
return QVariant(); return QVariant();
const QMap<quint32, SnifferItem*>& map = mFilter ? mFilters : mMap; SnifferItem *item = static_cast<SnifferItem*>(index.internalPointer());
if(!item) QVariant();
if(index.row()<=map.size())
{
quint64 key = map.keys()[index.row()];
SnifferItem* item = map[key];
int col = index.column(); int col = index.column();
@@ -86,7 +84,6 @@ QVariant SnifferModel::data(const QModelIndex &index, int role) const
break; break;
} }
} }
}
return QVariant(); return QVariant();
} }
@@ -122,8 +119,7 @@ QVariant SnifferModel::headerData(int section, Qt::Orientation orientation, int
} }
QModelIndex SnifferModel::index(int row, int column, const QModelIndex &parent) QModelIndex SnifferModel::index(int row, int column, const QModelIndex &parent) const
const
{ {
if (parent.isValid()) if (parent.isValid())
return QModelIndex(); return QModelIndex();
@@ -133,7 +129,12 @@ QModelIndex SnifferModel::index(int row, int column, const QModelIndex &parent)
if(column>tc::LAST || row>=map.size()) if(column>tc::LAST || row>=map.size())
return QModelIndex(); return QModelIndex();
return createIndex(row, column); /* ugly but I can't find best without creating a list to keep indexes */
QMap<quint32, SnifferItem*>::const_iterator iter;
int i;
for(iter = map.begin(), i=0 ; i<row ; ++i, ++iter);
return createIndex(row, column, iter.value());
} }