mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-04-15 12:09:33 -04:00
UI: Change transform value 'scale' to 'size'
There's no reason to represent this value in terms of scale. Scale is a useless value for users to use. What are they going to enter, 0.5? 2.0? 0.25? Even if it can be subject to change by the source itself, and even if it's still converted to scale internally, having it display the base source size value is much more ideal for the user.
This commit is contained in:
@@ -44,8 +44,8 @@ OBSBasicTransform::OBSBasicTransform(OBSBasic *parent)
|
||||
HookWidget(ui->positionX, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->positionY, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->rotation, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->scaleX, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->scaleY, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->sizeX, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->sizeY, DSCROLL_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->align, COMBO_CHANGED, SLOT(OnControlChanged()));
|
||||
HookWidget(ui->boundsType, COMBO_CHANGED, SLOT(OnBoundsType(int)));
|
||||
HookWidget(ui->boundsAlign, COMBO_CHANGED, SLOT(OnControlChanged()));
|
||||
@@ -185,6 +185,10 @@ void OBSBasicTransform::RefreshControls()
|
||||
obs_sceneitem_info osi;
|
||||
obs_sceneitem_get_info(item, &osi);
|
||||
|
||||
obs_source_t source = obs_sceneitem_getsource(item);
|
||||
float width = float(obs_source_getwidth(source));
|
||||
float height = float(obs_source_getheight(source));
|
||||
|
||||
int alignIndex = AlignToList(osi.alignment);
|
||||
int boundsAlignIndex = AlignToList(osi.bounds_alignment);
|
||||
|
||||
@@ -192,8 +196,8 @@ void OBSBasicTransform::RefreshControls()
|
||||
ui->positionX->setValue(osi.pos.x);
|
||||
ui->positionY->setValue(osi.pos.y);
|
||||
ui->rotation->setValue(osi.rot);
|
||||
ui->scaleX->setValue(osi.scale.x);
|
||||
ui->scaleY->setValue(osi.scale.y);
|
||||
ui->sizeX->setValue(osi.scale.x * width);
|
||||
ui->sizeY->setValue(osi.scale.y * height);
|
||||
ui->align->setCurrentIndex(alignIndex);
|
||||
|
||||
ui->boundsType->setCurrentIndex(int(osi.bounds_type));
|
||||
@@ -235,12 +239,16 @@ void OBSBasicTransform::OnControlChanged()
|
||||
if (ignoreItemChange)
|
||||
return;
|
||||
|
||||
obs_source_t source = obs_sceneitem_getsource(item);
|
||||
double width = double(obs_source_getwidth(source));
|
||||
double height = double(obs_source_getheight(source));
|
||||
|
||||
obs_sceneitem_info osi;
|
||||
osi.pos.x = float(ui->positionX->value());
|
||||
osi.pos.y = float(ui->positionY->value());
|
||||
osi.rot = float(ui->rotation->value());
|
||||
osi.scale.x = float(ui->scaleX->value());
|
||||
osi.scale.y = float(ui->scaleY->value());
|
||||
osi.scale.x = float(ui->sizeX->value() / width);
|
||||
osi.scale.y = float(ui->sizeY->value() / height);
|
||||
osi.alignment = listToAlign[ui->align->currentIndex()];
|
||||
|
||||
osi.bounds_type = (obs_bounds_type)ui->boundsType->currentIndex();
|
||||
|
||||
Reference in New Issue
Block a user