Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[废弃] 改进 sliderSong 的点击、拖拽与同步问题 #32

Closed
wants to merge 5 commits into from

Conversation

pzhlkj6612
Copy link
Member

@pzhlkj6612 pzhlkj6612 commented Oct 6, 2019

要实现的

鼠标形状

  • 鼠标是否在手柄上由控件实际大小计算,而不需要获取 sliderSong 当前进度。
  • 鼠标在 sliderSong 中,如果在手柄上,将显示Qt::PointingHandCursor,否则不改变形状。这与 网易云音乐 的模式相同;
  • 鼠标在 sliderSong 中的形状在mouseMoveEvent(QMouseEvent *)方法中处理,而不是enterEvent(QEvent *event)leaveEvent(QEvent *event)

单击 sliderSong 后的行为

  • 鼠标在 silderSong 的非手柄位置单击,将会直接跳转,而不是移动一“步”的距离;
  • 鼠标单击且不移动手柄,会在手柄所在位置暂停并继续播放。这与 网易云音乐 的模式相同;
  • 干掉了BottomWidget中很多关于 sliderSong 的冗余的逻辑。
  • 由于void BottomWidget::positionChanged(int position)的调用时机问题,在m_positionUpdateTimer周期极短时(现在为 0 ,能看得很清楚),sliderSong 在定位到新位置后会闪回原位置,具体的可以看打印的日志。这与PlayThreadMusicPlayer有一定关系,我还未解决这个问题(在 Windows 10 上现象出现频率降低)。

还没做而且意义不大的

  • 在不能操作 sliderSong 时鼠标在手柄上方时,手柄样式不改变(即按需改变 sliderSong 的 QSlider#sliderSound::handle:horizontal:hover)。

放弃的

其他

环境

Windows 10 + MSVC 2015 32-bit + Qt 5.9.8
Windows 7 SP1 无开发环境
Ubuntu 18.04 ( GNOME Shell 3.28.2 )+ gcc 7.4.0 64-bit + Qt 5.9.8

有关的 issue

#8 #21

1. Change slider's behavior. When the handle have been clicked, it will jump to the position of that click rather than move forward or backward a "step".
2. Use `subControlRect()' to get the region of the handle.
3. Use `mouseMoveEvent()' to test the cursor's position and change its shape.
只单击不移动 handle 将不再改变播放进度(会从手柄当前位置重新播放)
重写 QSlider::mouseReleaseEvent 以使 &QSlider::sliderReleased 的接收者由
sig_refreshClickPos 信号获得最新位置
重命名信号 &BesSlider::sig_clickNotOnHandle 为 &BesSlider::sig_refreshClickPos
重命名方法 BottomWidget::onSliderSongClickNotOnHandle 为
BottomWidget::onSliderSongClicked
@pzhlkj6612 pzhlkj6612 marked this pull request as ready for review October 9, 2019 03:22
@pzhlkj6612
Copy link
Member Author

抱歉,由于之前对 git 的理解有误,连续执行了几个误操作,造成了由于待合并分支上的修改被抹去而自动关闭 PR,又多次 force-push 到待合并分支的问题。

现在是最佳状态,可以 review 了。

@BensonLaur
Copy link
Member

辛苦了!我后面找个时间仔细看看~

@pzhlkj6612
Copy link
Member Author

好的。我这边有可能会继续开 issue 和 PR ,如果是 PR 我会去解决分支冲突问题。一切都等你有空再看。

@pzhlkj6612
Copy link
Member Author

抱歉,我这边为了把sliderSong功能写完整,修改波及到了MusicPlayerPlayerThreadBottomWidgetBesSlider等等组件,就先关掉 PR ,等稳定了再说。

@pzhlkj6612 pzhlkj6612 closed this Nov 8, 2019
@pzhlkj6612 pzhlkj6612 changed the title 改进 sliderSong 的点击、拖拽与同步问题 [废弃] 改进 sliderSong 的点击、拖拽与同步问题 Dec 10, 2019
@pzhlkj6612 pzhlkj6612 added the _Refactor the player 整个播放逻辑需要重做。 label Feb 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
abandoned _Refactor the player 整个播放逻辑需要重做。
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants