Presenter console: simplify configuration access (PresenterScreenFullScreen)

for key
officecfg::Office::Impress::Misc::Start::PresenterScreenFullScreen

Change-Id: I0bb82f799de46398b9ff30d63dde29decfab253f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198068
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
This commit is contained in:
Gabor Kelemen
2026-02-01 22:04:41 +01:00
parent d0e23db89a
commit eadbdfcb1a
2 changed files with 9 additions and 27 deletions
+5 -19
View File
@@ -274,18 +274,6 @@ PresenterScreen::~PresenterScreen()
{
}
bool PresenterScreen::isPresenterScreenFullScreen(const css::uno::Reference<css::uno::XComponentContext>& rxContext)
{
bool dPresenterScreenFullScreen = true;
PresenterConfigurationAccess aConfiguration (
rxContext,
u"/org.openoffice.Office.Impress/"_ustr,
PresenterConfigurationAccess::READ_ONLY);
aConfiguration.GetConfigurationNode(u"Misc/Start/PresenterScreenFullScreen"_ustr)
>>= dPresenterScreenFullScreen;
return dPresenterScreenFullScreen;
}
void SAL_CALL PresenterScreen::disposing()
{
rtl::Reference<::sd::framework::ConfigurationController> xCC (mxConfigurationControllerWeak);
@@ -351,7 +339,7 @@ void PresenterScreen::InitializePresenterScreen()
Reference<XComponentContext> xContext(mxContextWeak);
rtl::Reference<sd::framework::ResourceId> xMainPaneId(
GetMainPaneId(xPresentation, xContext));
GetMainPaneId(xPresentation));
// An empty reference means that the presenter screen can
// not or must not be displayed.
if ( ! xMainPaneId.is())
@@ -448,7 +436,7 @@ void PresenterScreen::CheckNextSlideUpdate(const Reference<drawing::XShape>& rxS
* on or -1 to not show anything.
*/
sal_Int32 PresenterScreen::GetPresenterScreenNumber (
const Reference<presentation::XPresentation2>& rxPresentation) const
const Reference<presentation::XPresentation2>& rxPresentation)
{
sal_Int32 nScreenNumber (0);
try
@@ -493,10 +481,9 @@ sal_Int32 PresenterScreen::GetPresenterScreenNumber (
// screen is shown only when a special flag in the configuration
// is set or when the presenter screen will be shown as
// non-full screen window
Reference<XComponentContext> xContext (mxContextWeak);
bool bStartAlways = officecfg::Office::PresenterScreen::Presenter::StartAlways::get().value_or(
false);
bool bPresenterScreenFullScreen = isPresenterScreenFullScreen(xContext);
bool bPresenterScreenFullScreen = officecfg::Office::Impress::Misc::Start::PresenterScreenFullScreen::get();
if (bStartAlways || !bPresenterScreenFullScreen)
return GetPresenterScreenFromScreen(nScreenNumber);
return -1;
@@ -540,8 +527,7 @@ sal_Int32 PresenterScreen::GetPresenterScreenFromScreen( sal_Int32 nPresentation
}
rtl::Reference<sd::framework::ResourceId> PresenterScreen::GetMainPaneId (
const Reference<presentation::XPresentation2>& rxPresentation,
const Reference<XComponentContext>& xContext) const
const Reference<presentation::XPresentation2>& rxPresentation)
{
// A negative value means that the presentation spans all available
// displays. That leaves no room for the presenter.
@@ -549,7 +535,7 @@ rtl::Reference<sd::framework::ResourceId> PresenterScreen::GetMainPaneId (
if (nScreen < 0)
return nullptr;
auto fullScreenStr = isPresenterScreenFullScreen(xContext)
auto fullScreenStr = officecfg::Office::Impress::Misc::Start::PresenterScreenFullScreen::get()
? u"true"_ustr
: u"false"_ustr;
+4 -8
View File
@@ -107,9 +107,6 @@ public:
virtual void SAL_CALL disposing() override;
static bool isPresenterScreenFullScreen(
const css::uno::Reference<css::uno::XComponentContext>& rxContext);
/** Make the presenter screen visible.
*/
void InitializePresenterScreen();
@@ -217,17 +214,16 @@ private:
Returns -1 when the presenter screen can or shall not be
displayed.
*/
sal_Int32 GetPresenterScreenNumber (
const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation) const;
static sal_Int32 GetPresenterScreenNumber (
const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation);
static sal_Int32 GetPresenterScreenFromScreen( sal_Int32 nPresentationScreen );
/** Create a resource id for the full screen background pane so that it
is displayed on another screen than the full screen presentation.
*/
rtl::Reference<sd::framework::ResourceId> GetMainPaneId (
const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation,
const css::uno::Reference<css::uno::XComponentContext>& xContext) const;
static rtl::Reference<sd::framework::ResourceId> GetMainPaneId (
const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation);
};
}