Skip to content
Extraits de code Groupes Projets
Valider 1655e89c rédigé par Elliu's avatar Elliu
Parcourir les fichiers

Use Ass::Line getters/setters instead of pointers

parent c54ee904
Branches
Aucune étiquette associée trouvée
1 requête de fusion!29Improve timingView with display of the ASS lines
...@@ -158,3 +158,9 @@ Line::getContentAsText() const noexcept ...@@ -158,3 +158,9 @@ Line::getContentAsText() const noexcept
{ {
return ___contentAsText; return ___contentAsText;
} }
void
Line::setContent(const QVector<Syl>& syls) noexcept
{
content = syls;
}
...@@ -43,6 +43,7 @@ public: ...@@ -43,6 +43,7 @@ public:
StyleProperties getStyleProperties() const noexcept; StyleProperties getStyleProperties() const noexcept;
StyleWeakPtr getStyle() const noexcept; StyleWeakPtr getStyle() const noexcept;
const QVector<Syl> &getContent() const noexcept; const QVector<Syl> &getContent() const noexcept;
void setContent(const QVector<Syl>&) noexcept;
QVector<Syl> *getContentPtr() noexcept; // FIXME: remove me QVector<Syl> *getContentPtr() noexcept; // FIXME: remove me
......
...@@ -112,7 +112,7 @@ qreal ...@@ -112,7 +112,7 @@ qreal
TimingLine::requestMove(int sepIndex, qreal x) TimingLine::requestMove(int sepIndex, qreal x)
{ {
QRectF sceneRect = mapRectFromScene(scene()->sceneRect()); QRectF sceneRect = mapRectFromScene(scene()->sceneRect());
QVector<Ass::Syl> *syls = line.getContentPtr(); QVector<Ass::Syl> syls = line.getContent();
qreal ret = x; qreal ret = x;
qreal mini, maxi; qreal mini, maxi;
...@@ -121,7 +121,7 @@ TimingLine::requestMove(int sepIndex, qreal x) ...@@ -121,7 +121,7 @@ TimingLine::requestMove(int sepIndex, qreal x)
prepareGeometryChange(); prepareGeometryChange();
mini = sceneRect.left(); mini = sceneRect.left();
maxi = sepIndex < syls->size() - 1 ? timingSyls[sepIndex + 1]->pos().x() maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
: TimingUtils::posFromMs(int(line.getDuration()) * 10); : TimingUtils::posFromMs(int(line.getDuration()) * 10);
if (ret < mini) if (ret < mini)
...@@ -132,14 +132,14 @@ TimingLine::requestMove(int sepIndex, qreal x) ...@@ -132,14 +132,14 @@ TimingLine::requestMove(int sepIndex, qreal x)
tempOffset = ret; tempOffset = ret;
quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - ret)) / 10); quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - ret)) / 10);
(*syls)[0].setDuration(dur1); syls[0].setDuration(dur1);
timingSyls[0]->setLen(dur1); timingSyls[0]->setLen(dur1);
timingSyls[0]->setPos(ret, 0); timingSyls[0]->setPos(ret, 0);
line.setStart( line.setStart(
quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10)); quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
} }
else if (sepIndex >= syls->size()) { else if (sepIndex >= syls.size()) {
prepareGeometryChange(); prepareGeometryChange();
mini = timingSyls[sepIndex - 1]->pos().x(); mini = timingSyls[sepIndex - 1]->pos().x();
...@@ -152,14 +152,14 @@ TimingLine::requestMove(int sepIndex, qreal x) ...@@ -152,14 +152,14 @@ TimingLine::requestMove(int sepIndex, qreal x)
quint64 dur2 = quint64 dur2 =
quint64(TimingUtils::msFromPos(int(ret - timingSyls[sepIndex - 1]->pos().x())) / 10); quint64(TimingUtils::msFromPos(int(ret - timingSyls[sepIndex - 1]->pos().x())) / 10);
(*syls)[sepIndex - 1].setDuration(dur2); syls[sepIndex - 1].setDuration(dur2);
timingSyls[sepIndex - 1]->setLen(dur2); timingSyls[sepIndex - 1]->setLen(dur2);
line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(ret)) / 10)); line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(ret)) / 10));
} }
else { else {
mini = timingSyls[sepIndex - 1]->pos().x(); mini = timingSyls[sepIndex - 1]->pos().x();
maxi = sepIndex < syls->size() - 1 ? timingSyls[sepIndex + 1]->pos().x() maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
: TimingUtils::posFromMs(int(line.getDuration() * 10)); : TimingUtils::posFromMs(int(line.getDuration() * 10));
if (ret < mini) if (ret < mini)
...@@ -167,7 +167,7 @@ TimingLine::requestMove(int sepIndex, qreal x) ...@@ -167,7 +167,7 @@ TimingLine::requestMove(int sepIndex, qreal x)
if (ret > maxi) if (ret > maxi)
ret = maxi; ret = maxi;
quint64 sumDur = (*syls)[sepIndex].getDuration() + (*syls)[sepIndex - 1].getDuration(); quint64 sumDur = syls[sepIndex].getDuration() + syls[sepIndex - 1].getDuration();
quint64 dur1 = quint64( quint64 dur1 = quint64(
TimingUtils::msFromPos(int(ret) - int(timingSyls[sepIndex - 1]->pos().x())) / 10); TimingUtils::msFromPos(int(ret) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
if (dur1 > sumDur) { if (dur1 > sumDur) {
...@@ -175,13 +175,15 @@ TimingLine::requestMove(int sepIndex, qreal x) ...@@ -175,13 +175,15 @@ TimingLine::requestMove(int sepIndex, qreal x)
} }
quint64 dur2 = sumDur - dur1; quint64 dur2 = sumDur - dur1;
(*syls)[sepIndex - 1].setDuration(dur1); syls[sepIndex - 1].setDuration(dur1);
(*syls)[sepIndex].setDuration(dur2); syls[sepIndex].setDuration(dur2);
timingSyls[sepIndex - 1]->setLen(dur1); timingSyls[sepIndex - 1]->setLen(dur1);
timingSyls[sepIndex]->setPos(ret, 0); timingSyls[sepIndex]->setPos(ret, 0);
timingSyls[sepIndex]->setLen(dur2); timingSyls[sepIndex]->setLen(dur2);
} }
line.setContent(syls);
return ret; return ret;
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter