vcl/android/androidinst.cxx     |   11 +++--------
 vcl/headless/headlessinst.cxx   |    6 ++----
 vcl/headless/svpdummies.cxx     |    4 +---
 vcl/inc/headless/svpdummies.hxx |    4 +---
 vcl/inc/qt5/QtSystem.hxx        |    3 +--
 vcl/inc/salsys.hxx              |    3 ---
 vcl/inc/unx/gensys.h            |    9 ---------
 vcl/inc/unx/gtk/gtksys.hxx      |    4 +---
 vcl/inc/unx/x11/x11sys.hxx      |    5 ++---
 vcl/ios/iosinst.cxx             |   10 ++--------
 vcl/qt5/QtSystem.cxx            |    5 +----
 vcl/unx/generic/app/gensys.cxx  |    8 --------
 vcl/unx/gtk3/gtksys.cxx         |   15 ++++-----------
 vcl/unx/x11/x11sys.cxx          |    8 +++-----
 14 files changed, 21 insertions(+), 74 deletions(-)

New commits:
commit ce61ebf5a41f4df903aea6eeb2830a3deaaf1a45
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Feb 27 22:54:05 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Sat Feb 28 16:36:24 2026 +0100

    vcl: Drop SalGenericSystem indirection to show error dlg
    
    So far, SalGenericSystem was implementing
    the purely virtual base class method
    SalSystem::ShowNativeMessageBox by
    providing another purely virtual
    ShowNativeDialog method and calling
    that one from ShowNativeMessageBox.
    
    Now, after previous commits
    
        Change-Id: Iaf2c803071698911f4834070ad00b9ad325374c9
        Author: Michael Weghorn <[email protected]>
        Date:   Fri Feb 27 22:27:37 2026 +0100
    
            vcl: Drop SalSystem::ShowNativeMessageBox return value
    
    and
    
        Change-Id: I8eb68974f7b89235f54f8600a940295093dc0bb7
        Author: Michael Weghorn <[email protected]>
        Date:   Fri Feb 27 22:41:46 2026 +0100
    
            vcl: Call ImplHideSplash from Application::ShowNativeErrorBox
    
    , this doesn't really add any value.
    
    Therefore, drop SalGenericSystem::ShowNativeMessageBox and
    instead override that method directly in the
    SalGenericSystem subclasses.
    
    The behavior as described in
    
        Change-Id: Iaf2c803071698911f4834070ad00b9ad325374c9
        Author: Michael Weghorn <[email protected]>
        Date:   Fri Feb 27 22:27:37 2026 +0100
    
            vcl: Drop SalSystem::ShowNativeMessageBox return value
    
    can still be observed the same way.
    
    Change-Id: I9206286d109fbfa8ac1b8cf3c8cea3b016ae7448
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200659
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/android/androidinst.cxx b/vcl/android/androidinst.cxx
index aa869f0d957b..ec2b0a845ba7 100644
--- a/vcl/android/androidinst.cxx
+++ b/vcl/android/androidinst.cxx
@@ -86,9 +86,8 @@ class AndroidSalSystem : public SvpSalSystem {
 public:
     AndroidSalSystem() : SvpSalSystem() {}
     virtual ~AndroidSalSystem() {}
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& rButtons );
+
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 };
 
 SalSystem *AndroidSalInstance::CreateSalSystem()
@@ -163,11 +162,8 @@ extern "C" SalInstance *create_SalInstance()
     return pInstance;
 }
 
