File indexing completed on 2024-04-14 03:43:26

0001 /*
0002     SPDX-FileCopyrightText: 2012 Akarsh Simha <akarsh.simha@kdemail.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "sessionsortfilterproxymodel.h"
0008 
0009 #include <QTime>
0010 #include <QModelIndex>
0011 #include <QSortFilterProxyModel>
0012 
0013 SessionSortFilterProxyModel::SessionSortFilterProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
0014 {
0015 }
0016 
0017 bool SessionSortFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
0018 {
0019     QVariant leftData  = sourceModel()->data(left);
0020     QVariant rightData = sourceModel()->data(right);
0021     if (leftData.type() == QVariant::Time)
0022     {
0023         // We are sorting the observing time.
0024         return (leftData.toTime().addSecs(12 * 3600) <
0025                 rightData.toTime().addSecs(12 * 3600)); // Note that QTime wraps, so this should work.
0026     }
0027     else
0028     {
0029         // Do default sorting for now
0030         // TODO: Need to add sorting by RA / Dec / magnitude etc, although these are not as important
0031         return QSortFilterProxyModel::lessThan(left, right);
0032     }
0033 }