diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-01-29 19:59:14 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-01 16:47:25 +0100 |
commit | ad30e7df148253c6bd8466b3b45e1ed151585c2e (patch) | |
tree | 3ad51968c64376add2c11395e48c4f76efd1c413 /svx/source | |
parent | fec7e3422f4d1c5b9382518a11d0bb99b12e41c9 (diff) |
weld MediaPlaybackPanel
Change-Id: I84c9e6f37de3b22b896f8109e49a5a0391630ac2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87754
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx/source')
-rw-r--r-- | svx/source/sidebar/media/MediaPlaybackPanel.cxx | 100 | ||||
-rw-r--r-- | svx/source/sidebar/media/MediaPlaybackPanel.hxx | 10 |
2 files changed, 49 insertions, 61 deletions
diff --git a/svx/source/sidebar/media/MediaPlaybackPanel.cxx b/svx/source/sidebar/media/MediaPlaybackPanel.cxx index 5fb0e2c8e86f..909eb2798a22 100644 --- a/svx/source/sidebar/media/MediaPlaybackPanel.cxx +++ b/svx/source/sidebar/media/MediaPlaybackPanel.cxx @@ -36,18 +36,19 @@ MediaPlaybackPanel::MediaPlaybackPanel ( vcl::Window* pParent, const css::uno::Reference<css::frame::XFrame>& rxFrame, SfxBindings* pBindings) - : PanelLayout(pParent, "MediaPlaybackPanel", "svx/ui/mediaplayback.ui", rxFrame), + : PanelLayout(pParent, "MediaPlaybackPanel", "svx/ui/mediaplayback.ui", rxFrame, true), MediaControlBase(), maMediaController(SID_AVMEDIA_TOOLBOX, *pBindings, *this), maIdle("MediaPlaybackPanel"), mpBindings(pBindings) { - get(mpTimeEdit, "timeedit"); - get(mpPlayToolBox, "playtoolbox"); - get(mpMuteToolBox, "mutetoolbox"); - get(mpTimeSlider, "timeslider"); - get(mpVolumeSlider, "volumeslider"); - get(mpZoomListBox, "zoombox"); + mxTimeEdit = m_xBuilder->weld_entry("timeedit"); + mxPlayToolBox = m_xBuilder->weld_toolbar("playtoolbox"); + mxMuteToolBox = m_xBuilder->weld_toolbar("mutetoolbox"); + mxTimeSlider = m_xBuilder->weld_scale("timeslider"); + mxVolumeSlider = m_xBuilder->weld_scale("volumeslider"); + mxZoomListBox = m_xBuilder->weld_combo_box("zoombox"); + Initialize(); } @@ -77,10 +78,10 @@ MediaPlaybackPanel::~MediaPlaybackPanel() void MediaPlaybackPanel::Initialize() { InitializeWidgets(); - mpVolumeSlider->SetSlideHdl(LINK(this, MediaPlaybackPanel, VolumeSlideHdl)); - mpPlayToolBox->SetSelectHdl(LINK(this, MediaPlaybackPanel, PlayToolBoxSelectHdl)); - mpMuteToolBox->SetSelectHdl(LINK(this, MediaPlaybackPanel, PlayToolBoxSelectHdl)); - mpTimeSlider->SetSlideHdl(LINK(this, MediaPlaybackPanel, SeekHdl)); + mxVolumeSlider->connect_value_changed(LINK(this, MediaPlaybackPanel, VolumeSlideHdl)); + mxPlayToolBox->connect_clicked(LINK(this, MediaPlaybackPanel, PlayToolBoxSelectHdl)); + mxMuteToolBox->connect_clicked(LINK(this, MediaPlaybackPanel, PlayToolBoxSelectHdl)); + mxTimeSlider->connect_value_changed(LINK(this, MediaPlaybackPanel, SeekHdl)); maIdle.SetPriority( TaskPriority::HIGHEST ); maIdle.SetInvokeHandler( LINK( this, MediaPlaybackPanel, TimeoutHdl ) ); @@ -90,7 +91,7 @@ void MediaPlaybackPanel::Initialize() void MediaPlaybackPanel::dispose() { - mpTimeEdit.disposeAndClear(); + disposeWidgets(); PanelLayout::dispose(); } @@ -109,10 +110,10 @@ void MediaPlaybackPanel::NotifyItemUpdate( } } -void MediaPlaybackPanel::UpdateToolBoxes(MediaItem aMediaItem) +void MediaPlaybackPanel::UpdateToolBoxes(const MediaItem& rMediaItem) { - mpPlayToolBox->Disable(); - avmedia::MediaControlBase::UpdateToolBoxes(aMediaItem); + mxPlayToolBox->set_sensitive(false); + avmedia::MediaControlBase::UpdateToolBoxes(rMediaItem); } void MediaPlaybackPanel::Update() @@ -126,20 +127,20 @@ void MediaPlaybackPanel::Update() } } -IMPL_LINK_NOARG( MediaPlaybackPanel, VolumeSlideHdl, Slider*, void) +IMPL_LINK_NOARG( MediaPlaybackPanel, VolumeSlideHdl, weld::Scale&, void) { MediaItem aItem(SID_AVMEDIA_TOOLBOX); - aItem.setVolumeDB( static_cast< sal_Int16 > (mpVolumeSlider->GetThumbPos())); + aItem.setVolumeDB(mxVolumeSlider->get_value()); mpBindings->GetDispatcher()->ExecuteList(SID_AVMEDIA_TOOLBOX, SfxCallMode::RECORD, { &aItem }); } -IMPL_LINK_NOARG( MediaPlaybackPanel, SeekHdl, Slider*, void) +IMPL_LINK_NOARG( MediaPlaybackPanel, SeekHdl, weld::Scale&, void) { MediaItem aItem(SID_AVMEDIA_TOOLBOX); aItem.setState( MediaState::Pause ); double nTime = 0; if (mpMediaItem) - nTime = mpTimeSlider->GetThumbPos() * mpMediaItem->getDuration() / AVMEDIA_TIME_RANGE; + nTime = mxTimeSlider->get_value() * mpMediaItem->getDuration() / AVMEDIA_TIME_RANGE; aItem.setTime(nTime); mpBindings->GetDispatcher()->ExecuteList(SID_AVMEDIA_TOOLBOX, SfxCallMode::RECORD, { &aItem }); mpBindings->Invalidate(SID_AVMEDIA_TOOLBOX); @@ -150,48 +151,37 @@ IMPL_LINK_NOARG( MediaPlaybackPanel, TimeoutHdl, Timer*, void) mpBindings->Invalidate(SID_AVMEDIA_TOOLBOX); } -IMPL_LINK( MediaPlaybackPanel, PlayToolBoxSelectHdl, ToolBox*, pControl, void) +IMPL_LINK( MediaPlaybackPanel, PlayToolBoxSelectHdl, const OString&, rId, void) { MediaItem aItem(SID_AVMEDIA_TOOLBOX); - switch(pControl->GetCurItemId()) - { - case AVMEDIA_TOOLBOXITEM_PLAY: - { - aItem.setState( MediaState::Play ); - if( !mpMediaItem || (mpMediaItem->getTime() == mpMediaItem->getDuration() )) - aItem.setTime( 0.0 ); - else - aItem.setTime( mpMediaItem->getTime()); - } - break; - - case AVMEDIA_TOOLBOXITEM_PAUSE: - { - aItem.setState( MediaState::Pause ); - } - break; + if (rId == "play") + { + aItem.setState( MediaState::Play ); - case AVMEDIA_TOOLBOXITEM_STOP: - { - aItem.setState( MediaState::Stop ); + if( !mpMediaItem || (mpMediaItem->getTime() == mpMediaItem->getDuration() )) aItem.setTime( 0.0 ); - } - break; - - case AVMEDIA_TOOLBOXITEM_MUTE: - { - aItem.setMute( !mpMuteToolBox->IsItemChecked( AVMEDIA_TOOLBOXITEM_MUTE ) ); - } - break; - - case AVMEDIA_TOOLBOXITEM_LOOP: - { - aItem.setLoop( !mpPlayToolBox->IsItemChecked( AVMEDIA_TOOLBOXITEM_LOOP ) ); - } - break; - default: break; + else + aItem.setTime( mpMediaItem->getTime()); + } + else if (rId == "pause") + { + aItem.setState( MediaState::Pause ); + } + else if (rId == "stop") + { + aItem.setState( MediaState::Stop ); + aItem.setTime( 0.0 ); + } + else if (rId == "mute") + { + aItem.setMute( mxMuteToolBox->get_item_active("mute") ); } + else if (rId == "loop") + { + aItem.setLoop( mxPlayToolBox->get_item_active("loop") ); + } + if(aItem.getMaskSet() != AVMediaSetMask::NONE) { mpBindings->GetDispatcher()->ExecuteList(SID_AVMEDIA_TOOLBOX, SfxCallMode::RECORD, { &aItem } ); diff --git a/svx/source/sidebar/media/MediaPlaybackPanel.hxx b/svx/source/sidebar/media/MediaPlaybackPanel.hxx index 3f9d06de1d03..b7f516aaf746 100644 --- a/svx/source/sidebar/media/MediaPlaybackPanel.hxx +++ b/svx/source/sidebar/media/MediaPlaybackPanel.hxx @@ -23,8 +23,6 @@ #include <com/sun/star/frame/XFrame.hpp> #include <svx/sidebar/PanelLayout.hxx> -#include <vcl/slider.hxx> -#include <vcl/toolbox.hxx> #include <avmedia/mediaitem.hxx> #include <sfx2/bindings.hxx> #include <sfx2/sidebar/ControllerItem.hxx> @@ -56,7 +54,7 @@ public: virtual void dispose() override; protected: - virtual void UpdateToolBoxes(avmedia::MediaItem aMediaItem) override; + virtual void UpdateToolBoxes(const avmedia::MediaItem& rMediaItem) override; private: std::unique_ptr< ::avmedia::MediaItem > mpMediaItem; @@ -68,9 +66,9 @@ private: virtual void NotifyItemUpdate( const sal_uInt16 nSID, const SfxItemState eState, const SfxPoolItem* pState) override; - DECL_LINK(PlayToolBoxSelectHdl, ToolBox*, void); - DECL_LINK(VolumeSlideHdl, Slider*, void); - DECL_LINK(SeekHdl, Slider*, void); + DECL_LINK(PlayToolBoxSelectHdl, const OString&, void); + DECL_LINK(VolumeSlideHdl, weld::Scale&, void); + DECL_LINK(SeekHdl, weld::Scale&, void); DECL_LINK(TimeoutHdl, Timer*, void); }; |