changeset 206:fa034c6ae8bf

resolve updateContextHelp for property boxes
author lbajardsilogic
date Thu, 31 Jan 2008 10:08:45 +0000
parents 00cf9a7faa4d
children 95d9c6de5a4f
files sv/filter/TimeStretchFilter.h sv/main/MainWindow.cpp widgets/MultiPaneLayerContainer.cpp widgets/MultiPaneLayerContainer.h widgets/PropertyBox.cpp widgets/PropertyStack.cpp widgets/RealTimeFilterPropertyStack.cpp widgets/RealTimeFilterPropertyStack.h widgets/Slider.cpp widgets/Slider.h
diffstat 10 files changed, 78 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/sv/filter/TimeStretchFilter.h	Wed Jan 30 10:20:41 2008 +0000
+++ b/sv/filter/TimeStretchFilter.h	Thu Jan 31 10:08:45 2008 +0000
@@ -29,6 +29,8 @@
 	TimeStretchFilter();
 	virtual ~TimeStretchFilter();
 
+	virtual QString getPropertyContainerName() const {return "Time and Pitch filter";}
+    
 	virtual PropertyList getProperties() const;
 	virtual QString getPropertyLabel(const PropertyName &) const;
 	virtual PropertyType getPropertyType(const PropertyName &) const;
--- a/sv/main/MainWindow.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/sv/main/MainWindow.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -299,6 +299,9 @@
 	m_filterPropertyStack = new RealTimeFilterPropertyStack();
 	m_toolBox->addItem("Real-time filters",m_filterPropertyStack);
 	
+	connect(m_filterPropertyStack, SIGNAL(contextHelpChanged(const QString &)),
+            this, SLOT(contextHelpChanged(const QString &)));
+
 	/******** only for logo ****/
 	QLabel *logo = new QLabel;
 	logo->setPixmap(QPixmap(":icons/easaier.png"));
@@ -5453,6 +5456,7 @@
 	connect(m_paneStack, SIGNAL(newPaneAdded(Pane*)),m_multiPaneLayerContainer,SLOT(paneAdded(Pane*)));
 	connect(m_paneStack, SIGNAL(paneDeleted(Pane*)),m_multiPaneLayerContainer,SLOT(paneRemoved(Pane*)));
 	connect(m_multiPaneLayerContainer, SIGNAL(removeSelectedItem()), this, SLOT(deleteCurrentLayer())); 
+	connect(m_multiPaneLayerContainer, SIGNAL(contextHelpChanged(const QString &)), this, SLOT(contextHelpChanged(const QString &))); 
 	connect(this, SIGNAL(newCurrentPane(Pane*)), m_multiPaneLayerContainer, SLOT(currentPaneChanged(Pane*)));
 	connect(m_multiPaneLayerContainer, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)),
 			m_paneStack, SLOT(propertyContainerSelected(View *, PropertyContainer *))); 
--- a/widgets/MultiPaneLayerContainer.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/MultiPaneLayerContainer.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -28,6 +28,7 @@
 	PropertyStack *propertyStack = new PropertyStack(0, pane);
 	connect(propertyStack, SIGNAL(removeSelectedItem()), this, SIGNAL(removeSelectedItem())); 
 	connect(propertyStack, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)), this, SIGNAL(propertyContainerSelected(View *, PropertyContainer *))); 
+	connect(propertyStack, SIGNAL(contextHelpChanged(const QString &)), this, SIGNAL(contextHelpChanged(const QString &))); 
 	m_map->insert(pane,propertyStack);
 	m_layout->addWidget(propertyStack);
 	m_layout->setMargin(0);
--- a/widgets/MultiPaneLayerContainer.h	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/MultiPaneLayerContainer.h	Thu Jan 31 10:08:45 2008 +0000
@@ -36,6 +36,7 @@
 signals:
 		void removeSelectedItem();
 		void propertyContainerSelected(View *client, PropertyContainer *container);
+		void contextHelpChanged(const QString &);
 
 public slots :
 	void currentPaneChanged(Pane *pane);
--- a/widgets/PropertyBox.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/PropertyBox.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -423,6 +423,7 @@
 			slider->setMinimum(min);
 			slider->setMaximum(max);
 			slider->setPageStep(1);
+			slider->setShowToolTip(true);
 			connect(slider, SIGNAL(valueChanged(int)),
 						this, SLOT(propertyControllerChanged(int)));
 			connect(slider, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget()));
@@ -746,6 +747,18 @@
         }
     }
 
