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

Minor rename/cleaning

parent 1655e89c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!29Improve timingView with display of the ASS lines
......@@ -160,7 +160,7 @@ Line::getContentAsText() const noexcept
}
void
Line::setContent(const QVector<Syl>& syls) noexcept
Line::setContent(const QVector<Syl> &syls) noexcept
{
content = syls;
}
......@@ -43,7 +43,7 @@ public:
StyleProperties getStyleProperties() const noexcept;
StyleWeakPtr getStyle() const noexcept;
const QVector<Syl> &getContent() const noexcept;
void setContent(const QVector<Syl>&) noexcept;
void setContent(const QVector<Syl> &) noexcept;
QVector<Syl> *getContentPtr() noexcept; // FIXME: remove me
......
......@@ -7,6 +7,11 @@
using namespace Vivy;
#define CONNECT_SEP(sep) \
connect(sep, &TimingSeparator::positionChanged, this, &TimingLine::timingSeparatorHasChanged); \
connect(sep, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress); \
connect(sep, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
: QGraphicsObject(parent)
, line(*lineptr)
......@@ -19,10 +24,7 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
TimingSeparator *timingSeparatorStart =
new TimingSeparator(currentTime, 0, TimingSeparator::SeparatorStyle::Start, this);
seps.append(timingSeparatorStart);
connect(timingSeparatorStart, &TimingSeparator::positionChanged, this,
&TimingLine::timingSeparatorHasChanged);
connect(timingSeparatorStart, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress);
connect(timingSeparatorStart, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
CONNECT_SEP(timingSeparatorStart);
QVector<Ass::Syl> syls = line.getContent();
for (i = 0; i < syls.size(); ++i) {
......@@ -31,16 +33,11 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
TimingSyl *timingSyl = new TimingSyl(syls.at(i), currentTime, this);
timingSyls.append(timingSyl);
// TODO: Here create the TimingSeparator and connect
if (i != 0) {
TimingSeparator *timingSeparator =
new TimingSeparator(currentTime, i, TimingSeparator::SeparatorStyle::Middle, this);
seps.append(timingSeparator);
connect(timingSeparator, &TimingSeparator::positionChanged, this,
&TimingLine::timingSeparatorHasChanged);
connect(timingSeparator, &TimingSeparator::enterPress, this,
&TimingLine::sepEnterPress);
connect(timingSeparator, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
CONNECT_SEP(timingSeparator);
}
currentTime = endSyl;
......@@ -49,11 +46,9 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
TimingSeparator *timingSeparatorEnd =
new TimingSeparator(currentTime, i, TimingSeparator::SeparatorStyle::End, this);
seps.append(timingSeparatorEnd);
connect(timingSeparatorEnd, &TimingSeparator::positionChanged, this,
&TimingLine::timingSeparatorHasChanged);
connect(timingSeparatorEnd, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress);
connect(timingSeparatorEnd, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
CONNECT_SEP(timingSeparatorEnd);
}
#undef CONNECT_SEP
QRectF
TimingLine::boundingRect() const
......@@ -66,11 +61,10 @@ TimingLine::boundingRect() const
void
TimingLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->fillRect(
QRectF(tempOffset, 0,
TimingUtils::posFromMs(int(10 * (line.getEnd() - line.getStart()))),
TimingUtils::audioHeight()),
QColor(0, 255, 255, 50));
painter->fillRect(QRectF(tempOffset, 0,
TimingUtils::posFromMs(int(10 * (line.getEnd() - line.getStart()))),
TimingUtils::audioHeight()),
QColor(0, 255, 255, 50));
}
void
......@@ -111,10 +105,10 @@ TimingLine::sepExitPress(int sepIndex)
qreal
TimingLine::requestMove(int sepIndex, qreal x)
{
QRectF sceneRect = mapRectFromScene(scene()->sceneRect());
QRectF sceneRect = mapRectFromScene(scene()->sceneRect());
QVector<Ass::Syl> syls = line.getContent();
qreal ret = x;
qreal given = x;
qreal mini, maxi;
if (sepIndex <= 0) {
......@@ -122,68 +116,53 @@ TimingLine::requestMove(int sepIndex, qreal x)
mini = sceneRect.left();
maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
: TimingUtils::posFromMs(int(line.getDuration()) * 10);
if (ret < mini)
ret = mini;
if (ret > maxi)
ret = maxi;
: TimingUtils::posFromMs(int(line.getDuration()) * 10);
tempOffset = ret;
given = qBound(mini, given, maxi);
tempOffset = given;
quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - ret)) / 10);
quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - given)) / 10);
syls[0].setDuration(dur1);
timingSyls[0]->setLen(dur1);
timingSyls[0]->setPos(ret, 0);
line.setStart(
quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
timingSyls[0]->setPos(given, 0);
line.setStart(quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
}
else if (sepIndex >= syls.size()) {
prepareGeometryChange();
mini = timingSyls[sepIndex - 1]->pos().x();
maxi = sceneRect.right();
if (ret < mini)
ret = mini;
if (ret > maxi)
ret = maxi;
mini = timingSyls[sepIndex - 1]->pos().x();
maxi = sceneRect.right();
given = qBound(mini, given, maxi);
quint64 dur2 =
quint64(TimingUtils::msFromPos(int(ret - timingSyls[sepIndex - 1]->pos().x())) / 10);
quint64(TimingUtils::msFromPos(int(given - timingSyls[sepIndex - 1]->pos().x())) / 10);
syls[sepIndex - 1].setDuration(dur2);
timingSyls[sepIndex - 1]->setLen(dur2);
line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(ret)) / 10));
line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(given)) / 10));
}
else {
mini = timingSyls[sepIndex - 1]->pos().x();
maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
mini = timingSyls[sepIndex - 1]->pos().x();
maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
: TimingUtils::posFromMs(int(line.getDuration() * 10));
if (ret < mini)
ret = mini;
if (ret > maxi)
ret = maxi;
given = qBound(mini, given, maxi);
quint64 sumDur = syls[sepIndex].getDuration() + syls[sepIndex - 1].getDuration();
quint64 dur1 = quint64(
TimingUtils::msFromPos(int(ret) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
if (dur1 > sumDur) {
dur1 = sumDur;
}
TimingUtils::msFromPos(int(given) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
dur1 = qMin(dur1, sumDur);
quint64 dur2 = sumDur - dur1;
syls[sepIndex - 1].setDuration(dur1);
syls[sepIndex].setDuration(dur2);
timingSyls[sepIndex - 1]->setLen(dur1);
timingSyls[sepIndex]->setPos(ret, 0);
timingSyls[sepIndex]->setPos(given, 0);
timingSyls[sepIndex]->setLen(dur2);
}
line.setContent(syls);
return ret;
return given;
}
......@@ -15,7 +15,6 @@ TimingSeparator::TimingSeparator(int time, int index, SeparatorStyle style_, Tim
, sepIndex(index)
, parentTimingLine(parent)
{
qDebug() << time;
setPos(TimingUtils::posFromMs(time), 0);
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter