Binding: Add help icons for entries with descriptions
[pulseview.git] / pv / binding / binding.hpp
index 35492e30ec435e9930303f974ada51e30bee0fbd..5580a0b05b48765d74fd9272beafe4e38ddc2ca8 100644 (file)
@@ -26,12 +26,19 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 #include <glibmm.h>
 G_GNUC_END_IGNORE_DEPRECATIONS
 
-#include <vector>
+#include <map>
 #include <memory>
+#include <vector>
 
+#include <QObject>
 #include <QString>
 
+using std::map;
+using std::shared_ptr;
+using std::vector;
+
 class QFormLayout;
+class QLabel;
 class QWidget;
 
 namespace pv {
@@ -42,26 +49,32 @@ class Property;
 
 namespace binding {
 
-class Binding
+class Binding: public QObject
 {
+       Q_OBJECT
+
 public:
-       const std::vector< std::shared_ptr<prop::Property> >& properties();
+       const vector< shared_ptr<prop::Property> >& properties();
 
        void commit();
 
-       void add_properties_to_form(QFormLayout *layout,
-               bool auto_commit = false) const;
+       void add_properties_to_form(QFormLayout *layout, bool auto_commit = false);
+
+       QWidget* get_property_form(QWidget *parent, bool auto_commit = false);
 
-       QWidget* get_property_form(QWidget *parent,
-               bool auto_commit = false) const;
+       void update_property_widgets();
 
        static QString print_gvariant(Glib::VariantBase gvar);
 
+protected Q_SLOTS:
+       void on_help_clicked();
+
 protected:
-       std::vector< std::shared_ptr<prop::Property> > properties_;
+       vector< shared_ptr<prop::Property> > properties_;
+       map<QWidget*, QLabel*> help_labels_;
 };
 
-} // binding
-} // pv
+}  // namespace binding
+}  // namespace pv
 
 #endif // PULSEVIEW_PV_BINDING_BINDING_HPP