File indexing completed on 2024-04-21 04:57:32
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2007 Matthias Kretz <kretz@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 0006 */ 0007 0008 #ifndef PHONON_MEDIACONTROLS_P_H 0009 #define PHONON_MEDIACONTROLS_P_H 0010 0011 #include "mediacontrols.h" 0012 #define TRANSLATION_DOMAIN "kfileaudiopreview6" 0013 #include <KLocalizedString> 0014 #include <QBoxLayout> 0015 #include <QStyle> 0016 #include <QToolButton> 0017 #include <phonon/seekslider.h> 0018 #include <phonon/volumeslider.h> 0019 0020 namespace Phonon 0021 { 0022 class MediaControlsPrivate 0023 { 0024 Q_DECLARE_PUBLIC(MediaControls) 0025 protected: 0026 MediaControlsPrivate(MediaControls *parent) 0027 : q_ptr(parent) 0028 , layout(parent) 0029 , playButton(parent) 0030 , pauseButton(parent) 0031 , seekSlider(parent) 0032 , volumeSlider(parent) 0033 , media(nullptr) 0034 { 0035 int size = parent->style()->pixelMetric(QStyle::PM_ToolBarIconSize); 0036 QSize iconSize(size, size); 0037 playButton.setIconSize(iconSize); 0038 playButton.setIcon(QIcon::fromTheme(QStringLiteral("media-playback-start"))); 0039 playButton.setToolTip(i18n("start playback")); 0040 playButton.setAutoRaise(true); 0041 0042 pauseButton.setIconSize(iconSize); 0043 pauseButton.setIcon(QIcon::fromTheme(QStringLiteral("media-playback-pause"))); 0044 pauseButton.setToolTip(i18n("pause playback")); 0045 pauseButton.hide(); 0046 pauseButton.setAutoRaise(true); 0047 0048 seekSlider.setIconVisible(false); 0049 0050 volumeSlider.setOrientation(Qt::Horizontal); 0051 volumeSlider.setMaximumWidth(80); 0052 volumeSlider.hide(); 0053 0054 layout.setContentsMargins(0, 0, 0, 0); 0055 layout.setSpacing(0); 0056 layout.addWidget(&playButton); 0057 layout.addWidget(&pauseButton); 0058 layout.addWidget(&seekSlider, 1); 0059 layout.addWidget(&volumeSlider); 0060 } 0061 0062 MediaControls *q_ptr; 0063 QHBoxLayout layout; 0064 QToolButton playButton; 0065 QToolButton pauseButton; 0066 SeekSlider seekSlider; 0067 VolumeSlider volumeSlider; 0068 MediaObject *media; 0069 0070 private: 0071 void _k_stateChanged(Phonon::State, Phonon::State); 0072 void _k_mediaDestroyed(); 0073 void updateVolumeSliderVisibility(); 0074 }; 0075 } // namespace Phonon 0076 0077 #endif // PHONON_MEDIACONTROLS_P_H