-int AndroidSalSystem::ShowNativeDialog( const OUString& rTitle,
-                                        const OUString& rMessage,
-                                        const std::vector< OUString >& 
rButtons )
+void AndroidSalSystem::ShowNativeMessageBox(const OUString& rTitle, const 
OUString& rMessage)
 {
-    (void)rButtons;
     LOGI("LibreOffice native dialog '%s': '%s'",
          OUStringToOString(rTitle, RTL_TEXTENCODING_ASCII_US).getStr(),
          OUStringToOString(rMessage, RTL_TEXTENCODING_ASCII_US).getStr());
@@ -192,7 +188,6 @@ int AndroidSalSystem::ShowNativeDialog( const OUString& 
rTitle,
     }
     else
         LOGE("VCL not initialized");
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/headless/headlessinst.cxx b/vcl/headless/headlessinst.cxx
index 674e3c014362..65bc5d3a4a05 100644
--- a/vcl/headless/headlessinst.cxx
+++ b/vcl/headless/headlessinst.cxx
@@ -30,15 +30,13 @@ 
HeadlessSalInstance::HeadlessSalInstance(std::unique_ptr<SalYieldMutex> pMutex)
 class HeadlessSalSystem : public SvpSalSystem {
 public:
     HeadlessSalSystem() : SvpSalSystem() {}
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& ) override
+
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override
     {
         SAL_INFO("vcl.headless",
                 "LibreOffice - dialog '"
                 << rTitle << "': '"
                 << rMessage << "'");
-        return 0;
     }
 };
 
diff --git a/vcl/headless/svpdummies.cxx b/vcl/headless/svpdummies.cxx
index cc12639d61fa..7c072e9c56fa 100644
--- a/vcl/headless/svpdummies.cxx
+++ b/vcl/headless/svpdummies.cxx
@@ -47,10 +47,8 @@ AbsoluteScreenPixelRectangle 
SvpSalSystem::GetDisplayScreenPosSizePixel( unsigne
     return aRect;
 }
 
-int SvpSalSystem::ShowNativeDialog( const OUString&, const OUString&,
-                                    const std::vector< OUString >& )
+void SvpSalSystem::ShowNativeMessageBox(const OUString&, const OUString&)
 {
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/headless/svpdummies.hxx b/vcl/inc/headless/svpdummies.hxx
index 6300cfa31887..7e472acdaf9f 100644
--- a/vcl/inc/headless/svpdummies.hxx
+++ b/vcl/inc/headless/svpdummies.hxx
@@ -51,9 +51,7 @@ public:
     virtual unsigned int GetDisplayScreenCount() override;
     virtual AbsoluteScreenPixelRectangle GetDisplayScreenPosSizePixel( 
unsigned int nScreen ) override;
 
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& rButtons ) 
override;
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt5/QtSystem.hxx b/vcl/inc/qt5/QtSystem.hxx
index ba6e63e471fb..2a1e69a0bede 100644
--- a/vcl/inc/qt5/QtSystem.hxx
+++ b/vcl/inc/qt5/QtSystem.hxx
@@ -17,8 +17,7 @@ public:
     virtual unsigned int GetDisplayScreenCount() override;
     virtual AbsoluteScreenPixelRectangle
     GetDisplayScreenPosSizePixel(unsigned int nScreen) override;
-    virtual int ShowNativeDialog(const OUString& rTitle, const OUString& 
rMessage,
-                                 const std::vector<OUString>& rButtons) 
override;
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/inc/salsys.hxx b/vcl/inc/salsys.hxx
index 850b5ecf5502..48d1ce8795f2 100644
--- a/vcl/inc/salsys.hxx
+++ b/vcl/inc/salsys.hxx
@@ -23,9 +23,6 @@
 #include <vcl/dllapi.h>
 #include <rtl/ustring.hxx>
 
