Skip to content

Commit

Permalink
Merge pull request #20267 from enen92/autocloseosd
Browse files Browse the repository at this point in the history
[VideoOSD] Add autoclose setting
  • Loading branch information
enen92 committed Dec 19, 2021
2 parents b18b34a + 2441f82 commit 3b36f60
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 0 deletions.
33 changes: 33 additions & 0 deletions addons/resource.language.en_gb/resources/strings.po
Expand Up @@ -674,6 +674,7 @@ msgid "Free"
msgstr ""

#: addons/skin.estuary/xml/Includes.xml
#: system/settings/settings.xml
msgctxt "#157"
msgid "Video"
msgstr ""
Expand Down Expand Up @@ -2227,6 +2228,8 @@ msgctxt "#477"
msgid "Unable to load playlist"
msgstr ""

#. label for "OSD" setting category
#: system/settings/settings.xml
msgctxt "#478"
msgid "OSD"
msgstr ""
Expand Down Expand Up @@ -22905,3 +22908,33 @@ msgstr ""
msgctxt "#39174"
msgid "Display supported HDR types"
msgstr ""

#. Description of settings category "OSD" with label #478
#: system/settings/settings.xml
msgctxt "#39175"
msgid "This category contains all the on screen display (OSD) related settings."
msgstr ""

#. Automatically close video OSD bool setting in Settings/Interface/OSD
#: system/settings/settings.xml
msgctxt "#39176"
msgid "Automatically close video OSD"
msgstr ""

#. Help text for "Automatically close video OSD" setting in Settings/Interface/OSD
#: system/settings/settings.xml
msgctxt "#39177"
msgid "The video OSD window will be automatically closed if visible after a specified time"
msgstr ""

#. Video OSD autoclose time (seconds) in Settings/Interface/OSD
#: system/settings/settings.xml
msgctxt "#39178"
msgid "Video OSD autoclose time (seconds)"
msgstr ""

#. Help text for setting "Video OSD autoclose time (seconds)" of label #39178
#: system/settings/settings.xml
msgctxt "#39179"
msgid "The time in seconds for the video OSD to be automatically closed"
msgstr ""
25 changes: 25 additions & 0 deletions system/settings/settings.xml
Expand Up @@ -3700,6 +3700,31 @@
</setting>
</group>
</category>
<category id="osd" label="478" help="39175">
<group id="1" label="157">
<setting id="osd.autoclosevideoosd" type="boolean" label="39176" help="39177">
<level>0</level>
<default>true</default>
<control type="toggle" />
<dependencies>
<dependency type="enable" on="property" operator="!is" name="isplaying" />
</dependencies>
</setting>
<setting id="osd.autoclosevideoosdtime" type="integer" parent="osd.autoclosevideoosd" label="39178" help="39179">
<level>2</level>
<default>5</default>
<constraints>
<minimum>2</minimum>
<step>1</step>
<maximum>60</maximum>
</constraints>
<dependencies>
<dependency type="visible" setting="osd.autoclosevideoosd">true</dependency>
</dependencies>
<control type="slider" format="integer" />
</setting>
</group>
</category>
<category id="regional" label="14222" help="36113">
<group id="1" label="14218">
<setting id="locale.language" type="addon" label="248" help="36114">
Expand Down
2 changes: 2 additions & 0 deletions xbmc/settings/Settings.cpp
Expand Up @@ -447,6 +447,8 @@ constexpr const char* CSettings::SETTING_GENERAL_ADDONBROKENFILTER;
constexpr const char* CSettings::SETTING_SOURCE_VIDEOS;
constexpr const char* CSettings::SETTING_SOURCE_MUSIC;
constexpr const char* CSettings::SETTING_SOURCE_PICTURES;
constexpr const char* CSettings::SETTING_OSD_AUTOCLOSEVIDEOOSD;
constexpr const char* CSettings::SETTING_OSD_AUTOCLOSEVIDEOOSDTIME;
//! @todo: remove in c++17

bool CSettings::Initialize()
Expand Down
2 changes: 2 additions & 0 deletions xbmc/settings/Settings.h
Expand Up @@ -65,6 +65,8 @@ class CSettings : public CSettingsBase, public CSettingCreator, public CSettingC
static constexpr auto SETTING_SCREENSAVER_TIME = "screensaver.time";
static constexpr auto SETTING_SCREENSAVER_USEMUSICVISINSTEAD = "screensaver.usemusicvisinstead";
static constexpr auto SETTING_SCREENSAVER_USEDIMONPAUSE = "screensaver.usedimonpause";
static constexpr auto SETTING_OSD_AUTOCLOSEVIDEOOSD = "osd.autoclosevideoosd";
static constexpr auto SETTING_OSD_AUTOCLOSEVIDEOOSDTIME = "osd.autoclosevideoosdtime";
static constexpr auto SETTING_WINDOW_WIDTH = "window.width";
static constexpr auto SETTING_WINDOW_HEIGHT = "window.height";
static constexpr auto SETTING_VIDEOLIBRARY_SHOWUNWATCHEDPLOTS = "videolibrary.showunwatchedplots";
Expand Down
15 changes: 15 additions & 0 deletions xbmc/video/dialogs/GUIDialogVideoOSD.cpp
Expand Up @@ -16,6 +16,8 @@
#include "guilib/WindowIDs.h"
#include "input/InputManager.h"
#include "input/actions/ActionIDs.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"

using namespace PVR;

Expand Down Expand Up @@ -58,6 +60,19 @@ bool CGUIDialogVideoOSD::OnAction(const CAction &action)
return CGUIDialog::OnAction(action);
}

void CGUIDialogVideoOSD::OnInitWindow()
{
std::shared_ptr<CSettings> settings = CServiceBroker::GetSettingsComponent()->GetSettings();
if (settings)
{
if (settings->GetBool(CSettings::SETTING_OSD_AUTOCLOSEVIDEOOSD))
{
SetAutoClose(settings->GetInt(CSettings::SETTING_OSD_AUTOCLOSEVIDEOOSDTIME) * 1000);
}
}
CGUIDialog::OnInitWindow();
}

EVENT_RESULT CGUIDialogVideoOSD::OnMouseEvent(const CPoint &point, const CMouseEvent &event)
{
if (event.m_id == ACTION_MOUSE_WHEEL_UP)
Expand Down
1 change: 1 addition & 0 deletions xbmc/video/dialogs/GUIDialogVideoOSD.h
Expand Up @@ -18,6 +18,7 @@ class CGUIDialogVideoOSD : public CGUIDialog
~CGUIDialogVideoOSD(void) override;

void FrameMove() override;
void OnInitWindow() override;
bool OnMessage(CGUIMessage& message) override;
bool OnAction(const CAction &action) override;
protected:
Expand Down

0 comments on commit 3b36f60

Please sign in to comment.