Add support for LXQt as a Linux desktop environment.

This change makes LXQt use the Breeze icon theme, and adds it as a
desktop environment along the other supported DEs.

Change-Id: I482d85620986c8fc4e33b4722b887b81c77c23bf
Reviewed-on: https://gerrit.libreoffice.org/61641
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
diff --git a/vcl/inc/unx/desktops.hxx b/vcl/inc/unx/desktops.hxx
index 1b8a7f5..d034a9b 100644
--- a/vcl/inc/unx/desktops.hxx
+++ b/vcl/inc/unx/desktops.hxx
@@ -32,7 +32,8 @@ enum SAL_DLLPUBLIC_RTTI DesktopType {
    DESKTOP_XFCE,
    DESKTOP_MATE,
    DESKTOP_KDE4,
    DESKTOP_KDE5
    DESKTOP_KDE5,
    DESKTOP_LXQT
}; // keep in sync with desktop_strings[] in salplug.cxx

#endif // INCLUDED_VCL_INC_UNX_DESKTOPS_HXX
diff --git a/vcl/source/app/IconThemeSelector.cxx b/vcl/source/app/IconThemeSelector.cxx
index 3665d1a..cf18f5f2 100644
--- a/vcl/source/app/IconThemeSelector.cxx
+++ b/vcl/source/app/IconThemeSelector.cxx
@@ -57,7 +57,8 @@ IconThemeSelector::GetIconThemeForDesktopEnvironment(const OUString& desktopEnvi
    (void)desktopEnvironment;
#else
    if ( desktopEnvironment.equalsIgnoreAsciiCase("kde4") ||
         desktopEnvironment.equalsIgnoreAsciiCase("kde5") ) {
         desktopEnvironment.equalsIgnoreAsciiCase("kde5") ||
         desktopEnvironment.equalsIgnoreAsciiCase("lxqt") ) {
        r = "breeze";
    } else
    if ( desktopEnvironment.equalsIgnoreAsciiCase("macosx") ) {
diff --git a/vcl/source/app/salplug.cxx b/vcl/source/app/salplug.cxx
index 441964e..a79339c 100644
--- a/vcl/source/app/salplug.cxx
+++ b/vcl/source/app/salplug.cxx
@@ -189,7 +189,9 @@ SalInstance* autodetect_plugin()
              desktop == DESKTOP_XFCE  ||
              desktop == DESKTOP_MATE )
        pList = pStandardFallbackList;
    else if( desktop == DESKTOP_KDE4 || desktop == DESKTOP_KDE5 )
    else if( desktop == DESKTOP_KDE4 ||
              desktop == DESKTOP_KDE5 ||
              desktop == DESKTOP_LXQT )
        pList = pKDEFallbackList;

    SalInstance* pInst = nullptr;
@@ -314,7 +316,8 @@ const OUString& SalGetDesktopEnvironment()
    // Order to match desktops.hxx' DesktopType
    static const char * const desktop_strings[] = {
        "none", "unknown", "GNOME", "UNITY",
        "XFCE", "MATE", "KDE4", "KDE5" };
        "XFCE", "MATE", "KDE4", "KDE5",
        "LXQT" };
    static OUString aDesktopEnvironment;
    if( aDesktopEnvironment.isEmpty())
    {
diff --git a/vcl/unx/generic/desktopdetect/desktopdetector.cxx b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
index eccba34..bf70b37 100644
--- a/vcl/unx/generic/desktopdetect/desktopdetector.cxx
+++ b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
@@ -215,6 +215,8 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
    {
        OString aOver( pOverride );

        if ( aOver.equalsIgnoreAsciiCase( "lxqt" ) )
            return DESKTOP_LXQT;
        if ( aOver.equalsIgnoreAsciiCase( "kde5" ) )
            return DESKTOP_KDE5;
        if ( aOver.equalsIgnoreAsciiCase( "kde4" ) )
@@ -272,6 +274,8 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
        ret = DESKTOP_MATE;
    else if ( aDesktopSession.equalsIgnoreAsciiCase( "xfce" ) )
        ret = DESKTOP_XFCE;
    else if ( aDesktopSession.equalsIgnoreAsciiCase( "lxqt" ) )
        ret = DESKTOP_LXQT;
    else
    {
        // these guys can be slower, with X property fetches,