diff widgets/PropertyBox.cpp @ 55:128ebfeeebee

* Add Insert Instant function in main window * Ensure selections and window geometry are saved in session file * Add wait cursor on session file save * Various improvements to display of texts in pane (clearer readability) * Use commands for setting properties on layers and panes (still need to batch up multiple sets on the same property) * Fix failure of spectrogram to refresh when initial part became visible * Some fixes & paint optimisations in View &c * Make curve mode for time value layers work properly when resolution == 1 * Some vague improvements for time value layer vertical scale
author Chris Cannam
date Thu, 16 Mar 2006 18:46:00 +0000
parents 2e2ad8510e52
children 2b87a7bd9256
line wrap: on
line diff
--- a/widgets/PropertyBox.cpp	Wed Mar 15 18:21:17 2006 +0000
+++ b/widgets/PropertyBox.cpp	Thu Mar 16 18:46:00 2006 +0000
@@ -264,7 +264,11 @@
 	    m_propertyControllers[name] = cb;
 	}
 
-	if (cb->isChecked() != (value > 0)) cb->setChecked(value > 0);
+	if (cb->isChecked() != (value > 0)) {
+	    cb->blockSignals(true);
+	    cb->setChecked(value > 0);
+	    cb->blockSignals(false);
+	}
 	break;
     }
 
@@ -308,7 +312,11 @@
 	    m_propertyControllers[name] = dial;
 	}
 
-	if (dial->value() != value) dial->setValue(value);
+	if (dial->value() != value) {
+	    dial->blockSignals(true);
+	    dial->setValue(value);
+	    dial->blockSignals(false);
+	}
 	break;
     }
 
@@ -340,7 +348,11 @@
 	    m_propertyControllers[name] = cb;
 	}
 
-	if (cb->currentIndex() != value) cb->setCurrentIndex(value);
+	if (cb->currentIndex() != value) {
+	    cb->blockSignals(true);
+	    cb->setCurrentIndex(value);
+	    cb->blockSignals(false);
+	}
 
 #ifdef Q_WS_MAC
 	// Crashes on startup without this, for some reason
@@ -360,6 +372,10 @@
 {
     if (pc != m_container) return;
     
+#ifdef DEBUG_PROPERTY_BOX
+    std::cerr << "PropertyBox::propertyContainerPropertyChanged" << std::endl;
+#endif
+
     PropertyContainer::PropertyList properties = m_container->getProperties();
     size_t i;
 
@@ -386,7 +402,7 @@
     PropertyContainer::PropertyType type = m_container->getPropertyType(name);
     
     if (type != PropertyContainer::InvalidProperty) {
-	m_container->setProperty(name, value);
+	m_container->setPropertyWithCommand(name, value);
     }
 
     if (type == PropertyContainer::RangeProperty) {