-// Button identifier for ShowNativeMessageBox
-const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_OK = 1;
-
 class VCL_PLUGIN_PUBLIC SalSystem
 {
 public:
diff --git a/vcl/inc/unx/gensys.h b/vcl/inc/unx/gensys.h
index 2e264096c91f..5167e997ac9a 100644
--- a/vcl/inc/unx/gensys.h
+++ b/vcl/inc/unx/gensys.h
@@ -20,21 +20,12 @@
 #pragma once
 
 #include <salsys.hxx>
-#include <vector>
 
-/*
- * Helps de-tangle the rather horrible ShowNativeMessageBox API
- */
 class VCL_DLLPUBLIC SalGenericSystem : public SalSystem
 {
  public:
     SalGenericSystem();
     virtual ~SalGenericSystem() override;
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& rButtons ) = 
0;
-
-    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 
 #if !defined(ANDROID) && !defined(IOS)
     // Simple helpers for X11 WM_CLASS hints
diff --git a/vcl/inc/unx/gtk/gtksys.hxx b/vcl/inc/unx/gtk/gtksys.hxx
index 0dd756f7a7d9..73b556ec3511 100644
--- a/vcl/inc/unx/gtk/gtksys.hxx
+++ b/vcl/inc/unx/gtk/gtksys.hxx
@@ -29,9 +29,7 @@ public:
     virtual unsigned int  GetDisplayScreenCount() override;
     virtual unsigned int  GetDisplayBuiltInScreen() override;
     virtual AbsoluteScreenPixelRectangle GetDisplayScreenPosSizePixel(unsigned 
int nScreen) override;
-    virtual int           ShowNativeDialog (const OUString&              
rTitle,
-                                            const OUString&              
rMessage,
-                                            const std::vector< OUString >& 
rButtons) override;
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
     SalX11Screen      GetDisplayDefaultXScreen()
             { return getXScreenFromDisplayScreen( GetDisplayBuiltInScreen() ); 
}
     SalX11Screen      getXScreenFromDisplayScreen(unsigned int nDisplayScreen);
diff --git a/vcl/inc/unx/x11/x11sys.hxx b/vcl/inc/unx/x11/x11sys.hxx
index 37c5b0b7d1c5..241b8894eb7d 100644
--- a/vcl/inc/unx/x11/x11sys.hxx
+++ b/vcl/inc/unx/x11/x11sys.hxx
@@ -20,6 +20,7 @@
 #pragma once
 
 #include <unx/gensys.h>
+#include <vector>
 
 class X11SalSystem final : public SalGenericSystem
 {
@@ -31,9 +32,7 @@ public:
     virtual unsigned int GetDisplayScreenCount() override;
     virtual unsigned int GetDisplayBuiltInScreen() override;
     virtual AbsoluteScreenPixelRectangle GetDisplayScreenPosSizePixel( 
unsigned int nScreen ) override;
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& rButtons ) 
override;
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index 15d9b9b6fcb0..f9b6806812bc 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -59,9 +59,7 @@ class IosSalSystem : public SvpSalSystem {
 public:
     IosSalSystem() : SvpSalSystem() {}
     virtual ~IosSalSystem() {}
-    virtual int ShowNativeDialog( const OUString& rTitle,
-                                  const OUString& rMessage,
-                                  const std::vector< OUString >& rButtons );
+    virtual void ShowNativeMessageBox(const OUString& rTitle, const OUString& 
rMessage) override;
 };
 
 SalSystem *IosSalInstance::CreateSalSystem()
@@ -148,12 +146,8 @@ extern "C" SalInstance *create_SalInstance()
     return new IosSalInstance(std::make_unique<SvpSalYieldMutex>());
 }
 
