Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 0c4487505c1b9c6170f37c22e56f4fcc98f49a8d
  • master par défaut
  • script
  • new-devel
  • devel
  • timingView-edit
  • fix-mpv
7 résultats

AssLinesModel.hh

Blame
  • AssLinesModel.hh 1,65 Kio
    #pragma once
    
    #include "PreCompiledHeaders.hh"
    #include "Lib/Utils.hh"
    #include "Lib/Ass/Ass.hh"
    
    namespace Vivy
    {
    class AssLinesModel final : public QAbstractItemModel {
        Q_OBJECT
        VIVY_UNMOVABLE_OBJECT(AssLinesModel)
    
    private:
        class Item final {
            VIVY_UNMOVABLE_OBJECT(Item)
    
        public:
            Item(Ass::LineWeakPtr linePtr) noexcept;
            ~Item() noexcept = default;
    
            enum class Field : int {
                Text,
                TotalFieldCount // Last, the count
            };
    
            bool getIsComment() const noexcept;
            quint64 getLineNumber() const noexcept;
            QString getLineText() const noexcept;
            QString getLineStyle() const noexcept;
    
        private:
            Ass::LineWeakPtr line;
        };
    
        static inline const QStringList headers{ "", "Style", "Text" };
    
    public:
        explicit AssLinesModel(const QVector<Ass::LinePtr> &) noexcept;
        ~AssLinesModel() noexcept override;
    
        QVariant data(const QModelIndex &, int role) const noexcept override;
        bool setData(const QModelIndex &, const QVariant &v, int r = Qt::EditRole) noexcept override;
    
        QVariant headerData(int section, Qt::Orientation, int r) const noexcept override;
        QModelIndex parent(const QModelIndex &) const noexcept override;
        QModelIndex index(int, int, const QModelIndex &parent = QModelIndex()) const noexcept override;
    
        int rowCount(const QModelIndex &parent = QModelIndex()) const noexcept override;
        int columnCount(const QModelIndex &parent = QModelIndex()) const noexcept override;
    
        Qt::ItemFlags flags(const QModelIndex &) const noexcept override;
    
    private:
        QVector<Item *> childs;
        const QVector<Ass::LinePtr> &lineRealData;
    };
    }