deepin-ocr/src/resulttextview.h
liuminghang 8417cc96fd fix: 修复bug97212
Description: 鼠标释放的时候重置状态

Log: 与编辑区域有关系
Bug: https://pms.uniontech.com/zentao/bug-view-97212.html
Change-Id: If3ea5ad764d6d4b18292866258d4c54670a3b97d
2021-09-29 15:58:00 +08:00

81 lines
2.0 KiB
C++

#ifndef RESULTTEXTVIEW_H
#define RESULTTEXTVIEW_H
#include <QObject>
#include <QPlainTextEdit>
#include <QAction>
#include <QMenu>
#include <QGestureEvent>
class ResultTextView : public QPlainTextEdit
{
Q_OBJECT
public:
explicit ResultTextView(QWidget *parent = nullptr);
protected:
void contextMenuEvent(QContextMenuEvent *e) override;
void resizeEvent(QResizeEvent *event) override;
void mouseMoveEvent(QMouseEvent *e) override;
void mousePressEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override;
bool event(QEvent *event) override;
//触摸屏功能函数
bool gestureEvent(QGestureEvent *event);
void tapGestureTriggered(QTapGesture *tap);
void tapAndHoldGestureTriggered(QTapAndHoldGesture *tapAndHold);
void panTriggered(QPanGesture *pan);
void pinchTriggered(QPinchGesture *pinch);
// void swipeTriggered(QSwipeGesture *swipe);
//add for single refers to the sliding
void slideGestureY(qreal diff);
void slideGestureX(qreal diff);
private slots:
void onSelectionArea();
signals:
void sigChangeSize();
private:
QMenu *m_Menu{nullptr};
QAction *m_actCopy{nullptr};
QAction *m_actCut{nullptr};
QAction *m_actPaste{nullptr};
QAction *m_actSelectAll{nullptr};
bool m_slideContinue = false;
//触摸屏
enum GestureAction {
GA_null,
GA_tap,
GA_slide,
GA_pinch,
GA_hold,
GA_pan,
GA_swipe
};
GestureAction m_gestureAction = GA_null;
qint64 m_tapBeginTime = 0;
ulong m_lastMouseTime;
int m_lastMouseYpos;
int m_lastMouseXpos;
qreal m_stepSpeedY = 0;
qreal m_stepSpeedX = 0;
qreal durationY = {0.0};
qreal durationX = {0.0};
qreal changeY = {0.0};
qreal changeX = {0.0};
ulong m_lastMouseTimeX;
ulong m_lastMouseTimeY;
qreal m_scaleFactor = 1;
qreal m_currentStepScaleFactor = 1;
Qt::GestureState m_tapStatus = Qt::NoGesture;
int m_fontSize = 16;
};
#endif // RESULTTEXTVIEW_H