新增视频播放mdk内核

This commit is contained in:
feiyangqingyun
2023-12-15 12:55:42 +08:00
parent 123a5b4bed
commit 2806faa6a6
565 changed files with 4102 additions and 118681 deletions

View File

@@ -89,7 +89,8 @@ void FramelessDialog::doResizeEvent(QEvent *event)
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
#ifndef Q_OS_WIN
if (event->type() == QEvent::Resize) {
int type = event->type();
if (type == QEvent::Resize) {
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
int width = this->width();
int height = this->height();
@@ -111,7 +112,7 @@ void FramelessDialog::doResizeEvent(QEvent *event)
pressedRect[6] = QRect(0, height - padding, padding, padding);
//右下角描点区域
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
} else if (event->type() == QEvent::HoverMove) {
} else if (type == QEvent::HoverMove) {
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
QHoverEvent *hoverEvent = (QHoverEvent *)event;
QPoint point = hoverEvent->pos();
@@ -196,7 +197,7 @@ void FramelessDialog::doResizeEvent(QEvent *event)
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
}
}
} else if (event->type() == QEvent::MouseButtonPress) {
} else if (type == QEvent::MouseButtonPress) {
//记住鼠标按下的坐标+窗体区域
QMouseEvent *mouseEvent = (QMouseEvent *)event;
mousePoint = mouseEvent->pos();
@@ -222,9 +223,9 @@ void FramelessDialog::doResizeEvent(QEvent *event)
} else {
mousePressed = true;
}
} else if (event->type() == QEvent::MouseMove) {
} else if (type == QEvent::MouseMove) {
//改成用HoverMove识别
} else if (event->type() == QEvent::MouseButtonRelease) {
} else if (type == QEvent::MouseButtonRelease) {
//恢复所有
this->setCursor(Qt::ArrowCursor);
mousePressed = false;
@@ -237,8 +238,9 @@ void FramelessDialog::doResizeEvent(QEvent *event)
bool FramelessDialog::eventFilter(QObject *watched, QEvent *event)
{
int type = event->type();
if (watched == this) {
if (event->type() == QEvent::WindowStateChange) {
if (type == QEvent::WindowStateChange) {
doWindowStateChange(event);
} else {
doResizeEvent(event);
@@ -247,9 +249,9 @@ bool FramelessDialog::eventFilter(QObject *watched, QEvent *event)
//双击标题栏发出双击信号给主界面
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
#ifndef Q_OS_WIN
if (event->type() == QEvent::MouseButtonDblClick) {
if (type == QEvent::MouseButtonDblClick) {
Q_EMIT titleDblClick();
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
Q_EMIT titleDblClick();
}
#endif

View File

@@ -89,7 +89,8 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
#ifndef Q_OS_WIN
if (event->type() == QEvent::Resize) {
int type = event->type();
if (type == QEvent::Resize) {
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
int width = this->width();
int height = this->height();
@@ -111,7 +112,7 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
pressedRect[6] = QRect(0, height - padding, padding, padding);
//右下角描点区域
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
} else if (event->type() == QEvent::HoverMove) {
} else if (type == QEvent::HoverMove) {
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
QHoverEvent *hoverEvent = (QHoverEvent *)event;
QPoint point = hoverEvent->pos();
@@ -196,7 +197,7 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
}
}
} else if (event->type() == QEvent::MouseButtonPress) {
} else if (type == QEvent::MouseButtonPress) {
//记住鼠标按下的坐标+窗体区域
QMouseEvent *mouseEvent = (QMouseEvent *)event;
mousePoint = mouseEvent->pos();
@@ -222,9 +223,9 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
} else {
mousePressed = true;
}
} else if (event->type() == QEvent::MouseMove) {
} else if (type == QEvent::MouseMove) {
//改成用HoverMove识别
} else if (event->type() == QEvent::MouseButtonRelease) {
} else if (type == QEvent::MouseButtonRelease) {
//恢复所有
this->setCursor(Qt::ArrowCursor);
mousePressed = false;
@@ -237,8 +238,9 @@ void FramelessMainWindow::doResizeEvent(QEvent *event)
bool FramelessMainWindow::eventFilter(QObject *watched, QEvent *event)
{
int type = event->type();
if (watched == this) {
if (event->type() == QEvent::WindowStateChange) {
if (type == QEvent::WindowStateChange) {
doWindowStateChange(event);
} else {
doResizeEvent(event);
@@ -247,9 +249,9 @@ bool FramelessMainWindow::eventFilter(QObject *watched, QEvent *event)
//双击标题栏发出双击信号给主界面
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
#ifndef Q_OS_WIN
if (event->type() == QEvent::MouseButtonDblClick) {
if (type == QEvent::MouseButtonDblClick) {
Q_EMIT titleDblClick();
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
Q_EMIT titleDblClick();
}
#endif

View File

@@ -89,7 +89,8 @@ void FramelessWidget::doResizeEvent(QEvent *event)
//非win系统的无边框拉伸,win系统上已经采用了nativeEvent来处理拉伸
//为何不统一用计算的方式因为在win上用这个方式往左拉伸会发抖妹的
#ifndef Q_OS_WIN
if (event->type() == QEvent::Resize) {
int type = event->type();
if (type == QEvent::Resize) {
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
int width = this->width();
int height = this->height();
@@ -111,7 +112,7 @@ void FramelessWidget::doResizeEvent(QEvent *event)
pressedRect[6] = QRect(0, height - padding, padding, padding);
//右下角描点区域
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
} else if (event->type() == QEvent::HoverMove) {
} else if (type == QEvent::HoverMove) {
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
QHoverEvent *hoverEvent = (QHoverEvent *)event;
QPoint point = hoverEvent->pos();
@@ -196,7 +197,7 @@ void FramelessWidget::doResizeEvent(QEvent *event)
this->setGeometry(this->x(), this->y(), resizeW, resizeH);
}
}
} else if (event->type() == QEvent::MouseButtonPress) {
} else if (type == QEvent::MouseButtonPress) {
//记住鼠标按下的坐标+窗体区域
QMouseEvent *mouseEvent = (QMouseEvent *)event;
mousePoint = mouseEvent->pos();
@@ -222,9 +223,9 @@ void FramelessWidget::doResizeEvent(QEvent *event)
} else {
mousePressed = true;
}
} else if (event->type() == QEvent::MouseMove) {
} else if (type == QEvent::MouseMove) {
//改成用HoverMove识别
} else if (event->type() == QEvent::MouseButtonRelease) {
} else if (type == QEvent::MouseButtonRelease) {
//恢复所有
this->setCursor(Qt::ArrowCursor);
mousePressed = false;
@@ -237,8 +238,9 @@ void FramelessWidget::doResizeEvent(QEvent *event)
bool FramelessWidget::eventFilter(QObject *watched, QEvent *event)
{
int type = event->type();
if (watched == this) {
if (event->type() == QEvent::WindowStateChange) {
if (type == QEvent::WindowStateChange) {
doWindowStateChange(event);
} else {
doResizeEvent(event);
@@ -247,9 +249,9 @@ bool FramelessWidget::eventFilter(QObject *watched, QEvent *event)
//双击标题栏发出双击信号给主界面
//下面的 *result = HTCAPTION; 标志位也会自动识别双击标题栏
#ifndef Q_OS_WIN
if (event->type() == QEvent::MouseButtonDblClick) {
if (type == QEvent::MouseButtonDblClick) {
Q_EMIT titleDblClick();
} else if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) {
} else if (type == QEvent::NonClientAreaMouseButtonDblClick) {
Q_EMIT titleDblClick();
}
#endif

View File

@@ -27,7 +27,8 @@ FramelessWidget2::FramelessWidget2(QObject *parent) : QObject(parent)
bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
{
if (widget && watched == widget) {
if (event->type() == QEvent::WindowStateChange) {
int type = event->type();
if (type == QEvent::WindowStateChange) {
//解决mac系统上无边框最小化失效的bug
#ifdef Q_OS_MACOS
if (widget->windowState() & Qt::WindowMinimized) {
@@ -41,7 +42,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
}
}
#endif
} else if (event->type() == QEvent::Resize) {
} else if (type == QEvent::Resize) {
//重新计算八个描点的区域,描点区域的作用还有就是计算鼠标坐标是否在某一个区域内
int width = widget->width();
int height = widget->height();
@@ -63,7 +64,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
pressedRect[6] = QRect(0, height - padding, padding, padding);
//右下角描点区域
pressedRect[7] = QRect(width - padding, height - padding, padding, padding);
} else if (event->type() == QEvent::HoverMove) {
} else if (type == QEvent::HoverMove) {
//设置对应鼠标形状,这个必须放在这里而不是下面,因为可以在鼠标没有按下的时候识别
QHoverEvent *hoverEvent = (QHoverEvent *)event;
QPoint point = hoverEvent->pos();
@@ -148,7 +149,7 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
widget->setGeometry(widget->x(), widget->y(), resizeW, resizeH);
}
}
} else if (event->type() == QEvent::MouseButtonPress) {
} else if (type == QEvent::MouseButtonPress) {
//记住鼠标按下的坐标+窗体区域
QMouseEvent *mouseEvent = (QMouseEvent *)event;
mousePoint = mouseEvent->pos();
@@ -174,9 +175,9 @@ bool FramelessWidget2::eventFilter(QObject *watched, QEvent *event)
} else {
mousePressed = true;
}
} else if (event->type() == QEvent::MouseMove) {
} else if (type == QEvent::MouseMove) {
//改成用HoverMove识别
} else if (event->type() == QEvent::MouseButtonRelease) {
} else if (type == QEvent::MouseButtonRelease) {
//恢复所有
widget->setCursor(Qt::ArrowCursor);
mousePressed = false;