UI: Apply minimum width to Stats fields
Helps prevent Stats dock from resizing OBS when long text is set.
This commit is contained in:
parent
2b50263d5c
commit
dbf318a388
@ -32,6 +32,22 @@ void OBSBasicStats::OBSFrontendEvent(enum obs_frontend_event event, void *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
static QString MakeTimeLeftText(int hours, int minutes)
|
||||
{
|
||||
return QString::asprintf("%d %s, %d %s", hours,
|
||||
QT_TO_UTF8(QTStr("Hours")), minutes,
|
||||
QT_TO_UTF8(QTStr("Minutes")));
|
||||
}
|
||||
|
||||
static QString MakeMissedFramesText(uint32_t total_lagged,
|
||||
uint32_t total_rendered, long double num)
|
||||
{
|
||||
return QString("%1 / %2 (%3%)")
|
||||
.arg(QString::number(total_lagged),
|
||||
QString::number(total_rendered),
|
||||
QString::number(num, 'f', 1));
|
||||
}
|
||||
|
||||
OBSBasicStats::OBSBasicStats(QWidget *parent, bool closeable)
|
||||
: QWidget(parent),
|
||||
cpu_info(os_cpu_usage_info_start()),
|
||||
@ -65,6 +81,10 @@ OBSBasicStats::OBSBasicStats(QWidget *parent, bool closeable)
|
||||
recordTimeLeft = new QLabel(this);
|
||||
memUsage = new QLabel(this);
|
||||
|
||||
QString str = MakeTimeLeftText(99999, 59);
|
||||
int textWidth = recordTimeLeft->fontMetrics().boundingRect(str).width();
|
||||
recordTimeLeft->setMinimumWidth(textWidth);
|
||||
|
||||
newStat("CPUUsage", cpuUsage, 0);
|
||||
newStat("HDDSpaceAvailable", hddSpace, 0);
|
||||
newStat("DiskFullIn", recordTimeLeft, 0);
|
||||
@ -74,6 +94,11 @@ OBSBasicStats::OBSBasicStats(QWidget *parent, bool closeable)
|
||||
renderTime = new QLabel(this);
|
||||
skippedFrames = new QLabel(this);
|
||||
missedFrames = new QLabel(this);
|
||||
|
||||
str = MakeMissedFramesText(999999, 999999, 99.99);
|
||||
textWidth = missedFrames->fontMetrics().boundingRect(str).width();
|
||||
missedFrames->setMinimumWidth(textWidth);
|
||||
|
||||
row = 0;
|
||||
|
||||
newStatBare("FPS", fps, 2);
|
||||
@ -388,10 +413,7 @@ void OBSBasicStats::Update()
|
||||
: 0.0l;
|
||||
num *= 100.0l;
|
||||
|
||||
str = QString("%1 / %2 (%3%)")
|
||||
.arg(QString::number(total_lagged),
|
||||
QString::number(total_rendered),
|
||||
QString::number(num, 'f', 1));
|
||||
str = MakeMissedFramesText(total_lagged, total_rendered, num);
|
||||
missedFrames->setText(str);
|
||||
|
||||
if (num > 5.0l)
|
||||
@ -445,9 +467,7 @@ void OBSBasicStats::RecordingTimeLeft()
|
||||
int minutes = totalMinutes % 60;
|
||||
int hours = totalMinutes / 60;
|
||||
|
||||
QString text = QString::asprintf("%d %s, %d %s", hours,
|
||||
QT_TO_UTF8(QTStr("Hours")), minutes,
|
||||
QT_TO_UTF8(QTStr("Minutes")));
|
||||
QString text = MakeTimeLeftText(hours, minutes);
|
||||
recordTimeLeft->setText(text);
|
||||
recordTimeLeft->setMinimumWidth(recordTimeLeft->width());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user