diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-10-26 03:00:51 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-10-26 03:00:51 +0200 |
commit | ddcb1ef8586978cb737f741bb3cce443f0f5d241 (patch) | |
tree | b974cd38b7242fa0fdfaa38677c22860828bfb01 | |
parent | 1560fb43ec600a117f7fde37e765b7f0ef53a10e (diff) | |
parent | 4e9c35588ccb72f09df61b81a748bde92286b45e (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Id6597e900c1a371e88d20689280ea0afa2655926
-rw-r--r-- | examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc | 16 | ||||
-rw-r--r-- | examples/winextras/musicplayer/musicplayer.cpp | 14 | ||||
-rw-r--r-- | examples/winextras/musicplayer/musicplayer.h | 1 |
3 files changed, 26 insertions, 5 deletions
diff --git a/examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc b/examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc index 8908699..8b8fd57 100644 --- a/examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc +++ b/examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc @@ -100,9 +100,19 @@ \image qtwinextras-musicplayer-taskbar.png Screenshot of the Music Player taskbar - The following snippet shows how the taskbar button is prepared. The playback - progress is wired directly to the taskbar progress indicator by using signals - and slots. + The following snippets show how the taskbar button is prepared. + + For the taskbar and the thumbnail toolbar to work, a native window handle + must be set by passing an instance of \c QWindow to + \c QWinTaskbarButton::setWindow() or \c QWinThumbnailToolBar::setWindow(), + respectively. This instance is created in the process of \c QWidget::show() + and can be retrieved by calling \c QWidget::windowHandle() afterwards. + We override \c QWidget::showEvent() for this purpose: + + \snippet musicplayer/musicplayer.cpp 7 + + The playback progress is wired directly to the taskbar progress indicator + by using signals and slots. \snippet musicplayer/musicplayer.cpp 5 diff --git a/examples/winextras/musicplayer/musicplayer.cpp b/examples/winextras/musicplayer/musicplayer.cpp index 12c6854..2ecff56 100644 --- a/examples/winextras/musicplayer/musicplayer.cpp +++ b/examples/winextras/musicplayer/musicplayer.cpp @@ -140,6 +140,18 @@ bool MusicPlayer::event(QEvent *event) } //! [0] +//! [7] +void MusicPlayer::showEvent(QShowEvent *event) +{ + QWidget::showEvent(event); + if (!taskbarButton->window()) { + auto window = windowHandle(); + taskbarButton->setWindow(window); + thumbnailToolBar->setWindow(window); + } +} +//! [7] + static bool canHandleDrop(const QDropEvent *event) { const QList<QUrl> urls = event->mimeData()->urls(); @@ -383,7 +395,6 @@ void MusicPlayer::createJumpList() void MusicPlayer::createTaskbar() { taskbarButton = new QWinTaskbarButton(this); - taskbarButton->setWindow(windowHandle()); taskbarProgress = taskbarButton->progress(); connect(positionSlider, &QAbstractSlider::valueChanged, taskbarProgress, &QWinTaskbarProgress::setValue); @@ -397,7 +408,6 @@ void MusicPlayer::createTaskbar() void MusicPlayer::createThumbnailToolBar() { thumbnailToolBar = new QWinThumbnailToolBar(this); - thumbnailToolBar->setWindow(windowHandle()); playToolButton = new QWinThumbnailToolButton(thumbnailToolBar); playToolButton->setEnabled(false); diff --git a/examples/winextras/musicplayer/musicplayer.h b/examples/winextras/musicplayer/musicplayer.h index 56f4c67..49dd25b 100644 --- a/examples/winextras/musicplayer/musicplayer.h +++ b/examples/winextras/musicplayer/musicplayer.h @@ -82,6 +82,7 @@ public slots: protected: bool event(QEvent *event) override; + void showEvent(QShowEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override; void dropEvent(QDropEvent *event) override; void mousePressEvent(QMouseEvent *event) override; |