Pith - whittle
whittle/src/ui/DiffTableModel.h [1.3 kb]
Modified: 19:51:46 130 026 (27 Jul 026)
0 Days Ago
#pragma once
#include "model/FileRecord.h"
#include <QAbstractTableModel>
#include <QHash>
#include <QList>
#include <QSet>

namespace whittle {

class DiffTableModel : public QAbstractTableModel {
    Q_OBJECT
public:
    enum Column { Name = 0, Size, Modified, TimeDiff, ColumnCount };

    explicit DiffTableModel(bool checkable, QObject* parent = nullptr);

    void setRows(QList<FileRecord> rows, QHash<QString, FileRecord> peer);

    QSet<QString> checkedPaths() const { return m_checked; }

    const FileRecord* recordAt(int row) const;

    void removeRecord(const QString& relPath);

    void setSkipped(const QSet<QString>& relPaths);

    int rowCount(const QModelIndex& = {}) const override;
    int columnCount(const QModelIndex& = {}) const override;
    QVariant data(const QModelIndex&, int role) const override;
    QVariant headerData(int, Qt::Orientation, int) const override;
    Qt::ItemFlags flags(const QModelIndex&) const override;
    bool setData(const QModelIndex&, const QVariant&, int role) override;
    void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;

private:
    void applySort();

    bool m_checkable;
    QList<FileRecord> m_rows;
    QHash<QString, FileRecord> m_peer;
    QSet<QString> m_checked;
    QSet<QString> m_skipped;
    int m_sortColumn = Name;
    Qt::SortOrder m_sortOrder = Qt::AscendingOrder;
};

} 
Updates
Whittle - Linux 130.026
Wedge - Android 126.026
Wedge - Linux 124.026
Shim - Android 117.026
Miter - 114.026
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Peen (Messaging)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)