~phablet-team/history-service/optimize_dbus_traffic

« back to all changes in this revision

Viewing changes to Ubuntu/History/historymodel.cpp

  • Committer: Renato Araujo Oliveira Filho
  • Date: 2017-02-07 20:44:26 UTC
  • Revision ID: renato.filho@canonical.com-20170207204426-m0f8y18fq3n3ww8u
Keep history model sorted if multiple fields are specified.

Show diffs side-by-side

added added

removed removed

Lines of Context:
415
415
 
416
416
bool HistoryModel::lessThan(const QVariantMap &left, const QVariantMap &right) const
417
417
{
418
 
    QVariant leftValue = left[sort()->sortField()];
419
 
    QVariant rightValue = right[sort()->sortField()];
420
 
 
421
 
    return leftValue < rightValue;
 
418
    QStringList leftFields = sort()->sortField().split(",");
 
419
    QStringList rightFields = sort()->sortField().split(",");
 
420
 
 
421
    while(!leftFields.isEmpty()) {
 
422
        QVariant leftValue = left[leftFields.takeFirst().trimmed()];
 
423
        QVariant rightValue = right[rightFields.takeFirst().trimmed()];
 
424
 
 
425
        if (leftValue != rightValue) {
 
426
            return leftValue < rightValue;
 
427
        }
 
428
    }
 
429
    return false;
422
430
}
423
431
 
424
432
int HistoryModel::positionForItem(const QVariantMap &item) const