diff --git a/src/RideCacheModel.cpp b/src/RideCacheModel.cpp index fe0b78869..0d3d2dcc4 100644 --- a/src/RideCacheModel.cpp +++ b/src/RideCacheModel.cpp @@ -174,6 +174,7 @@ RideCacheModel::configChanged(qint32) // 5 bool isRun; columns_ = 5 + factory->metricCount() + metadata.count(); + headings_.clear(); for (int section=0; sectiondoItemsLayout(); + columnsChanged(); } diff --git a/src/RideNavigatorProxy.h b/src/RideNavigatorProxy.h index cb5119547..1196cb8e4 100644 --- a/src/RideNavigatorProxy.h +++ b/src/RideNavigatorProxy.h @@ -63,6 +63,7 @@ private: }; RideNavigator *rideNavigator; + QAbstractItemModel *model; int groupBy; int calendarText; int colorColumn; @@ -103,9 +104,7 @@ public: } ~GroupByModel() {} - void setSourceModel(QAbstractItemModel *model) { - QAbstractProxyModel::setSourceModel(model); - setGroupBy(groupBy); + void setIndexes() { // find the Calendar TextColumn calendarText = -1; @@ -134,6 +133,14 @@ public: } starttimeHeader = "ride_time"; //initialisation with techname } + } + + void setSourceModel(QAbstractItemModel *model) { + + this->model=model; + QAbstractProxyModel::setSourceModel(model); + setGroupBy(groupBy); + setIndexes(); connect(model, SIGNAL(modelReset()), this, SLOT(sourceModelChanged())); connect(model, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(sourceModelChanged())); @@ -279,7 +286,6 @@ public: int groupNo = ((QModelIndex*)proxyIndex.internalPointer())->row(); if (groupNo < 0 || groupNo >= groups.count() || proxyIndex.column() == 0) returning=""; else string = sourceModel()->data(sourceModel()->index(groupToSourceRow.value(groups[groupNo])->at(proxyIndex.row()), calendarText)).toString(); - // get rid of cr, lf and tab chars string.replace("\n", " "); string.replace("\t", " "); @@ -578,12 +584,17 @@ public slots: clearGroups(); setGroupBy(groupBy+2); // accommodate virtual columns + setIndexes(); endResetModel();// we're clean // lets expand column 0 for the groupBy heading for (int i=0; i < groupCount(); i++) rideNavigator->tableView->setFirstColumnSpanned(i, QModelIndex(), true); + + // reset the view + rideNavigator->resetView(); + // now show em rideNavigator->tableView->expandAll(); }