summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorHeiko Tietze <tietze.heiko@gmail.com>2020-04-29 11:39:57 +0200
committerHeiko Tietze <heiko.tietze@documentfoundation.org>2020-04-29 19:09:39 +0200
commitab846145bbd56f4308c8657df8b1354a403edd74 (patch)
tree6867760584cff9eba04ab197ba01004470246564 /cui
parent3aa11fb2b425e2f4bb1b47fed8782423d2b6f269 (diff)
Resolves tdf#132322 - Link to Gerrit hash reintroduced
Mulit-line label split, Build realized as link_button Required changes also solve tdf#132066 partially as many localized strings are not anymore copied to clipboard Change-Id: I346fdc65cd1734f17854eccd587fe0b7e216e720 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93119 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Diffstat (limited to 'cui')
-rw-r--r--cui/inc/strings.hrc6
-rw-r--r--cui/source/dialogs/about.cxx179
-rw-r--r--cui/source/inc/about.hxx16
-rw-r--r--cui/uiconfig/ui/aboutdialog.ui195
4 files changed, 299 insertions, 97 deletions
diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 9c81a8e104f9..1049f7e7ff4f 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -381,14 +381,14 @@
#define RID_SVXSTR_CANNOTCONVERTURL_ERR NC_("RID_SVXSTR_CANNOTCONVERTURL_ERR", "The URL <%1> cannot be converted to a filesystem path.")
-#define RID_SVXSTR_ABOUT_VERSION NC_("aboutdialog|textbuffer1", "Version: %ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX")
+#define RID_SVXSTR_ABOUT_VERSION NC_("aboutdialog|textbuffer1", "%ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX")
#define RID_SVXSTR_ABOUT_COPYRIGHT NC_("aboutdialog|copyright", "Copyright © 2000–2020 LibreOffice contributors.")
#define RID_SVXSTR_ABOUT_CREDITS_URL NC_("aboutdialog|link", "https://www.libreoffice.org/about-us/credits/")
-#define RID_SVXSTR_ABOUT_BUILDID NC_("aboutdialog|buildid", "Build ID: $BUILDID")
+#define RID_SVXSTR_ABOUT_BUILDID NC_("aboutdialog|buildid", "$BUILDID")
#define RID_SVXSTR_ABOUT_VENDOR NC_("aboutdialog|vendor", "This release was supplied by %OOOVENDOR.")
#define RID_SVXSTR_ABOUT_BASED_ON NC_("aboutdialog|libreoffice", "LibreOffice was based on OpenOffice.org.")
#define RID_SVXSTR_ABOUT_DERIVED NC_("aboutdialog|derived", "%PRODUCTNAME is derived from LibreOffice which was based on OpenOffice.org")
-#define RID_SVXSTR_ABOUT_LOCALE NC_("aboutdialog|locale", "Locale: $LOCALE")
+#define RID_SVXSTR_ABOUT_LOCALE NC_("aboutdialog|locale", "$LOCALE")
#define RID_SVXSTR_ABOUT_UILOCALE NC_("aboutdialog|uilocale", "UI-Language: $LOCALE")
#define RID_SVXSTR_EDIT_PATHS NC_("optpathspage|editpaths", "Edit Paths: %1")
diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx
index ed58d06acc1c..845ad5496a37 100644
--- a/cui/source/dialogs/about.cxx
+++ b/cui/source/dialogs/about.cxx
@@ -19,23 +19,23 @@
#include <about.hxx>
-#include <osl/diagnose.h> //OSL_ENSURE
-#include <osl/process.h> //osl_getProcessLocale
+#include <osl/diagnose.h> //OSL_ENSURE
+#include <osl/process.h> //osl_getProcessLocale
#include <rtl/character.hxx> //rtl::isAsciiHexDigit
-#include <sal/log.hxx> //SAL_WARN
-#include <vcl/settings.hxx> //GetSettings
+#include <sal/log.hxx> //SAL_WARN
+#include <vcl/settings.hxx> //GetSettings
+#include <vcl/svapp.hxx> //Application::
+#include <vcl/virdev.hxx> //VirtualDevice
#include <vcl/weld.hxx>
-#include <vcl/svapp.hxx> //Application::
-#include <vcl/virdev.hxx> //VirtualDevice
+#include <config_buildid.h> //EXTRA_BUILDID
+#include <dialmgr.hxx> //CuiResId
#include <i18nlangtag/languagetag.hxx>
+#include <sfx2/app.hxx> //SfxApplication::loadBrandSvg
+#include <strings.hrc>
#include <svtools/langhelp.hxx>
#include <unotools/bootstrap.hxx> //utl::Bootstrap::getBuildVersion
#include <unotools/configmgr.hxx> //ConfigManager::
-#include <config_buildid.h> //EXTRA_BUILDID
-#include <dialmgr.hxx> //CuiResId
-#include <sfx2/app.hxx> //SfxApplication::loadBrandSvg
-#include <strings.hrc>
#include <com/sun/star/datatransfer/clipboard/SystemClipboard.hpp>
#include <vcl/unohelp2.hxx>
@@ -58,13 +58,36 @@ AboutDialog::AboutDialog(weld::Window *pParent)
m_pCopyButton(m_xBuilder->weld_button("btnCopyVersion")),
m_pBrandImage(m_xBuilder->weld_image("imBrand")),
m_pAboutImage(m_xBuilder->weld_image("imAbout")),
- m_pVersionLabel(m_xBuilder->weld_label("lbVersion")),
+ m_pVersionLabel(m_xBuilder->weld_label("lbVersionString")),
+ m_pBuildCaption(m_xBuilder->weld_label("lbBuild")),
+ m_pBuildLabel(m_xBuilder->weld_link_button("lbBuildString")),
+ m_pEnvLabel(m_xBuilder->weld_label("lbEnvString")),
+ m_pUILabel(m_xBuilder->weld_label("lbUIString")),
+ m_pLocaleLabel(m_xBuilder->weld_label("lbLocaleString")),
+ m_pMiscLabel(m_xBuilder->weld_label("lbMiscString")),
m_pCopyrightLabel(m_xBuilder->weld_label("lbCopyright")) {
+
+ // Labels
m_pVersionLabel->set_label(GetVersionString());
+
+ OUString sbuildId = GetBuildString();
+ if (IsStringValidGitHash(sbuildId)) {
+ m_pBuildLabel->set_label(sbuildId);
+ m_pBuildLabel->set_uri(
+ "https://gerrit.libreoffice.org/gitweb?p=core.git;a=log;h=" + sbuildId);
+ } else {
+ m_pBuildCaption->hide();
+ m_pBuildLabel->hide();
+ }
+
+ m_pEnvLabel->set_label(GetEnvString());
+ m_pUILabel->set_label(GetUIString());
+ m_pLocaleLabel->set_label(GetLocaleString());
+ m_pMiscLabel->set_label(GetMiscString());
m_pCopyrightLabel->set_label(GetCopyrightString());
- //Images
- const Size nWidth(m_pVersionLabel->get_preferred_size());
+ // Images
+ const long nWidth(m_pCopyrightLabel->get_preferred_size().getWidth());
BitmapEx aBackgroundBitmap;
if (SfxApplication::loadBrandSvg(Application::GetSettings()
@@ -73,8 +96,7 @@ AboutDialog::AboutDialog(weld::Window *pParent)
.IsDark()
? "shell/logo_inverted"
: "shell/logo",
- aBackgroundBitmap,
- nWidth.getWidth() * 0.8)) {
+ aBackgroundBitmap, nWidth * 0.8)) {
ScopedVclPtr<VirtualDevice> m_pVirDev =
m_pBrandImage->create_virtual_device();
m_pVirDev->SetOutputSizePixel(aBackgroundBitmap.GetSizePixel());
@@ -82,8 +104,7 @@ AboutDialog::AboutDialog(weld::Window *pParent)
m_pBrandImage->set_image(m_pVirDev.get());
m_pVirDev.disposeAndClear();
}
- if (SfxApplication::loadBrandSvg("shell/about", aBackgroundBitmap,
- nWidth.getWidth())) {
+ if (SfxApplication::loadBrandSvg("shell/about", aBackgroundBitmap, nWidth)) {
ScopedVclPtr<VirtualDevice> m_pVirDev =
m_pAboutImage->create_virtual_device();
m_pVirDev->SetOutputSizePixel(aBackgroundBitmap.GetSizePixel());
@@ -92,7 +113,7 @@ AboutDialog::AboutDialog(weld::Window *pParent)
m_pVirDev.disposeAndClear();
}
- //Links
+ // Links
m_pCreditsButton->set_uri(CuiResId(RID_SVXSTR_ABOUT_CREDITS_URL));
OUString sURL(officecfg::Office::Common::Help::StartCenter::InfoURL::get());
@@ -104,46 +125,20 @@ AboutDialog::AboutDialog(weld::Window *pParent)
LanguageTag(utl::ConfigManager::getUILocale()).getLanguage();
m_pReleaseNotesButton->set_uri(sURL);
- //Handler
+ // Handler
m_pCopyButton->connect_clicked(LINK(this, AboutDialog, HandleClick));
m_pCloseButton->grab_focus();
}
AboutDialog::~AboutDialog() {}
-OUString AboutDialog::GetBuildId() {
- OUString sDefault;
- OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault));
- if (!sBuildId.isEmpty())
- return sBuildId;
-
- sBuildId = utl::Bootstrap::getBuildIdData(sDefault);
-
- if (!sBuildId.isEmpty()) {
- return sBuildId.getToken(0, '-');
- }
-
- OSL_ENSURE(!sBuildId.isEmpty(), "No BUILDID in bootstrap file");
- return sBuildId;
-}
-
-OUString AboutDialog::GetLocaleString() {
- OUString aLocaleStr;
- rtl_Locale *pLocale;
-
- osl_getProcessLocale(&pLocale);
-
- if (pLocale && pLocale->Language) {
- if (pLocale->Country && rtl_uString_getLength(pLocale->Country) > 0)
- aLocaleStr = OUString::unacquired(&pLocale->Language) + "_" +
- OUString::unacquired(&pLocale->Country);
- else
- aLocaleStr = OUString(pLocale->Language);
- if (pLocale->Variant && rtl_uString_getLength(pLocale->Variant) > 0)
- aLocaleStr += OUString(pLocale->Variant);
+bool AboutDialog::IsStringValidGitHash(const OUString &hash) {
+ for (int i = 0; i < hash.getLength(); i++) {
+ if (!std::isxdigit(hash[i])) {
+ return false;
+ }
}
-
- return aLocaleStr;
+ return true;
}
OUString AboutDialog::GetVersionString() {
@@ -154,48 +149,85 @@ OUString AboutDialog::GetVersionString() {
#elif defined(_WIN32)
sVersion += " (x86)";
#endif
+ return sVersion;
+}
- OUString sBuildId = GetBuildId();
+OUString AboutDialog::GetBuildString() {
- OUString aLocaleStr = Application::GetSettings().GetLanguageTag().getBcp47() +
- " (" + GetLocaleString() + ")";
- OUString aUILocaleStr =
- Application::GetSettings().GetUILanguageTag().getBcp47();
+ OUString sDefault;
+ OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault));
+ if (sBuildId.isEmpty())
+ sBuildId = utl::Bootstrap::getBuildIdData(sDefault);
+ if (sBuildId.isEmpty()) {
+ sBuildId = sBuildId.getToken(0, '-');
+ }
+ OSL_ENSURE(!sBuildId.isEmpty(), "No BUILDID in bootstrap file");
+
+ OUString sBuildStr;
if (!sBuildId.trim().isEmpty()) {
- sVersion += "\n";
- OUString sBuildStr = CuiResId(RID_SVXSTR_ABOUT_BUILDID);
+ sBuildStr = CuiResId(RID_SVXSTR_ABOUT_BUILDID);
if (sBuildStr.indexOf("$BUILDID") == -1) {
SAL_WARN("cui.dialogs", "translated Build Id string in translations "
"doesn't contain $BUILDID placeholder");
sBuildStr += " $BUILDID";
}
- sVersion += sBuildStr.replaceAll("$BUILDID", sBuildId);
+ sBuildStr = sBuildStr.replaceAll("$BUILDID", sBuildId);
}
+ return sBuildStr;
+}
- sVersion += "\n" + Application::GetHWOSConfInfo();
+OUString AboutDialog::GetEnvString() { return Application::GetHWOSConfInfo(1); }
+OUString AboutDialog::GetUIString() { return Application::GetHWOSConfInfo(2); }
- bool const extra = EXTRA_BUILDID[0] != '\0';
- // extracted from the 'if' to avoid Clang -Wunreachable-code
- if (extra) {
- sVersion += "\n" EXTRA_BUILDID;
+OUString AboutDialog::GetLocaleString() {
+
+ OUString aLocaleStr;
+
+ rtl_Locale *pLocale;
+ osl_getProcessLocale(&pLocale);
+ if (pLocale && pLocale->Language) {
+ if (pLocale->Country && rtl_uString_getLength(pLocale->Country) > 0)
+ aLocaleStr = OUString::unacquired(&pLocale->Language) + "_" +
+ OUString::unacquired(&pLocale->Country);
+ else
+ aLocaleStr = OUString(pLocale->Language);
+ if (pLocale->Variant && rtl_uString_getLength(pLocale->Variant) > 0)
+ aLocaleStr += OUString(pLocale->Variant);
}
+ aLocaleStr = Application::GetSettings().GetLanguageTag().getBcp47() + " (" +
+ aLocaleStr + ")";
OUString sLocaleStr(CuiResId(RID_SVXSTR_ABOUT_LOCALE));
if (sLocaleStr.indexOf("$LOCALE") == -1) {
SAL_WARN("cui.dialogs", "translated locale string in translations doesn't "
"contain $LOCALE placeholder");
sLocaleStr += " $LOCALE";
}
- sVersion += "\n" + sLocaleStr.replaceAll("$LOCALE", aLocaleStr);
+ sLocaleStr = sLocaleStr.replaceAll("$LOCALE", aLocaleStr);
+ OUString aUILocaleStr =
+ Application::GetSettings().GetUILanguageTag().getBcp47();
OUString sUILocaleStr(CuiResId(RID_SVXSTR_ABOUT_UILOCALE));
if (sUILocaleStr.indexOf("$LOCALE") == -1) {
SAL_WARN("cui.dialogs", "translated uilocale string in translations "
"doesn't contain $LOCALE placeholder");
sUILocaleStr += " $LOCALE";
}
- sVersion += "; " + sUILocaleStr.replaceAll("$LOCALE", aUILocaleStr);
+ sUILocaleStr = sUILocaleStr.replaceAll("$LOCALE", aUILocaleStr);
+
+ return sLocaleStr + "; " + sUILocaleStr;
+}
+
+OUString AboutDialog::GetMiscString() {
+
+ OUString sMisc;
+
+ bool const extra = EXTRA_BUILDID[0] != '\0';
+ // extracted from the 'if' to avoid Clang -Wunreachable-code
+ if (extra) {
+ sMisc = EXTRA_BUILDID "\n";
+ }
OUString aCalcMode = "Calc: "; // Calc calculation mode
@@ -218,9 +250,9 @@ OUString AboutDialog::GetVersionString() {
aCalcMode += "threaded";
}
- sVersion += "\n" + aCalcMode;
+ sMisc += aCalcMode;
- return sVersion;
+ return sMisc;
}
OUString AboutDialog::GetCopyrightString() {
@@ -240,6 +272,15 @@ IMPL_LINK_NOARG(AboutDialog, HandleClick, weld::Button &, void) {
css::uno::Reference<css::datatransfer::clipboard::XClipboard> xClipboard =
css::datatransfer::clipboard::SystemClipboard::create(
comphelper::getProcessComponentContext());
- vcl::unohelper::TextDataObject::CopyStringTo(m_pVersionLabel->get_label(), xClipboard);
+
+ OUString sInfo;
+ sInfo += "Version: " + m_pVersionLabel->get_label() + "\n";
+ sInfo += "Build ID: " + m_pBuildLabel->get_label() + "\n";
+ sInfo += m_pEnvLabel->get_label();
+ sInfo += m_pUILabel->get_label() + "\n";
+ sInfo += "Locale: " + m_pLocaleLabel->get_label() + "\n";
+ sInfo += m_pMiscLabel->get_label();
+
+ vcl::unohelper::TextDataObject::CopyStringTo(sInfo, xClipboard);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/cui/source/inc/about.hxx b/cui/source/inc/about.hxx
index 0872a7c3da44..53f8ca489fa2 100644
--- a/cui/source/inc/about.hxx
+++ b/cui/source/inc/about.hxx
@@ -34,12 +34,24 @@ private:
std::unique_ptr<weld::Image> m_pBrandImage;
std::unique_ptr<weld::Image> m_pAboutImage;
std::unique_ptr<weld::Label> m_pVersionLabel;
+ std::unique_ptr<weld::Label> m_pBuildCaption;
+ std::unique_ptr<weld::LinkButton> m_pBuildLabel;
+ std::unique_ptr<weld::Label> m_pEnvLabel;
+ std::unique_ptr<weld::Label> m_pUILabel;
+ std::unique_ptr<weld::Label> m_pLocaleLabel;
+ std::unique_ptr<weld::Label> m_pMiscLabel;
std::unique_ptr<weld::Label> m_pCopyrightLabel;
- static OUString GetBuildId();
static OUString GetVersionString();
- static OUString GetCopyrightString();
+ static OUString GetBuildString();
+ static OUString GetEnvString();
+ static OUString GetUIString();
static OUString GetLocaleString();
+ static OUString GetMiscString();
+ static OUString GetExtraString();
+
+ static OUString GetCopyrightString();
+ static bool IsStringValidGitHash(const OUString& hash);
DECL_LINK(HandleClick, weld::Button&, void);
diff --git a/cui/uiconfig/ui/aboutdialog.ui b/cui/uiconfig/ui/aboutdialog.ui
index bbbac5187d92..5f3610856e34 100644
--- a/cui/uiconfig/ui/aboutdialog.ui
+++ b/cui/uiconfig/ui/aboutdialog.ui
@@ -75,6 +75,7 @@
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
+ <property name="margin_left">12</property>
<property name="margin_right">12</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -89,14 +90,14 @@
<object class="GtkImage" id="imBrand">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">center</property>
+ <property name="halign">start</property>
<property name="valign">center</property>
- <property name="margin_left">24</property>
+ <property name="margin_left">30</property>
<property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -104,23 +105,172 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="lbCopyright">
+ <object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="margin_bottom">6</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label" context="aboutdialog|copyright">This release was supplied by The Document Foundation.
-Copyright (c) 1980-2020 LibreOffice contributors.
-LibreOffice was based on OpenOffice.org</property>
- <property name="wrap">True</property>
- <property name="max_width_chars">50</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
+ <child>
+ <object class="GtkLabel" id="lbVersion">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbVersion">Version:</property>
+ <property name="wrap">True</property>
+ <property name="max_width_chars">50</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbBuild">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbBuild">Build:</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbEnvironment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbEnvironment">Environment:</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbVersionString">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">6</property>
+ <property name="label">7.0</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbEnvString">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">6</property>
+ <property name="label">8 cores</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLinkButton" id="lbBuildString">
+ <property name="label">0815</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbMisc">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbExtra">Misc:</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbMiscString">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">6</property>
+ <property name="label">Calc</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbLocale">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbLocale">Locale:</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbLocaleString">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">6</property>
+ <property name="label">English</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbUI">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="aboutdialog|lbUI">User Interface:</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbUIString">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">6</property>
+ <property name="label">VCL: gtk</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="top_attach">1</property>
</packing>
</child>
<child>
@@ -146,24 +296,23 @@ LibreOffice was based on OpenOffice.org</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="lbVersion">
+ <object class="GtkLabel" id="lbCopyright">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">end</property>
+ <property name="valign">start</property>
+ <property name="margin_bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label">Version: 7.0
-Build ID: 7.0
-CPU threads
-Locale:
-Calc:</property>
+ <property name="label" context="aboutdialog|copyright">This release was supplied by The Document Foundation.
+Copyright (c) 1980-2020 LibreOffice contributors.
+LibreOffice was based on OpenOffice.org</property>
<property name="wrap">True</property>
<property name="max_width_chars">50</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="top_attach">3</property>
</packing>
</child>
<child>