Skip to content

Commit 0feaf40

Browse files
committed
Merge branch 'main' into parent-influence-v3
2 parents 55386c3 + 9fd8032 commit 0feaf40

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+965
-153
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ quazip
1515
snapshots
1616
.vscode
1717
build-*
18-
*.diff
1918
*.patch
2019
ffmpeg
2120
*.7z

src/app/GUI/graphboxeslist.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,18 +488,19 @@ void KeysView::graphDeletePressed() {
488488
mGPressedPoint = nullptr;
489489
}
490490

491-
void KeysView::graphWheelEvent(QWheelEvent *event)
491+
void KeysView::graphWheelEvent(QWheelEvent *event,
492+
const qreal &hframe)
492493
{
493494
#ifdef Q_OS_MAC
494495
if (event->angleDelta().y() == 0) { return; }
495496
#endif
496497
const bool ctrl = (event->modifiers() & Qt::ControlModifier);
497498
const bool shift = (event->modifiers() & Qt::ShiftModifier);
498499
if (ctrl && !shift) {
499-
emit wheelEventSignal(event);
500+
emit wheelEventSignal(event, hframe);
500501
return;
501502
} else if (ctrl || shift) {
502-
if (ctrl) { emit wheelEventSignal(event); }
503+
if (ctrl) { emit wheelEventSignal(event, hframe); }
503504
qreal valUnderMouse;
504505
qreal frame;
505506
const auto ePos = event->position();

src/app/GUI/keysview.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ void KeysView::middleMove(const QPointF &movePos) {
136136
const int roundX = qRound(diffFrame);
137137
setFramesRange({mSavedMinViewedFrame - roundX,
138138
mSavedMaxViewedFrame - roundX});
139+
140+
emit changedViewedFrames({mMinViewedFrame, mMaxViewedFrame});
139141
}
140142

141143
void KeysView::deleteSelectedKeys() {
@@ -239,10 +241,16 @@ void KeysView::wheelEvent(QWheelEvent *e)
239241
if (mPanEvent) { emit panEventSignal(e); }
240242
}
241243
#endif
244+
245+
const QPoint pos = e->pos();
246+
const QPoint posU = pos + QPoint(-eSizesUI::widget/2, 0);
247+
const qreal currentHoverFrame = static_cast<qreal>(posU.x()) / mPixelsPerFrame + mMinViewedFrame;
248+
// qDebug() << "currentHoverFrame" << currentHoverFrame;
249+
242250
if (mGraphViewed) {
243-
if (!mPanEvent) { graphWheelEvent(e); }
251+
if (!mPanEvent) { graphWheelEvent(e, currentHoverFrame); }
244252
} else {
245-
if (!mPanEvent) { emit wheelEventSignal(e); }
253+
if (!mPanEvent) { emit wheelEventSignal(e, currentHoverFrame); }
246254
if (mSelecting) {
247255
const QPointF posU = mapFromGlobal(QCursor::pos()) +
248256
QPointF(-eSizesUI::widget/2, 0.);
@@ -507,7 +515,12 @@ bool KeysView::event(QEvent *e)
507515
auto g = dynamic_cast<QNativeGestureEvent*>(e);
508516
if (g->gestureType() == Qt::ZoomNativeGesture ||
509517
g->gestureType() == Qt::SmartZoomNativeGesture) {
510-
emit nativeEventSignal(g);
518+
const QPoint globalMousePos = QCursor::pos();
519+
const QPoint localMousePos = mapFromGlobal(globalMousePos);
520+
const QPoint posU = localMousePos + QPoint(-eSizesUI::widget/2, 0);
521+
const qreal currentHoverFrame = static_cast<qreal>(posU.x()) / mPixelsPerFrame + mMinViewedFrame;
522+
// qDebug() << "currentHoverFrame" << currentHoverFrame;
523+
emit nativeEventSignal(g, currentHoverFrame);
511524
return true;
512525
}
513526
}

src/app/GUI/keysview.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ class KeysView : public QWidget, public KeyFocusTarget {
8888
// graph
8989

9090
void graphPaint(QPainter *p);
91-
void graphWheelEvent(QWheelEvent *event);
91+
void graphWheelEvent(QWheelEvent *event,
92+
const qreal &hframe);
9293
bool graphProcessFilteredKeyEvent(QKeyEvent *event);
9394
void graphResizeEvent(QResizeEvent *);
9495
void graphAddViewedAnimator(GraphAnimator * const animator);
@@ -145,11 +146,13 @@ class KeysView : public QWidget, public KeyFocusTarget {
145146
void dragMoveEvent(QDragMoveEvent *event);
146147
signals:
147148
void changedViewedFrames(FrameRange);
148-
void wheelEventSignal(QWheelEvent*);
149+
void wheelEventSignal(QWheelEvent *e,
150+
const qreal &frame);
149151
void statusMessage(const QString &message);
150152

151153
#ifdef Q_OS_MAC
152-
void nativeEventSignal(QNativeGestureEvent *e);
154+
void nativeEventSignal(QNativeGestureEvent *e,
155+
const qreal &frame);
153156
void panEventSignal(QWheelEvent *e);
154157
#endif
155158

src/app/GUI/timelinedockwidget.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ TimelineDockWidget::TimelineDockWidget(Document& document,
6363
, mRenderProgressAct(nullptr)
6464
, mRenderProgress(nullptr)
6565
, mStepPreviewTimer(nullptr)
66+
, mPausedPreviewState({false, 0})
6667
{
6768
connect(RenderHandler::sInstance, &RenderHandler::previewFinished,
6869
this, &TimelineDockWidget::previewFinished);
@@ -438,6 +439,7 @@ bool TimelineDockWidget::processKeyPress(QKeyEvent *event)
438439

439440
void TimelineDockWidget::previewFinished()
440441
{
442+
mPausedPreviewState.first = false;
441443
if (const auto scene = *mDocument.fActiveScene) {
442444
scene->setGizmosSuppressed(false);
443445
}
@@ -490,6 +492,8 @@ void TimelineDockWidget::previewBeingRendered()
490492

491493
void TimelineDockWidget::previewPaused()
492494
{
495+
mPausedPreviewState = {true, mDocument.getActiveSceneFrame()};
496+
493497
if (const auto scene = *mDocument.fActiveScene) {
494498
scene->setGizmosSuppressed(false);
495499
}
@@ -543,6 +547,14 @@ bool TimelineDockWidget::setPrevKeyframe()
543547
void TimelineDockWidget::resumePreview()
544548
{
545549
if (eSettings::instance().fPreviewCache) {
550+
if (mPausedPreviewState.first) {
551+
const int frame = mDocument.getActiveSceneFrame();
552+
if (mPausedPreviewState.second != frame) {
553+
qDebug() << "set new start frame for preview" << frame;
554+
RenderHandler::sInstance->setPreviewFrame(frame);
555+
mPausedPreviewState.first = false;
556+
}
557+
}
546558
RenderHandler::sInstance->resumePreview();
547559
} else { setStepPreviewStart(); }
548560
}

src/app/GUI/timelinedockwidget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ class TimelineDockWidget : public QWidget
141141

142142
QList<TimelineWidget*> mTimelineWidgets;
143143
//AnimationDockWidget *mAnimationDockWidget;
144+
145+
QPair<bool,int> mPausedPreviewState;
144146
};
145147

146148
#endif // BOXESLISTANIMATIONDOCKWIDGET_H

src/app/GUI/timelinewidget.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,10 +325,13 @@ void TimelineWidget::setCurrentScene(Canvas * const scene) {
325325
mBoxesListWidget->setCurrentScene(scene);
326326
mKeysView->setCurrentScene(scene);
327327
if(scene) {
328-
setCanvasFrameRange(scene->getFrameRange());
328+
const auto range = scene->getFrameRange();
329+
setCanvasFrameRange(range);
329330
mFrameScrollBar->setFirstViewedFrame(scene->getCurrentFrame());
330331
mFrameRangeScrollBar->setFirstViewedFrame(scene->getCurrentFrame());
331-
setViewedFrameRange(mFrameRangeScrollBar->getViewedRange());
332+
const int padding = 2;
333+
const FrameRange newRange = {range.fMin - padding, range.fMax + padding};
334+
setViewedFrameRange(newRange);
332335

333336
connect(scene, &Canvas::currentFrameChanged,
334337
mFrameScrollBar, &FrameScrollBar::setFirstViewedFrame);

src/app/friction.qss

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ QToolButton::menu-button {
295295

296296
QPushButton::menu-indicator,
297297
QToolButton#ToolButton::menu-indicator,
298+
QPushButton#NoButton::menu-indicator,
298299
QToolButton#FlatButton::menu-indicator { width: 0px; }
299300

300301
QLineEdit#SearchLine {
@@ -341,15 +342,17 @@ QPushButton#WelcomeRecentButton:hover {
341342

342343
QPushButton#FlatButton,
343344
QPushButton#AboutButton,
344-
QToolButton#FlatButton {
345+
QToolButton#FlatButton,
346+
QPushButton#NoButton {
345347
background-color: none;
346348
border: 0;
347349
border-radius: 2%;
348350
}
349351

350352
QPushButton#FlatButton,
351353
QPushButton#AboutButton,
352-
QToolButton#FlatButton {
354+
QToolButton#FlatButton,
355+
QPushButton#NoButton {
353356
border-radius: 2%;
354357
}
355358

@@ -359,6 +362,10 @@ QToolButton#FlatButton:hover {
359362
border-color: rgb(104, 144, 206);
360363
}
361364

365+
QPushButton#NoButton:hover {
366+
background-color: none;
367+
}
368+
362369
QPushButton#AboutButton:hover {
363370
background-color: none;
364371
}

src/app/icons

Submodule icons updated 491 files

src/app/renderhandler.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ void RenderHandler::renderFromSettings(RenderInstanceSettings * const settings)
120120
}
121121
}
122122

123+
void RenderHandler::setPreviewFrame(const int &frame)
124+
{
125+
mCurrentPreviewFrame = frame;
126+
}
127+
123128
void RenderHandler::setLoop(const bool loop) {
124129
mLoop = loop;
125130
}

0 commit comments

Comments
 (0)