ui for output rows on nodes

This commit is contained in:
itsmattkc
2019-04-12 01:44:49 +10:00
parent a0f3ab2a6b
commit 83620173af
7 changed files with 271 additions and 205 deletions
+38 -29
View File
@@ -115,41 +115,50 @@ EffectUI::EffectUI(Effect* e) :
labels_.append(row_label);
layout_->addWidget(row_label, i, 0);
if (row->IsNodeOutput()) {
widgets_[i].resize(row->FieldCount());
QGridLayout* field_layout = new QGridLayout();
for (int j=0;j<row->FieldCount();j++) {
EffectField* field = row->Field(j);
QWidget* widget = field->CreateWidget();
widgets_[i][j] = widget;
field_layout->addWidget(widget, 0, j);
}
layout_->addLayout(field_layout, i, 1);
KeyframeNavigator* nav;
if (row->IsKeyframable()) {
nav = new KeyframeNavigator();
nav->enable_keyframes(row->IsKeyframing());
AttachKeyframeNavigationToRow(row, nav);
layout_->addWidget(nav, i, 2);
row_label->setAlignment(Qt::AlignRight);
layout_->addWidget(row_label, i, 2);
} else {
nav = nullptr;
layout_->addWidget(row_label, i, 0);
widgets_[i].resize(row->FieldCount());
QGridLayout* field_layout = new QGridLayout();
for (int j=0;j<row->FieldCount();j++) {
EffectField* field = row->Field(j);
QWidget* widget = field->CreateWidget();
widgets_[i][j] = widget;
field_layout->addWidget(widget, 0, j);
}
layout_->addLayout(field_layout, i, 1);
KeyframeNavigator* nav;
if (row->IsKeyframable()) {
nav = new KeyframeNavigator();
nav->enable_keyframes(row->IsKeyframing());
AttachKeyframeNavigationToRow(row, nav);
layout_->addWidget(nav, i, 2);
} else {
nav = nullptr;
}
keyframe_navigators_[i] = nav;
}
keyframe_navigators_[i] = nav;
}
enabled_check->setChecked(e->IsEnabled());
+7 -6
View File
@@ -14,7 +14,7 @@
#include "ui/effectui.h"
const int kRoundedRectRadius = 5;
const int kNodePlugSize = 6;
const int kNodePlugSize = 10;
NodeUI::NodeUI() :
central_widget_(nullptr)
@@ -117,15 +117,16 @@ QVector<QRectF> NodeUI::GetNodeSocketRects()
Effect* e = central_widget_->GetEffect();
for (int i=0;i<e->row_count();i++) {
if (e->row(i)->CanConnectNodes()) {
int y = central_widget_->GetRowY(i);
rects.append(QRectF(rect().x(),
EffectRow* row = e->row(i);
qreal x = (row->IsNodeOutput()) ? rect().right() - kNodePlugSize : rect().x();
int y = central_widget_->GetRowY(i);
if (row->IsNodeInput() || row->IsNodeOutput()) {
rects.append(QRectF(x,
proxy_->pos().y() + y - kNodePlugSize/2,
kNodePlugSize,
kNodePlugSize));
}
}
}