shapenode: added gizmos

This commit is contained in:
itsmattkc
2021-09-22 01:45:05 -07:00
parent 2ea29f9ea9
commit 401f8d394c
20 changed files with 340 additions and 52 deletions
@@ -253,7 +253,10 @@ void NodeParamViewWidgetBridge::ProcessSlider(NumericSliderBase *slider, const Q
// We were dragging and just stopped
dragger_.Drag(value);
dragger_.End();
MultiUndoCommand *command = new MultiUndoCommand();
dragger_.End(command);
Core::instance()->undo_stack()->push(command);
} else {
@@ -404,7 +407,6 @@ void NodeParamViewWidgetBridge::CreateSliders(int count)
T* fs = new T();
fs->SliderBase::SetDefaultValue(input_.GetSplitDefaultValueForTrack(i));
fs->SetLadderElementCount(2);
fs->SetIsEffectsSlider(true);
widgets_.append(fs);
connect(fs, &T::ValueChanged, this, &NodeParamViewWidgetBridge::WidgetCallback);
}
+1 -10
View File
@@ -37,8 +37,7 @@ NumericSliderBase::NumericSliderBase(QWidget *parent) :
has_max_(false),
dragged_diff_(0),
drag_multiplier_(1.0),
setting_drag_value_(false),
is_effects_slider_(false)
setting_drag_value_(false)
{
// Numeric sliders are draggable, so we have a cursor that indicates that
setCursor(Qt::SizeHorCursor);
@@ -64,10 +63,6 @@ void NumericSliderBase::LabelPressed()
connect(drag_ladder_, &SliderLadder::DraggedByValue, this, &NumericSliderBase::LadderDragged);
connect(drag_ladder_, &SliderLadder::Released, this, &NumericSliderBase::LadderReleased);
if (is_effects_slider_) {
SetEffectsSliderIsBeingDragged(true);
}
}
void NumericSliderBase::LadderDragged(int value, double multiplier)
@@ -98,10 +93,6 @@ void NumericSliderBase::LadderDragged(int value, double multiplier)
void NumericSliderBase::LadderReleased()
{
if (is_effects_slider_) {
SetEffectsSliderIsBeingDragged(false);
}
drag_ladder_->deleteLater();
drag_ladder_ = nullptr;
dragged_diff_ = 0;
@@ -42,11 +42,6 @@ public:
bool IsDragging() const;
void SetIsEffectsSlider(bool e) {is_effects_slider_ = e;}
static bool IsEffectsSliderBeingDragged() { return effects_slider_is_being_dragged_; }
void SetEffectsSliderIsBeingDragged(bool e) { effects_slider_is_being_dragged_ = e; }
protected:
const QVariant& GetOffset() const
{
@@ -92,8 +87,6 @@ private:
bool setting_drag_value_;
bool is_effects_slider_;
/**
* @brief An effects slider somewhere is being dragged
*/
+5
View File
@@ -22,6 +22,7 @@
#include "core.h"
#include "node/block/subtitle/subtitle.h"
#include "node/factory.h"
#include "node/generator/shape/shapenode.h"
#include "node/generator/solid/solid.h"
#include "node/generator/text/text.h"
#include "widget/timelinewidget/timelinewidget.h"
@@ -51,6 +52,7 @@ void AddTool::MousePress(TimelineViewMouseEvent *event)
case olive::Tool::kAddableBars:
case olive::Tool::kAddableSolid:
case olive::Tool::kAddableTitle:
case olive::Tool::kAddableShape:
add_type = Track::kVideo;
break;
case olive::Tool::kAddableTone:
@@ -131,6 +133,9 @@ void AddTool::MouseRelease(TimelineViewMouseEvent *event)
node_to_add = new SolidGenerator();
break;
}
case olive::Tool::kAddableShape:
node_to_add = new ShapeNode();
break;
case olive::Tool::kAddableTitle:
{
node_to_add = new TextGenerator();
+2 -1
View File
@@ -246,7 +246,8 @@ void ViewerDisplayWidget::mouseMoveEvent(QMouseEvent *event)
// Signal movement
gizmos_->GizmoMove(TransformViewerSpaceToBufferSpace(event->pos()),
gizmo_drag_time_);
gizmo_drag_time_,
event->modifiers());
gizmo_start_drag_ = event->pos();
update();