-int IosSalSystem::ShowNativeDialog( const OUString& rTitle,
-                                    const OUString& rMessage,
-                                    const std::vector< OUString >& rButtons )
+void IosSalSystem::ShowNativeMessageBox(const OUString& rTitle, const 
OUString& rMessage)
 {
-    (void)rButtons;
-
     NSLog(@"%@: %@", [CreateNSString(rTitle) autorelease], 
[CreateNSString(rMessage) autorelease]);
 
     return 0;
diff --git a/vcl/qt5/QtSystem.cxx b/vcl/qt5/QtSystem.cxx
index 298bd5d3e0f8..0a7060de8fce 100644
--- a/vcl/qt5/QtSystem.cxx
+++ b/vcl/qt5/QtSystem.cxx
@@ -22,9 +22,6 @@ AbsoluteScreenPixelRectangle 
QtSystem::GetDisplayScreenPosSizePixel(unsigned int
     return AbsoluteScreenPixelRectangle(toRectangle(scaledQRect(qRect, 
qApp->devicePixelRatio())));
 }
 
-int QtSystem::ShowNativeDialog(const OUString&, const OUString&, const 
std::vector<OUString>&)
-{
-    return 0;
-}
+void QtSystem::ShowNativeMessageBox(const OUString&, const OUString&) {}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/unx/generic/app/gensys.cxx b/vcl/unx/generic/app/gensys.cxx
index c7c2ff89889a..ec10809994ed 100644
--- a/vcl/unx/generic/app/gensys.cxx
+++ b/vcl/unx/generic/app/gensys.cxx
@@ -37,14 +37,6 @@ SalGenericSystem::~SalGenericSystem()
 {
 }
 
-void SalGenericSystem::ShowNativeMessageBox(const OUString& rTitle, const 
OUString& rMessage)
-{
-    std::vector< OUString > aButtons;
-
-    aButtons.push_back( u"OK"_ustr );
-    ShowNativeDialog(rTitle, rMessage, aButtons);
-}
-
 #if !defined(ANDROID) && !defined(IOS)
 
 // X11-specific
diff --git a/vcl/unx/gtk3/gtksys.cxx b/vcl/unx/gtk3/gtksys.cxx
index 4dc191bd67d2..8a64364f9b98 100644
--- a/vcl/unx/gtk3/gtksys.cxx
+++ b/vcl/unx/gtk3/gtksys.cxx
@@ -297,8 +297,7 @@ gint gtk_dialog_run(GtkDialog* pDialog)
 
 #endif
 
-int GtkSalSystem::ShowNativeDialog (const OUString& rTitle, const OUString& 
rMessage,
-                                    const std::vector< OUString >& 
rButtonNames)
+void GtkSalSystem::ShowNativeMessageBox(const OUString& rTitle, const 
OUString& rMessage)
 {
     OString aTitle (OUStringToOString (rTitle, RTL_TEXTENCODING_UTF8));
     OString aMessage (OUStringToOString (rMessage, RTL_TEXTENCODING_UTF8));
@@ -309,22 +308,16 @@ int GtkSalSystem::ShowNativeDialog (const OUString& 
rTitle, const OUString& rMes
                       "message-type", int(GTK_MESSAGE_WARNING),
                       "text", aMessage.getStr(),
                       nullptr));
-    int nButton = 0;
-    for (auto const& buttonName : rButtonNames)
-        gtk_dialog_add_button (pDialog, 
MapToGtkAccelerator(buttonName).getStr(), nButton++);
-    gtk_dialog_set_default_response (pDialog, 0/*nDefaultButton*/);
+    gtk_dialog_add_button (pDialog, MapToGtkAccelerator(u"OK"_ustr).getStr(), 
0);
+    gtk_dialog_set_default_response (pDialog, 0);
 
-    nButton = gtk_dialog_run (pDialog);
-    if (nButton < 0)
-        nButton = -1;
+    gtk_dialog_run (pDialog);
 
 #if !GTK_CHECK_VERSION(4, 0, 0)
     gtk_widget_destroy(GTK_WIDGET(pDialog));
 #else
     gtk_window_destroy(GTK_WINDOW(pDialog));
 #endif
-
-    return nButton;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/x11/x11sys.cxx b/vcl/unx/x11/x11sys.cxx
index 6084706131f8..57b37e8b1653 100644
--- a/vcl/unx/x11/x11sys.cxx
+++ b/vcl/unx/x11/x11sys.cxx
@@ -77,7 +77,7 @@ AbsoluteScreenPixelRectangle 
X11SalSystem::GetDisplayScreenPosSizePixel( unsigne
     return aRet;
 }
 
-int X11SalSystem::ShowNativeDialog( const OUString& rTitle, const OUString& 
rMessage, const std::vector< OUString >& rButtons )
+void X11SalSystem::ShowNativeMessageBox(const OUString& rTitle, const 
OUString& rMessage)
 {
     ImplSVData* pSVData = ImplGetSVData();
     if( pSVData->mpIntroWindow )
@@ -88,12 +88,10 @@ int X11SalSystem::ShowNativeDialog( const OUString& rTitle, 
const OUString& rMes
                                                rMessage));
     xWarn->set_title(rTitle);
 
-    sal_uInt16 nButton = 0;
-    for (auto const& button : rButtons)
-        xWarn->add_button(button, nButton++);
+    xWarn->add_button(u"OK"_ustr, 0);
     xWarn->set_default_response(0);
 
-    return xWarn->run();
+    xWarn->run();
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to