Kaynağa Gözat

UI: Add tooltips (long description) to property controls

jp9000 9 yıl önce
ebeveyn
işleme
2b4bf21416
1 değiştirilmiş dosya ile 23 ekleme ve 0 silme
  1. 23 0
      UI/properties-view.cpp

+ 23 - 0
UI/properties-view.cpp

@@ -210,9 +210,13 @@ void OBSPropertiesView::resizeEvent(QResizeEvent *event)
 QWidget *OBSPropertiesView::NewWidget(obs_property_t *prop, QWidget *widget,
 		const char *signal)
 {
+	const char *long_desc = obs_property_long_description(prop);
+
 	WidgetInfo *info = new WidgetInfo(this, prop, widget);
 	connect(widget, signal, info, SLOT(ControlChanged()));
 	children.emplace_back(info);
+
+	widget->setToolTip(QT_UTF8(long_desc));
 	return widget;
 }
 
@@ -263,6 +267,8 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout,
 		label = new QLabel(QT_UTF8(obs_property_description(prop)));
 		layout->addRow(label, subLayout);
 
+		edit->setToolTip(QT_UTF8(obs_property_long_description(prop)));
+
 		connect(edit, SIGNAL(textEdited(const QString &)),
 				info, SLOT(ControlChanged()));
 		return nullptr;
@@ -271,6 +277,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout,
 	QLineEdit *edit = new QLineEdit();
 
 	edit->setText(QT_UTF8(val));
+	edit->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	return NewWidget(prop, edit, SIGNAL(textEdited(const QString &)));
 }
@@ -286,6 +293,7 @@ void OBSPropertiesView::AddPath(obs_property_t *prop, QFormLayout *layout,
 
 	edit->setText(QT_UTF8(val));
 	edit->setReadOnly(true);
+	edit->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	subLayout->addWidget(edit);
 	subLayout->addWidget(button);
@@ -316,6 +324,7 @@ void OBSPropertiesView::AddInt(obs_property_t *prop, QFormLayout *layout,
 	spin->setMaximum(maxVal);
 	spin->setSingleStep(stepVal);
 	spin->setValue(val);
+	spin->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	WidgetInfo *info = new WidgetInfo(this, prop, spin);
 	children.emplace_back(info);
@@ -361,6 +370,7 @@ void OBSPropertiesView::AddFloat(obs_property_t *prop, QFormLayout *layout,
 	spin->setMaximum(maxVal);
 	spin->setSingleStep(stepVal);
 	spin->setValue(val);
+	spin->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	WidgetInfo *info = new WidgetInfo(this, prop, spin);
 	children.emplace_back(info);
@@ -471,6 +481,7 @@ QWidget *OBSPropertiesView::AddList(obs_property_t *prop, bool &warning)
 		combo->setEditable(true);
 
 	combo->setMaxVisibleItems(40);
+	combo->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	string value = from_obs_data(settings, name, format);
 
@@ -545,6 +556,7 @@ void OBSPropertiesView::AddEditableList(obs_property_t *prop,
 
 	list->setSortingEnabled(false);
 	list->setSelectionMode(QAbstractItemView::ExtendedSelection);
+	list->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	for (size_t i = 0; i < count; i++) {
 		obs_data_t *item = obs_data_array_item(array, i);
@@ -598,12 +610,14 @@ void OBSPropertiesView::AddColor(obs_property_t *prop, QFormLayout *layout,
 	QColor      color       = color_from_int(val);
 
 	button->setText(QTStr("Basic.PropertiesWindow.SelectColor"));
+	button->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	colorLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
 	colorLabel->setText(color.name(QColor::HexArgb));
 	colorLabel->setPalette(QPalette(color));
 	colorLabel->setAutoFillBackground(true);
 	colorLabel->setAlignment(Qt::AlignCenter);
+	colorLabel->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	QHBoxLayout *subLayout = new QHBoxLayout;
 	subLayout->setContentsMargins(0, 0, 0, 0);
@@ -655,11 +669,13 @@ void OBSPropertiesView::AddFont(obs_property_t *prop, QFormLayout *layout,
 	MakeQFont(font_obj, font);
 
 	button->setText(QTStr("Basic.PropertiesWindow.SelectFont"));
+	button->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	fontLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
 	fontLabel->setFont(font);
 	fontLabel->setText(QString("%1 %2").arg(face, style));
 	fontLabel->setAlignment(Qt::AlignCenter);
+	fontLabel->setToolTip(QT_UTF8(obs_property_long_description(prop)));
 
 	QHBoxLayout *subLayout = new QHBoxLayout;
 	subLayout->setContentsMargins(0, 0, 0, 0);
@@ -988,6 +1004,8 @@ static OBSFrameRatePropertyWidget *CreateFrameRateWidget(obs_property_t *prop,
 	combo->addItem(QTStr("Basic.PropertiesView.FPS.Rational"),
 			QVariant::fromValue(frame_rate_tag::rational()));
 
+	combo->setToolTip(QT_UTF8(obs_property_long_description(prop)));
+
 	auto num = obs_property_frame_rate_options_count(prop);
 	if (num)
 		combo->insertSeparator(combo->count());
@@ -1188,6 +1206,8 @@ void OBSPropertiesView::AddFrameRate(obs_property_t *prop, bool &warning,
 			fps_ranges);
 	auto info   = new WidgetInfo(this, prop, widget);
 
+	widget->setToolTip(QT_UTF8(obs_property_long_description(prop)));
+
 	widget->name = name;
 	widget->settings = settings;
 
@@ -1209,6 +1229,9 @@ void OBSPropertiesView::AddFrameRate(obs_property_t *prop, bool &warning,
 	auto stack = widget->modeDisplay;
 	auto combo = widget->modeSelect;
 
+	stack->setToolTip(QT_UTF8(obs_property_long_description(prop)));
+	combo->setToolTip(QT_UTF8(obs_property_long_description(prop)));
+
 	auto comboIndexChanged = static_cast<void (QComboBox::*)(int)>(
 			&QComboBox::currentIndexChanged);
 	connect(combo, comboIndexChanged, stack,