summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-01-29 19:59:14 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-02-01 16:47:25 +0100
commitad30e7df148253c6bd8466b3b45e1ed151585c2e (patch)
tree3ad51968c64376add2c11395e48c4f76efd1c413 /svx/source
parentfec7e3422f4d1c5b9382518a11d0bb99b12e41c9 (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.cxx100
-rw-r--r--svx/source/sidebar/media/MediaPlaybackPanel.hxx10
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);
};