+	Slider *slider = dynamic_cast<Slider *>(w);
+	if (slider) {
+		float mv = slider->value();
+        QString unit = "";
+        //if (slider->rangeMapper()) unit = slider->rangeMapper()->getUnit();
+        if (unit != "") {
+            extraText = tr(" (current value: %1%2)").arg(mv).arg(unit);
+        } else {
+            extraText = tr(" (current value: %1)").arg(mv);
+        }
+    }
+
     if (w == m_showButton) {
         emit contextHelpChanged(tr("Toggle Visibility of %1").arg(cname));
     } else if (w == m_playButton) {
--- a/widgets/PropertyStack.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/PropertyStack.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -116,7 +116,8 @@
 	
 	PropertyBox *box = new PropertyBox(container);
 	connect(box, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
-        connect(box, SIGNAL(contextHelpChanged(const QString &)),
+       
+	connect(box, SIGNAL(contextHelpChanged(const QString &)),
                 this, SIGNAL(contextHelpChanged(const QString &)));
 
         Layer *layer = dynamic_cast<Layer *>(container);
--- a/widgets/RealTimeFilterPropertyStack.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/RealTimeFilterPropertyStack.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -27,6 +27,9 @@
 	connect(filter, SIGNAL(propertiesChanged(PropertyContainer *)),
 	    box, SLOT(propertyContainerPropertyChanged(PropertyContainer *)));
 
+	connect(box, SIGNAL(contextHelpChanged(const QString &)),
+                this, SIGNAL(contextHelpChanged(const QString &)));
+
 	ItemAudioFilterList *itAudio = new ItemAudioFilterList;
 	QString name(filter->objectName());
 	itAudio->setName(name);
--- a/widgets/RealTimeFilterPropertyStack.h	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/RealTimeFilterPropertyStack.h	Thu Jan 31 10:08:45 2008 +0000
@@ -26,6 +26,9 @@
 	RealTimeFilterPropertyStack();
 	virtual ~RealTimeFilterPropertyStack();
 
+signals:
+    void contextHelpChanged(const QString &);
+	
 public slots:
 
 	void filterAdded(Filter *);
--- a/widgets/Slider.cpp	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/Slider.cpp	Thu Jan 31 10:08:45 2008 +0000
@@ -13,6 +13,20 @@
 
 #include "Slider.h"
 
+Slider::Slider(QWidget *parent) : QSlider(parent) ,
+	m_showTooltip(true)
+{
+	connect(this, SIGNAL(valueChanged(int)),
+                this, SLOT(updateToolTip()));
+}
+
+Slider::Slider(Qt::Orientation orientation, QWidget * parent) : QSlider(orientation, parent) ,
+	m_showTooltip(true)
+{
+	connect(this, SIGNAL(valueChanged(int)),
+                this, SLOT(updateToolTip()));
+}
+
 Slider::~Slider()
 {
 }
@@ -34,4 +48,29 @@
 	QPalette palette;
 	setPalette(palette);
     emit mouseLeft();
+}
+
+void Slider::setShowToolTip(bool show)
+{
+    m_showTooltip = show;
+    /*m_noMappedUpdate = true;
+    updateMappedValue(value());
+    m_noMappedUpdate = false;*/
+	updateToolTip();
+}
+
+void Slider::updateToolTip()
+{	
+	if (m_showTooltip) {
+        QString name = objectName();
+        QString unit = "";
+        QString text;
+        //if (m_rangeMapper) unit = m_rangeMapper->getUnit();
+        if (name != "") {
+            text = tr("%1: %2%3").arg(name).arg(value()).arg(unit);
+        } else {
+            text = tr("%2%3").arg(value()).arg(unit);
+        }
+        setToolTip(text);
+    }
 }
\ No newline at end of file
--- a/widgets/Slider.h	Wed Jan 30 10:20:41 2008 +0000
+++ b/widgets/Slider.h	Thu Jan 31 10:08:45 2008 +0000
@@ -21,21 +21,26 @@
     Q_OBJECT
 public:
 
-    Slider(QWidget *parent = 0) :
-        QSlider(parent) { }
-
-	Slider(Qt::Orientation orientation, QWidget * parent = 0) :
-        QSlider(orientation, parent) { }
+    Slider(QWidget *parent = 0);
+	Slider(Qt::Orientation orientation, QWidget * parent = 0);
 
     virtual ~Slider();
 
+	void setShowToolTip(bool show);
+
 signals:
     void mouseEntered();
     void mouseLeft();
 
+protected slots:
+	void updateToolTip();
+
 protected:
     virtual void enterEvent(QEvent *);
     virtual void leaveEvent(QEvent *);
+
+	bool m_showTooltip;
+
 };
 
 #endif
\ No newline at end of file