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

TimingLine.cc

Blame
  • TimingLine.cc 1,55 Kio
    #include "TimingLine.hh"
    
    #include <QPainter>
    #include <QGraphicsScene>
    
    #include "TimingUtils.hh"
    #include "TimingSyl.hh"
    #include "TimingSeparator.hh"
    
    using namespace Vivy;
    
    TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
        : QGraphicsObject(parent)
          , line(*lineptr)
    {
        setPos(TimingUtils::posFromMs(int(line.getStart())*10), TimingUtils::axisHeight());
        int currentTime = 0;
        QVector<Ass::Syl> syls = line.getContent();
        for (int i = 0; i < syls.size(); ++i){
            int endSyl = currentTime + 10 * int(syls.at(i).getDuration());
    
            TimingSyl* timingSyl = new TimingSyl(syls.at(i), currentTime, this);
    
            // TODO: Here create the TimingSeparator and connect
            TimingSeparator* timingSeparatorStart = new TimingSeparator(currentTime, i != 0 ? TimingSeparator::SeparatorStyle::Middle : TimingSeparator::SeparatorStyle::Start, this);
            TimingSeparator* timingSeparatorEnd = new TimingSeparator(i != syls.size()-1 ? endSyl : int(10*line.getDuration()), i != syls.size()-1 ? TimingSeparator::SeparatorStyle::Middle : TimingSeparator::SeparatorStyle::End, this);
    
            currentTime = endSyl;
        }
    }
    
    QRectF
    TimingLine::boundingRect() const
    {
        return QRectF(0, 0, TimingUtils::posFromMs(int(10*(line.getEnd()-line.getStart()))), TimingUtils::audioHeight());
    }
    
    void
    TimingLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
    {
        painter->fillRect(QRectF(0, 0, TimingUtils::posFromMs(int(10*(line.getEnd()-line.getStart()))), TimingUtils::audioHeight()), QColor(0, 255, 255, 50));
    }