新增视频播放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;

View File

@@ -54,17 +54,18 @@ bool GifWidget::eventFilter(QObject *watched, QEvent *event)
static QPoint mousePoint;
static bool mousePressed = false;
int type = event->type();
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->type() == QEvent::MouseButtonPress) {
if (type == QEvent::MouseButtonPress) {
if (mouseEvent->button() == Qt::LeftButton) {
mousePressed = true;
mousePoint = mouseEvent->globalPos() - this->pos();
return true;
}
} else if (mouseEvent->type() == QEvent::MouseButtonRelease) {
} else if (type == QEvent::MouseButtonRelease) {
mousePressed = false;
return true;
} else if (mouseEvent->type() == QEvent::MouseMove) {
} else if (type == QEvent::MouseMove) {
if (mousePressed) {
this->move(mouseEvent->globalPos() - mousePoint);
return true;

View File

@@ -78,18 +78,19 @@ void MaskWidget::showEvent(QShowEvent *)
bool MaskWidget::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::Show) {
int type = event->type();
if (type == QEvent::Show) {
if (dialogNames.contains(obj->objectName())) {
this->show();
this->activateWindow();
QWidget *w = (QWidget *)obj;
w->activateWindow();
}
} else if (event->type() == QEvent::Hide) {
} else if (type == QEvent::Hide) {
if (dialogNames.contains(obj->objectName())) {
this->hide();
}
} else if (event->type() == QEvent::WindowActivate) {
} else if (type == QEvent::WindowActivate) {
//当主窗体激活时,同时激活遮罩层
if (mainWidget) {
if (obj->objectName() == mainWidget->objectName()) {

View File

@@ -14,8 +14,9 @@ MoveWidget::MoveWidget(QObject *parent) : QObject(parent)
bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
{
if (widget && watched == widget) {
int type = event->type();
QMouseEvent *mouseEvent = (QMouseEvent *)event;
if (mouseEvent->type() == QEvent::MouseButtonPress) {
if (type == QEvent::MouseButtonPress) {
//如果限定了只能鼠标左键拖动则判断当前是否是鼠标左键
if (leftButton && mouseEvent->button() != Qt::LeftButton) {
return false;
@@ -26,7 +27,7 @@ bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
lastPoint = mouseEvent->pos();
pressed = true;
}
} else if (mouseEvent->type() == QEvent::MouseMove && pressed) {
} else if (type == QEvent::MouseMove && pressed) {
//计算坐标偏移值,调用move函数移动过去
int offsetX = mouseEvent->pos().x() - lastPoint.x();
int offsetY = mouseEvent->pos().y() - lastPoint.y();
@@ -47,7 +48,7 @@ bool MoveWidget::eventFilter(QObject *watched, QEvent *event)
}
widget->move(x, y);
} else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) {
} else if (type == QEvent::MouseButtonRelease && pressed) {
pressed = false;
}
}