aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-10-26 03:00:51 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-10-26 03:00:51 +0200
commitddcb1ef8586978cb737f741bb3cce443f0f5d241 (patch)
treeb974cd38b7242fa0fdfaa38677c22860828bfb01
parent1560fb43ec600a117f7fde37e765b7f0ef53a10e (diff)
parent4e9c35588ccb72f09df61b81a748bde92286b45e (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
-rw-r--r--examples/winextras/musicplayer/doc/src/qtwinextras-musicplayer.qdoc16
-rw-r--r--examples/winextras/musicplayer/musicplayer.cpp14
-rw-r--r--examples/winextras/musicplayer/musicplayer.h1
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;