Browse Source

UI: Display message if no properties available

Display "No properties available" text in the property view if there are
no properties available.

Closes Pull Request #377
HomeWorld 11 years ago
parent
commit
641f626593
2 changed files with 9 additions and 0 deletions
  1. 1 0
      obs/data/locale/en-US.ini
  2. 8 0
      obs/properties-view.cpp

+ 1 - 0
obs/data/locale/en-US.ini

@@ -118,6 +118,7 @@ Basic.PropertiesWindow.SelectColor="Select color"
 Basic.PropertiesWindow.SelectFont="Select font"
 Basic.PropertiesWindow.ConfirmTitle="Settings Changed"
 Basic.PropertiesWindow.Confirm="There are unsaved changes.  Do you want to keep them?"
+Basic.PropertiesWindow.NoProperties="No properties available"
 
 # interaction window
 Basic.InteractionWindow="Interacting with '%1'"

+ 8 - 0
obs/properties-view.cpp

@@ -53,6 +53,8 @@ void OBSPropertiesView::ReloadProperties()
 	RefreshProperties();
 }
 
+#define NO_PROPERTIES_STRING QTStr("Basic.PropertiesWindow.NoProperties")
+
 void OBSPropertiesView::RefreshProperties()
 {
 	int h, v;
@@ -75,6 +77,7 @@ void OBSPropertiesView::RefreshProperties()
 	layout->setLabelAlignment(Qt::AlignRight);
 
 	obs_property_t *property = obs_properties_first(properties.get());
+	bool hasNoProperties = !property;
 
 	while (property) {
 		AddProperty(property, layout);
@@ -91,6 +94,11 @@ void OBSPropertiesView::RefreshProperties()
 		lastWidget->setFocus(Qt::OtherFocusReason);
 		lastWidget = nullptr;
 	}
+
+	if (hasNoProperties) {
+		QLabel *noPropertiesLabel = new QLabel(NO_PROPERTIES_STRING);
+		layout->addWidget(noPropertiesLabel);
+	}
 }
 
 void OBSPropertiesView::SetScrollPos(int h, int v)