PeriDyno 1.0.0
Loading...
Searching...
No Matches
PDataViewerWidget.h
Go to the documentation of this file.
1#pragma once
2#include <QTableWidgetItem>
3#include "Field.h"
4#include <QResizeEvent>
5#include <QWheelEvent>
6#include <QScrollBar>
7
8#include <QScrollBar>
9#include <QMouseEvent>
10#include <QHBoxLayout>
11#include <QKeyEvent>
12#include "Format.h"
13
14class QDataViewScrollBar : public QScrollBar
15{
16 Q_OBJECT
17public:
18 QDataViewScrollBar(Qt::Orientation, QWidget* parent = nullptr) : QScrollBar(parent) {}
19
20 void setScrollBarParam(int min, int max, int step)
21 {
22 this->setRange(min,max);
23 this->setPageStep(step);
24 }
25
26public slots:
27
28 void updateScrollValue(int v)
29 {
30 int deltaValue = pageStep() / 3 >= 1 ? pageStep() / 3 : 1;
31 if (v > 0)
32 this->setValue(this->value() - deltaValue);
33 else if (v < 0)
34 this->setValue(this->value() + deltaValue);
35
36 }
37
38private:
39
40 QPoint pressPos = QPoint(0,0);
41
42};
43
44
45
46namespace dyno
47{
48
56
58 {
62 };
63
64 class PDataViewerWidget : public QTableWidget
65 {
66 Q_OBJECT
67
68 public:
69
70 PDataViewerWidget(FBase* field,QWidget* pParent = NULL);
71 int sizeHintForColumn(int column) const override;
72 int getRowNum() { return rowNum; }
73 virtual void setRowNum(int size ) { rowNum = size ; }
74 void setTableScrollBar(QScrollBar* s) { mScrollBar = s; }
75 QScrollBar* getTableScrollBar(QScrollBar* s) { return mScrollBar; }
76 std::string getFieldWindowTitle() { return mfield->getObjectName() + " ( " + mfield->getTemplateName() + " )"; }
77
78 protected:
79
80 void addItemToPosition(const QString& qstr, int row, int column,const QString& rowName,const QString& columnName,const bool resizeRow = false,const int height = 30);
81 void resizeEvent(QResizeEvent* event) override;
83
84
85 Q_SIGNALS:
86
87 void wheelDeltaAngleChange(int value);
88
89 public slots:
90
91 void ClearDataTable();
92 virtual void updateDataTable();
93 virtual void updateDataTableTo(int value) { updateDataTable(); }
95 virtual void buildArrayListDataTable(int first, int last) {};
96 virtual void buildArrayDataTable(int first, int last) {};
97 virtual void buildVarDataTable() {};
98
99 protected:
100
101 void wheelEvent(QWheelEvent* wheelEvent) override;
102
103 void keyPressEvent(QKeyEvent* event) override
104 {
105 if (event->key() == Qt::Key_Alt)
106 AltPressed = true;
107
108 QTableWidget::keyPressEvent(event);
109 }
110
111 void keyReleaseEvent(QKeyEvent* event)
112 {
113 if (event->key() == Qt::Key_Alt)
114 AltPressed = false;
115
116 QWidget::keyReleaseEvent(event);
117 }
118
119
120
121
122 protected:
123
126 int rowsHeight = 30;
128 int minIndex = -1;
129 int maxIndex = -1;
130
131 private:
132
134 int rowNum = 0;
135 QScrollBar* mScrollBar = NULL;
136
137 bool AltPressed = false;
138 };
139
140
141}
QDataViewScrollBar(Qt::Orientation, QWidget *parent=nullptr)
void updateScrollValue(int v)
void setScrollBarParam(int min, int max, int step)
void keyReleaseEvent(QKeyEvent *event)
void resizeEvent(QResizeEvent *event) override
std::string getFieldWindowTitle()
PDataViewerWidget(FBase *field, QWidget *pParent=NULL)
void wheelDeltaAngleChange(int value)
void wheelEvent(QWheelEvent *wheelEvent) override
virtual void buildVarDataTable()
virtual void buildArrayDataTable(int first, int last)
virtual void updateDataTableTo(int value)
QScrollBar * getTableScrollBar(QScrollBar *s)
void addItemToPosition(const QString &qstr, int row, int column, const QString &rowName, const QString &columnName, const bool resizeRow=false, const int height=30)
void keyPressEvent(QKeyEvent *event) override
virtual void setRowNum(int size)
void setTableScrollBar(QScrollBar *s)
virtual void buildArrayListDataTable(int first, int last)
int sizeHintForColumn(int column) const override
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
#define max(x, y)
Definition svd3_cuda.h:41