Skip to content

Commit

Permalink
Labels in custom contrast should have the right order
Browse files Browse the repository at this point in the history
  • Loading branch information
boutinb committed Jan 2, 2025
1 parent 17f9154 commit b518780
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
16 changes: 11 additions & 5 deletions CommonData/column.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -968,25 +968,31 @@ int Column::nonFilteredNumericsCount()
return _nonFilteredNumericsCount;
}

stringset Column::nonFilteredLevels()
stringvec Column::nonFilteredLevels()
{
if (_nonFilteredLevels.empty())
{
stringset levels;
for(size_t r=0; r<_data->rowCount(); r++)
if(_data->filter()->filtered()[r])
{
if(_ints[r] != Label::DOUBLE_LABEL_VALUE)
{
Label * label = labelByIntsId(_ints[r]);
if(label && !label->isEmptyValue())
_nonFilteredLevels.insert(label->label());
levels.insert(label->label());
}
else if(!isEmptyValue(_dbls[r]))
_nonFilteredLevels.insert(ColumnUtils::doubleToString(_dbls[r]));
levels.insert(ColumnUtils::doubleToString(_dbls[r]));
}
}

return _nonFilteredLevels;
// Use the right label order
for (Label* label : _labels)
if (levels.find(label->label()) != levels.end())
_nonFilteredLevels.push_back(label->label());
}

return _nonFilteredLevels;
}

void Column::nonFilteredCountersReset()
Expand Down
4 changes: 2 additions & 2 deletions CommonData/column.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class Column : public DataSetBaseNode
Label * labelDoubleDummy() { return _doubleDummy; }

int nonFilteredNumericsCount();
stringset nonFilteredLevels();
stringvec nonFilteredLevels();
void nonFilteredCountersReset();

std::set<size_t> labelsMoveRows(std::vector<qsizetype> rows, bool up);
Expand Down Expand Up @@ -262,7 +262,7 @@ class Column : public DataSetBaseNode
stringvec _labelsTemp; ///< Contains displaystring for labels. Used to allow people to edit "double" labels. Initialized when necessary
doublevec _labelsTempDbls;
strintmap _labelsTempToIndex;
stringset _nonFilteredLevels;
stringvec _nonFilteredLevels;
int _nonFilteredNumericsCount = -1;
bool _invalidated = false,
_autoSortByValue;
Expand Down
4 changes: 2 additions & 2 deletions Desktop/data/datasetpackage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ QVariant DataSetPackage::data(const QModelIndex &index, int role) const
case int(specialRoles::shadowDisplay): return tq(column->getShadow(index.row()));
case int(specialRoles::valuesDblList): return getColumnValuesAsDoubleList(getColumnIndex(column->name()));
case int(specialRoles::nonFilteredNumericValuesCount): return column->nonFilteredNumericsCount();
case int(specialRoles::nonFilteredLevels): return tql(column->nonFilteredLevels());
case int(specialRoles::nonFilteredLevels): return tq(column->nonFilteredLevels());
case int(specialRoles::computedColumnType): return int(column->codeType());
case int(specialRoles::columnPkgIndex): return index.column();
case int(specialRoles::lines):
Expand Down Expand Up @@ -551,7 +551,7 @@ QVariant DataSetPackage::data(const QModelIndex &index, int role) const
switch(role)
{
case int(specialRoles::nonFilteredNumericValuesCount): return column->nonFilteredNumericsCount();
case int(specialRoles::nonFilteredLevels): return tql(column->nonFilteredLevels());
case int(specialRoles::nonFilteredLevels): return tq(column->nonFilteredLevels());
case int(specialRoles::valuesDblList): return getColumnValuesAsDoubleList(getColumnIndex(column->name()));
case int(specialRoles::description): return index.row() >= labels.size() ? "" : tq(labels[index.row()]->description());
case int(specialRoles::filter): return index.row() >= labels.size() || labels[index.row()]->filterAllows();
Expand Down

0 comments on commit b518780

Please sign in to comment.