GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
QWebCanvas.h
Go to the documentation of this file.
1 // $Id$
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #ifndef QWEBCANVAS_H
15 #define QWEBCANVAS_H
16 
17 #include <QWidget>
18 #include <QWebEngineView>
19 
20 class TCanvas;
21 class TPad;
22 class TObject;
23 class QTimer;
24 
25 class QWebCanvas : public QWidget {
26 
27  Q_OBJECT
28 
29 public:
30  QWebCanvas(QWidget *parent = nullptr);
31  virtual ~QWebCanvas();
32 
34  TCanvas *getCanvas() { return fCanvas; }
35 
36  bool isStatusBarVisible();
37  bool isEditorVisible();
38 
39  void Modified();
40  void Update();
41 
42 signals:
43 
44  void CanvasDropEvent(QDropEvent *, TPad *);
45 
46  void CanvasUpdated();
47 
48  void SelectedPadChanged(TPad *);
49 
50  void PadClicked(TPad *, int, int);
51 
52  void PadDblClicked(TPad *, int, int);
53 
54 public slots:
55 
56  void activateEditor(TPad *pad = nullptr, TObject *obj = nullptr);
57  void activateStatusLine();
58 
59  void setStatusBarVisible(bool flag = true);
60 
61  void setEditorVisible(bool flag = true);
62 
63 protected slots:
64 
65  void dropView(QDropEvent* event);
66 
67  void processRepaintTimer();
68 
69 protected:
70 
71  void resizeEvent(QResizeEvent *event) override;
72 
73  void dropEvent(QDropEvent *event) override;
74 
75  double scaledPosition(int p) { return (double) p * fQtScalingfactor; }
76 
77  void SetPrivateCanvasFields(bool on_init);
78 
80 
81  void ProcessActivePadChanged(TPad *pad) { emit SelectedPadChanged(pad); }
82 
83  void ProcessPadClicked(TPad *pad, int x, int y) { emit PadClicked(pad,x,y); }
84 
85  void ProcessPadDblClicked(TPad *pad, int x, int y) { emit PadDblClicked(pad,x,y); }
86 
87  QWebEngineView *fView{nullptr};
88 
89  TCanvas *fCanvas{nullptr};
90 
91  QTimer *fRepaintTimer{nullptr};
92 
93  double fQtScalingfactor{0};
94 };
95 
96 #endif
QTimer * fRepaintTimer
Definition: QWebCanvas.h:91
void activateStatusLine()
Definition: QWebCanvas.cpp:254
bool isStatusBarVisible()
Definition: QWebCanvas.cpp:232
void SelectedPadChanged(TPad *)
void ProcessPadDblClicked(TPad *pad, int x, int y)
Definition: QWebCanvas.h:85
void Update()
Definition: QWebCanvas.cpp:270
void CanvasUpdated()
QWebEngineView * fView
qt webwidget to show
Definition: QWebCanvas.h:87
void ProcessCanvasUpdated()
Definition: QWebCanvas.h:79
void resizeEvent(QResizeEvent *event) override
Definition: QWebCanvas.cpp:184
void ProcessActivePadChanged(TPad *pad)
Definition: QWebCanvas.h:81
void PadClicked(TPad *, int, int)
virtual ~QWebCanvas()
Definition: QWebCanvas.cpp:142
TCanvas * fCanvas
Definition: QWebCanvas.h:89
bool isEditorVisible()
Definition: QWebCanvas.cpp:237
void dropView(QDropEvent *event)
Definition: QWebCanvas.cpp:208
void setEditorVisible(bool flag=true)
Definition: QWebCanvas.cpp:248
void PadDblClicked(TPad *, int, int)
TCanvas * getCanvas()
returns canvas shown in the widget
Definition: QWebCanvas.h:34
double fQtScalingfactor
Definition: QWebCanvas.h:93
void Modified()
Definition: QWebCanvas.cpp:265
void CanvasDropEvent(QDropEvent *, TPad *)
double scaledPosition(int p)
Definition: QWebCanvas.h:75
void processRepaintTimer()
Definition: QWebCanvas.cpp:260
void setStatusBarVisible(bool flag=true)
Definition: QWebCanvas.cpp:242
void SetPrivateCanvasFields(bool on_init)
Definition: QWebCanvas.cpp:155
QWebCanvas(QWidget *parent=nullptr)
Definition: QWebCanvas.cpp:35
void dropEvent(QDropEvent *event) override
Definition: QWebCanvas.cpp:191
void ProcessPadClicked(TPad *pad, int x, int y)
Definition: QWebCanvas.h:83
void activateEditor(TPad *pad=nullptr, TObject *obj=nullptr)
Definition: QWebCanvas.cpp:223