]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/mathsignal.hpp
MathSignal: Implement custom math signal dialog
[pulseview.git] / pv / views / trace / mathsignal.hpp
index 4b8fcb180e15ddf5a7a9940869596bda8e2e6fda..6af708e502e97e752e9ddeba7f5eacb2ca7bdd59 100644 (file)
 #ifndef PULSEVIEW_PV_VIEWS_TRACE_MATHSIGNAL_HPP
 #define PULSEVIEW_PV_VIEWS_TRACE_MATHSIGNAL_HPP
 
 #ifndef PULSEVIEW_PV_VIEWS_TRACE_MATHSIGNAL_HPP
 #define PULSEVIEW_PV_VIEWS_TRACE_MATHSIGNAL_HPP
 
+#include <memory>
+#include <vector>
+
 #include <QComboBox>
 #include <QDialog>
 #include <QComboBox>
 #include <QDialog>
+#include <QPlainTextEdit>
 #include <QString>
 #include <QTimer>
 
 #include <pv/data/mathsignal.hpp>
 #include <pv/views/trace/analogsignal.hpp>
 
 #include <QString>
 #include <QTimer>
 
 #include <pv/data/mathsignal.hpp>
 #include <pv/views/trace/analogsignal.hpp>
 
+using std::pair;
 using std::shared_ptr;
 using std::shared_ptr;
+using std::string;
+using std::vector;
 
 namespace pv {
 namespace views {
 
 namespace pv {
 namespace views {
@@ -38,10 +45,15 @@ class MathEditDialog : public QDialog
 {
        Q_OBJECT
 
 {
        Q_OBJECT
 
+private:
+       static const vector< pair<string, string> > Examples;
+
 public:
        MathEditDialog(pv::Session &session, shared_ptr<pv::data::MathSignal> math_signal,
                QWidget *parent = nullptr);
 
 public:
        MathEditDialog(pv::Session &session, shared_ptr<pv::data::MathSignal> math_signal,
                QWidget *parent = nullptr);
 
+       void set_expr(const QString &expr);
+
 private Q_SLOTS:
        void accept();
        void reject();
 private Q_SLOTS:
        void accept();
        void reject();
@@ -49,7 +61,9 @@ private Q_SLOTS:
 private:
        pv::Session &session_;
        shared_ptr<pv::data::MathSignal> math_signal_;
 private:
        pv::Session &session_;
        shared_ptr<pv::data::MathSignal> math_signal_;
-       QString expression_, old_expression_;
+       QString old_expression_;
+
+       QPlainTextEdit *expr_edit_;
 };
 
 
 };