parent
c8545b48be
commit
fab5c1ea0d
@ -0,0 +1,46 @@ |
||||
From ceac69bff953ebd9b54a1f3a032079523c4414d0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Sun, 25 Oct 2020 20:23:39 +0000
|
||||
Subject: [PATCH] 0.5.1 is sufficient
|
||||
|
||||
Change-Id: I710a83de8f261d6164eb760d3290c963a5bbe5e1
|
||||
---
|
||||
configure.ac | 15 +--------------
|
||||
1 file changed, 1 insertion(+), 14 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a6696df15f06..c17fdf5b0d22 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -7050,7 +7050,7 @@ dnl Check for system libcmis
|
||||
dnl ===================================================================
|
||||
# libcmis requires curl and we can't build curl for iOS
|
||||
if test $_os != iOS; then
|
||||
- libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.5 >= 0.5.2])
|
||||
+ libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.5 >= 0.5.0])
|
||||
ENABLE_LIBCMIS=TRUE
|
||||
else
|
||||
ENABLE_LIBCMIS=
|
||||
@@ -7090,19 +7090,6 @@ elif test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
|
||||
- #if defined SYSTEM_LIBCMIS
|
||||
- // See ucb/source/ucp/cmis/auth_provider.hxx:
|
||||
- #if !defined __clang__
|
||||
- #pragma GCC diagnostic push
|
||||
- #pragma GCC diagnostic ignored "-Wdeprecated"
|
||||
- #pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
|
||||
- #endif
|
||||
- #include <libcmis/libcmis.hxx>
|
||||
- #if !defined __clang__
|
||||
- #pragma GCC diagnostic pop
|
||||
- #endif
|
||||
- #endif
|
||||
-
|
||||
void f(std::vector<int> & v, std::function<bool(int, int)> fn) {
|
||||
std::sort(v.begin(), v.end(), fn);
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,26 @@ |
||||
From 92c95c8c3724f267e57827f69f93ef4e6387f793 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Sun, 25 Oct 2020 21:14:10 +0000
|
||||
Subject: [PATCH] 1.2.25 is sufficient
|
||||
|
||||
Change-Id: Ie184fbaaf6eea0ae1a39bf142d3391768be9607d
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a62c131a6d0e..c815ea2c3f8b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -8364,7 +8364,7 @@ libo_CHECK_SYSTEM_MODULE([expat], [EXPAT], [expat])
|
||||
dnl ===================================================================
|
||||
dnl Check for system xmlsec
|
||||
dnl ===================================================================
|
||||
-libo_CHECK_SYSTEM_MODULE([xmlsec], [XMLSEC], [xmlsec1-nss >= 1.2.28])
|
||||
+libo_CHECK_SYSTEM_MODULE([xmlsec], [XMLSEC], [xmlsec1-nss >= 1.2.25])
|
||||
|
||||
AC_MSG_CHECKING([whether to enable Embedded OpenType support])
|
||||
if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_eot" = "yes"; then
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,59 +0,0 @@ |
||||
From b8bb7fd853db5d0d7cc4ea9120efb1a707e46c22 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Tue, 3 Dec 2019 11:56:33 +0100
|
||||
Subject: [PATCH] Adapt SAL_WARN to C++20 deleted ostream << for sal_Unicode
|
||||
(aka char16_t)
|
||||
|
||||
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html> "char8_t
|
||||
backward compatibility remediation", as implemented now by <https://gcc.gnu.org/
|
||||
git/?p=gcc.git;a=commit;h=0c5b35933e5b150df0ab487efb2f11ef5685f713> "libstdc++:
|
||||
P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads
|
||||
that would print an integer rather than a (presumably expected) character.
|
||||
|
||||
Change-Id: Ic70d3e90e4b990d297e35f07379fe4952e138820
|
||||
Reviewed-on: https://gerrit.libreoffice.org/84321
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
||||
---
|
||||
basegfx/source/polygon/b2dsvgpolypolygon.cxx | 2 +-
|
||||
starmath/source/ooxmlimport.cxx | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/basegfx/source/polygon/b2dsvgpolypolygon.cxx b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
|
||||
index 2fdacad3653f..490bcd69c9a6 100644
|
||||
--- a/basegfx/source/polygon/b2dsvgpolypolygon.cxx
|
||||
+++ b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
|
||||
@@ -648,7 +648,7 @@ namespace basegfx
|
||||
default:
|
||||
{
|
||||
SAL_WARN("basegfx", "importFromSvgD(): skipping tags in svg:d element (unknown: \""
|
||||
- << aCurrChar
|
||||
+ << OUString(aCurrChar)
|
||||
<< "\")!");
|
||||
++nPos;
|
||||
break;
|
||||
diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx
|
||||
index f0913f157078..731daa054120 100644
|
||||
--- a/starmath/source/ooxmlimport.cxx
|
||||
+++ b/starmath/source/ooxmlimport.cxx
|
||||
@@ -223,7 +223,7 @@ OUString SmOoxmlImport::handleAcc()
|
||||
break;
|
||||
default:
|
||||
acc = "acute";
|
||||
- SAL_WARN( "starmath.ooxml", "Unknown m:chr in m:acc \'" << accChr << "\'" );
|
||||
+ SAL_WARN( "starmath.ooxml", "Unknown m:chr in m:acc \'" << OUString(accChr) << "\'" );
|
||||
break;
|
||||
}
|
||||
OUString e = readOMathArgInElement( M_TOKEN( e ));
|
||||
@@ -554,7 +554,7 @@ OUString SmOoxmlImport::handleNary()
|
||||
ret = "sum";
|
||||
break;
|
||||
default:
|
||||
- SAL_WARN( "starmath.ooxml", "Unknown m:nary chr \'" << chr << "\'" );
|
||||
+ SAL_WARN( "starmath.ooxml", "Unknown m:nary chr \'" << OUString(chr) << "\'" );
|
||||
break;
|
||||
}
|
||||
if( !subHide )
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,54 +0,0 @@ |
||||
From 22005041f829d85e675ea27bdee1770af58a1ea0 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Mon, 3 Jun 2019 16:21:24 +0200
|
||||
Subject: [PATCH] AppendInfoBar can return null
|
||||
|
||||
e.g., when opening the old help window ("Help - LibreOffice Help" in a build
|
||||
configured with --with-help to "build the old local help" (configure.ac))
|
||||
|
||||
Change-Id: Icecd224774b98811ddf9545c5fa83a85fab259fc
|
||||
Reviewed-on: https://gerrit.libreoffice.org/73390
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
||||
---
|
||||
sfx2/source/view/viewfrm.cxx | 24 ++++++++++++++----------
|
||||
1 file changed, 14 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
|
||||
index 5620f4396e8f..ed8ffa200ef6 100644
|
||||
--- a/sfx2/source/view/viewfrm.cxx
|
||||
+++ b/sfx2/source/view/viewfrm.cxx
|
||||
@@ -1239,16 +1239,20 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
|
||||
if ((iCurrent > iLast) && !Application::IsHeadlessModeEnabled() && !bIsUITest)
|
||||
{
|
||||
VclPtr<SfxInfoBarWindow> pInfoBar = AppendInfoBar("whatsnew", SfxResId(STR_WHATSNEW_TEXT), InfoBarType::Info);
|
||||
- VclPtrInstance<PushButton> xWhatsNewButton(&GetWindow());
|
||||
- xWhatsNewButton->SetText(SfxResId(STR_WHATSNEW_BUTTON));
|
||||
- xWhatsNewButton->SetSizePixel(xWhatsNewButton->GetOptimalSize());
|
||||
- xWhatsNewButton->SetClickHdl(LINK(this, SfxViewFrame, WhatsNewHandler));
|
||||
- pInfoBar->addButton(xWhatsNewButton);
|
||||
-
|
||||
- //update lastversion
|
||||
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
|
||||
- officecfg::Setup::Product::ooSetupLastVersion::set(sSetupVersion, batch);
|
||||
- batch->commit();
|
||||
+ if (pInfoBar)
|
||||
+ {
|
||||
+ VclPtrInstance<PushButton> xWhatsNewButton(&GetWindow());
|
||||
+ xWhatsNewButton->SetText(SfxResId(STR_WHATSNEW_BUTTON));
|
||||
+ xWhatsNewButton->SetSizePixel(xWhatsNewButton->GetOptimalSize());
|
||||
+ xWhatsNewButton->SetClickHdl(LINK(this, SfxViewFrame, WhatsNewHandler));
|
||||
+ pInfoBar->addButton(xWhatsNewButton);
|
||||
+
|
||||
+ //update lastversion
|
||||
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
|
||||
+ officecfg::Setup::Product::ooSetupLastVersion::set(
|
||||
+ sSetupVersion, batch);
|
||||
+ batch->commit();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,64 @@ |
||||
From acca5c87e73255db350a02d13bf34a62efaf9c93 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Tue, 21 Apr 2020 14:07:24 +0200
|
||||
Subject: [PATCH] Flatpak: Add /app/bin/libreoffice ->
|
||||
/app/libreoffice/program/soffice symlink
|
||||
|
||||
Which removes the need to rewrite the
|
||||
|
||||
Exec=${UNIXBASISROOTNAME}
|
||||
|
||||
lines from sysui/desktop/menus/*.desktop, and helps to harmonize the plain
|
||||
Flatpak build with the one done from Fedora RPMs (see
|
||||
<https://src.fedoraproject.org/flatpaks/libreoffice>).
|
||||
|
||||
(Also change the manifest command from an absolute path to a filename relative
|
||||
to PATH. It is not clear to me which one would be better or more conventional,
|
||||
but at least <https://docs.flatpak.org/en/latest/manifests.html> also uses just
|
||||
a filename in its example.)
|
||||
|
||||
Change-Id: I69c380b84503bf3d85801093fb92567852ceb00b
|
||||
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92837
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
||||
---
|
||||
solenv/bin/assemble-flatpak.sh | 4 ++--
|
||||
solenv/flatpak-manifest.in | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/solenv/bin/assemble-flatpak.sh b/solenv/bin/assemble-flatpak.sh
|
||||
index b4bce2d4d172..0738fcd59ad2 100755
|
||||
--- a/solenv/bin/assemble-flatpak.sh
|
||||
+++ b/solenv/bin/assemble-flatpak.sh
|
||||
@@ -14,13 +14,13 @@
|
||||
set -e
|
||||
|
||||
cp -r "${PREFIXDIR?}"/lib/libreoffice /app/
|
||||
+ln -s /app/libreoffice/program/soffice /app/bin/libreoffice
|
||||
|
||||
## libreoffice-*.desktop -> org.libreoffice.LibreOffice.*.desktop:
|
||||
mkdir -p /app/share/applications
|
||||
for i in "${PREFIXDIR?}"/share/applications/libreoffice-*.desktop
|
||||
do
|
||||
- sed -e 's,^Exec=libreoffice,Exec=/app/libreoffice/program/soffice,' \
|
||||
- -e 's/^Icon=libreoffice-/Icon=org.libreoffice.LibreOffice./' "$i" \
|
||||
+ sed -e 's/^Icon=libreoffice-/Icon=org.libreoffice.LibreOffice./' "$i" \
|
||||
>/app/share/applications/org.libreoffice.LibreOffice."${i#"${PREFIXDIR?}"/share/applications/libreoffice-}"
|
||||
done
|
||||
mv /app/share/applications/org.libreoffice.LibreOffice.startcenter.desktop \
|
||||
diff --git a/solenv/flatpak-manifest.in b/solenv/flatpak-manifest.in
|
||||
index 9f64a142dd68..754b6b6dbbe1 100644
|
||||
--- a/solenv/flatpak-manifest.in
|
||||
+++ b/solenv/flatpak-manifest.in
|
||||
@@ -6,7 +6,7 @@
|
||||
"sdk-extensions": [
|
||||
"org.freedesktop.Sdk.Extension.openjdk11"
|
||||
],
|
||||
- "command": "/app/libreoffice/program/soffice",
|
||||
+ "command": "libreoffice",
|
||||
"modules": [
|
||||
{
|
||||
"name": "openjdk",
|
||||
--
|
||||
2.26.0
|
||||
|
@ -1,40 +0,0 @@ |
||||
From ac68d29966f78ac8799f31f13578e4843a49043f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Tue, 14 Apr 2020 13:46:44 +0100
|
||||
Subject: [PATCH] "General Internet Error" dialog appearing on gio mount
|
||||
|
||||
we get a GError of G_IO_ERROR_FAILED_HANDLED which is documented
|
||||
as "Operation failed and a helper program has already interacted with the user.
|
||||
Do not display any error dialog." PENDING seems to describe this state
|
||||
better than a generic error case and results in no error dialog.
|
||||
|
||||
Change-Id: Iee382e49edaa0a734526659971e0339991e2c03e
|
||||
---
|
||||
ucb/source/ucp/gio/gio_content.cxx | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ucb/source/ucp/gio/gio_content.cxx b/ucb/source/ucp/gio/gio_content.cxx
|
||||
index 77a5c0127ae7..8576713974a8 100644
|
||||
--- a/ucb/source/ucp/gio/gio_content.cxx
|
||||
+++ b/ucb/source/ucp/gio/gio_content.cxx
|
||||
@@ -196,6 +196,9 @@ css::uno::Any convertToException(GError *pError, const css::uno::Reference< css:
|
||||
css::task::InteractionClassification_ERROR, css::ucb::IOErrorCode_NAME_TOO_LONG, aArgs);
|
||||
EXCEPT(aExcept); }
|
||||
break;
|
||||
+ case G_IO_ERROR_FAILED_HANDLED: /* Operation failed and a helper program
|
||||
+ has already interacted with the user. Do not display any error
|
||||
+ dialog */
|
||||
case G_IO_ERROR_PENDING:
|
||||
{ css::ucb::InteractiveAugmentedIOException aExcept(sMessage, rContext,
|
||||
css::task::InteractionClassification_ERROR, css::ucb::IOErrorCode_PENDING, aArgs);
|
||||
@@ -257,7 +260,6 @@ css::uno::Any convertToException(GError *pError, const css::uno::Reference< css:
|
||||
case G_IO_ERROR_NOT_EMPTY:
|
||||
case G_IO_ERROR_NOT_SYMBOLIC_LINK:
|
||||
case G_IO_ERROR_NOT_MOUNTABLE_FILE:
|
||||
- case G_IO_ERROR_FAILED_HANDLED:
|
||||
{ css::ucb::InteractiveNetworkGeneralException aExcept(sMessage, rContext,
|
||||
css::task::InteractionClassification_ERROR);
|
||||
EXCEPT(aExcept);}
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,70 +0,0 @@ |
||||
From 0c20ed4d58f7b55bcc12fa288b93d1c6d88a7dcc Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Thu, 14 May 2020 14:47:21 +0200
|
||||
Subject: [PATCH] Keep order of GDK input events intact
|
||||
|
||||
As explained at <https://bugzilla.redhat.com/show_bug.cgi?id=1377293#c12>
|
||||
"[Wayland] When typing fast at high CPU load, LibreOffice breaks key (letter)
|
||||
order": "with a local LO master --with-lang=ALL ASan+UBSan build (i.e., which
|
||||
executes somewhat slowly): When typing 'file' in Writer right after it started
|
||||
up (but no longer after more typing), that gets garbled as 'fiel'." The reason
|
||||
for that (but probably not for the original issue reported in that rhbz#1377293)
|
||||
apparently was:
|
||||
|
||||
Two GDK_KEY_PRESS events (A and B) were in the GTK event queue.
|
||||
GtkInstance::AnyInput consumed only A, because it broke from the first while
|
||||
loop as soon as it saw the first event of appropriate type. In the second while
|
||||
loop it put A back on the end of the GTK event loop, so that it now followed B.
|
||||
GtkSalFrame::signalKey (vcl/unx/gtk3/gtk3gtkframe.cxx) thus received the events
|
||||
in the wrong order.
|
||||
|
||||
Dropping the "break" also reveals that GtkInstance::AnyInput should obviously
|
||||
use a queue (i.e., deque) rather than a stack to hold the events it consumed and
|
||||
needs to re-enqueue.
|
||||
|
||||
This appears to be a regression introduced with
|
||||
658954e8b50fc264428402dc5a95b0d6f690d191 "Resolves: fdo#48011 writer
|
||||
idle-callbacks are halting when events pending".
|
||||
|
||||
Change-Id: I87d601df118a20ea3dd59e9cebbcf5176db04be8
|
||||
---
|
||||
vcl/unx/gtk/gtkinst.cxx | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx
|
||||
index 02ed688f366b..744c66b0baf0 100644
|
||||
--- a/vcl/unx/gtk/gtkinst.cxx
|
||||
+++ b/vcl/unx/gtk/gtkinst.cxx
|
||||
@@ -427,25 +427,24 @@ bool GtkInstance::AnyInput( VclInputFlags nType )
|
||||
return true;
|
||||
|
||||
bool bRet = false;
|
||||
- std::stack<GdkEvent*> aEvents;
|
||||
+ std::deque<GdkEvent*> aEvents;
|
||||
GdkEvent *pEvent = nullptr;
|
||||
while ((pEvent = gdk_event_get()))
|
||||
{
|
||||
- aEvents.push(pEvent);
|
||||
+ aEvents.push_back(pEvent);
|
||||
VclInputFlags nEventType = categorizeEvent(pEvent);
|
||||
if ( (nEventType & nType) || ( nEventType == VclInputFlags::NONE && (nType & VclInputFlags::OTHER) ) )
|
||||
{
|
||||
bRet = true;
|
||||
- break;
|
||||
}
|
||||
}
|
||||
|
||||
while (!aEvents.empty())
|
||||
{
|
||||
- pEvent = aEvents.top();
|
||||
+ pEvent = aEvents.front();
|
||||
gdk_event_put(pEvent);
|
||||
gdk_event_free(pEvent);
|
||||
- aEvents.pop();
|
||||
+ aEvents.pop_front();
|
||||
}
|
||||
#endif
|
||||
return bRet;
|
||||
--
|
||||
2.25.4
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,30 @@ |
||||
From d59960d5de3f07726594d980152a3bfeb58bace9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Mon, 2 Nov 2020 19:27:04 +0000
|
||||
Subject: [PATCH 1/8] Resolves: rhbz#1893846 if last close had insert, index
|
||||
dialog open
|
||||
|
||||
when starting a new writer document
|
||||
|
||||
Change-Id: I83131c01aa53208a321abade48d48a6f7965d0ff
|
||||
---
|
||||
sw/source/ui/index/swuiidxmrk.cxx | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx
|
||||
index 33a0eab8cd69..5eca069b963b 100644
|
||||
--- a/sw/source/ui/index/swuiidxmrk.cxx
|
||||
+++ b/sw/source/ui/index/swuiidxmrk.cxx
|
||||
@@ -955,7 +955,8 @@ SwIndexMarkFloatDlg::SwIndexMarkFloatDlg(SfxBindings* _pBindings,
|
||||
"modules/swriter/ui/indexentry.ui", "IndexEntryDialog")
|
||||
, m_aContent(m_xDialog, *m_xBuilder, bNew, *::GetActiveWrtShell())
|
||||
{
|
||||
- m_aContent.ReInitDlg(*::GetActiveWrtShell());
|
||||
+ if (SwWrtShell* pSh = ::GetActiveWrtShell())
|
||||
+ m_aContent.ReInitDlg(*pSh);
|
||||
Initialize(pInfo);
|
||||
}
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
@ -1,255 +0,0 @@ |
||||
From fd1692b657838f137c8974eae7730510b7d190df Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Fri, 24 Apr 2020 16:38:26 +0100
|
||||
Subject: [PATCH] Resolves: tdf#132288 don't merge adjacent properties for
|
||||
spell checking
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
spell checking relies on each attribute chunk being unmerged with identical
|
||||
adjacent chunks
|
||||
|
||||
squash includes...
|
||||
|
||||
nStartPosition and nEndPosition are always the same
|
||||
|
||||
and
|
||||
|
||||
tdf#132288 preservation of footnote depends on reverse iteration
|
||||
|
||||
like TextCharAttribList::FindAttrib does which spell checking
|
||||
used before
|
||||
|
||||
commit 243b5b392906042ab03800e0b5765e6f3513372c
|
||||
Author: Caolรกn McNamara <caolanm@redhat.com>
|
||||
Date: Fri Jun 14 21:56:44 2019 +0100
|
||||
|
||||
weld SpellDialog
|
||||
|
||||
converted to use an EditEngine instead of a TextEngine in order to
|
||||
be able to host it in a native widget
|
||||
|
||||
Change-Id: Ia835fa054cad0dee4304f16724b9eb0c29b46102
|
||||
---
|
||||
cui/source/dialogs/SpellDialog.cxx | 37 ++++++++++++++++--------------
|
||||
editeng/inc/editdoc.hxx | 3 +++
|
||||
editeng/source/editeng/editdoc.cxx | 12 +++++++++-
|
||||
editeng/source/editeng/editeng.cxx | 4 ++++
|
||||
include/editeng/editeng.hxx | 5 ++++
|
||||
5 files changed, 43 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
|
||||
index 1bb15c934552..17bff36056fb 100644
|
||||
--- a/cui/source/dialogs/SpellDialog.cxx
|
||||
+++ b/cui/source/dialogs/SpellDialog.cxx
|
||||
@@ -1142,6 +1142,8 @@ void SentenceEditWindow_Impl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
|
||||
pDrawingArea->get_text_height() * 6);
|
||||
pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
|
||||
WeldEditView::SetDrawingArea(pDrawingArea);
|
||||
+ // tdf#132288 don't merge equal adjacent attributes
|
||||
+ m_xEditEngine->DisableAttributeExpanding();
|
||||
}
|
||||
|
||||
SentenceEditWindow_Impl::~SentenceEditWindow_Impl()
|
||||
@@ -1150,13 +1152,14 @@ SentenceEditWindow_Impl::~SentenceEditWindow_Impl()
|
||||
|
||||
namespace
|
||||
{
|
||||
- const EECharAttrib* FindCharAttrib(int nStartPosition, int nEndPosition, sal_uInt16 nWhich, std::vector<EECharAttrib>& rAttribList)
|
||||
+ const EECharAttrib* FindCharAttrib(int nPosition, sal_uInt16 nWhich, std::vector<EECharAttrib>& rAttribList)
|
||||
{
|
||||
- for (const auto& rTextAtr : rAttribList)
|
||||
+ for (auto it = rAttribList.rbegin(); it != rAttribList.rend(); ++it)
|
||||
{
|
||||
+ const auto& rTextAtr = *it;
|
||||
if (rTextAtr.pAttr->Which() != nWhich)
|
||||
continue;
|
||||
- if (rTextAtr.nStart <= nStartPosition && rTextAtr.nEnd >= nEndPosition)
|
||||
+ if (rTextAtr.nStart <= nPosition && rTextAtr.nEnd >= nPosition)
|
||||
{
|
||||
return &rTextAtr;
|
||||
}
|
||||
@@ -1272,8 +1275,8 @@ bool SentenceEditWindow_Impl::KeyInput(const KeyEvent& rKeyEvt)
|
||||
m_xEditEngine->GetCharAttribs(0, aAttribList);
|
||||
|
||||
auto nCursor = aCurrentSelection.nStartPos;
|
||||
- const EECharAttrib* pBackAttr = FindCharAttrib(nCursor, nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
- const EECharAttrib* pErrorAttr = FindCharAttrib(nCursor, nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ const EECharAttrib* pBackAttr = FindCharAttrib(nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
+ const EECharAttrib* pErrorAttr = FindCharAttrib(nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
const EECharAttrib* pBackAttrLeft = nullptr;
|
||||
const EECharAttrib* pErrorAttrLeft = nullptr;
|
||||
|
||||
@@ -1299,8 +1302,8 @@ bool SentenceEditWindow_Impl::KeyInput(const KeyEvent& rKeyEvt)
|
||||
while (nCursor < aCurrentSelection.nEndPos)
|
||||
{
|
||||
++nCursor;
|
||||
- const EECharAttrib* pIntBackAttr = FindCharAttrib(nCursor, nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
- const EECharAttrib* pIntErrorAttr = FindCharAttrib(nCursor, nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ const EECharAttrib* pIntBackAttr = FindCharAttrib(nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
+ const EECharAttrib* pIntErrorAttr = FindCharAttrib(nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
//if any attr has been found then BRACE
|
||||
if (pIntBackAttr || pIntErrorAttr)
|
||||
nSelectionType = BRACE;
|
||||
@@ -1342,8 +1345,8 @@ bool SentenceEditWindow_Impl::KeyInput(const KeyEvent& rKeyEvt)
|
||||
if (nCursor)
|
||||
{
|
||||
--nCursor;
|
||||
- pBackAttrLeft = FindCharAttrib(nCursor, nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
- pErrorAttrLeft = FindCharAttrib(nCursor, nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ pBackAttrLeft = FindCharAttrib(nCursor, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
+ pErrorAttrLeft = FindCharAttrib(nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
bHasFieldLeft = pBackAttrLeft !=nullptr;
|
||||
bHasErrorLeft = pErrorAttrLeft != nullptr;
|
||||
++nCursor;
|
||||
@@ -1492,8 +1495,8 @@ bool SentenceEditWindow_Impl::KeyInput(const KeyEvent& rKeyEvt)
|
||||
//start position
|
||||
if (!IsUndoEditMode() && bIsErrorActive)
|
||||
{
|
||||
- const EECharAttrib* pFontColor = FindCharAttrib(nCursor, nCursor, EE_CHAR_COLOR, aAttribList);
|
||||
- const EECharAttrib* pErrorAttrib = FindCharAttrib(m_nErrorStart, m_nErrorStart, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ const EECharAttrib* pFontColor = FindCharAttrib(nCursor, EE_CHAR_COLOR, aAttribList);
|
||||
+ const EECharAttrib* pErrorAttrib = FindCharAttrib(m_nErrorStart, EE_CHAR_GRABBAG, aAttribList);
|
||||
if (pFontColor && pErrorAttrib)
|
||||
{
|
||||
m_nErrorStart = pFontColor->nStart;
|
||||
@@ -1695,7 +1698,7 @@ int SentenceEditWindow_Impl::ChangeMarkedWord(const OUString& rNewWord, Language
|
||||
auto nDiffLen = rNewWord.getLength() - m_nErrorEnd + m_nErrorStart;
|
||||
//Remove spell error attribute
|
||||
m_xEditEngine->UndoActionStart(SPELLUNDO_MOVE_ERROREND);
|
||||
- const EECharAttrib* pErrorAttrib = FindCharAttrib(m_nErrorStart, m_nErrorStart, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ const EECharAttrib* pErrorAttrib = FindCharAttrib(m_nErrorStart, EE_CHAR_GRABBAG, aAttribList);
|
||||
DBG_ASSERT(pErrorAttrib, "no error attribute found");
|
||||
bool bSpellErrorDescription = false;
|
||||
SpellErrorDescription aSpellErrorDescription;
|
||||
@@ -1706,7 +1709,7 @@ int SentenceEditWindow_Impl::ChangeMarkedWord(const OUString& rNewWord, Language
|
||||
bSpellErrorDescription = true;
|
||||
}
|
||||
|
||||
- const EECharAttrib* pBackAttrib = FindCharAttrib(m_nErrorStart, m_nErrorStart, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
+ const EECharAttrib* pBackAttrib = FindCharAttrib(m_nErrorStart, EE_CHAR_BKGCOLOR, aAttribList);
|
||||
|
||||
ESelection aSel(0, m_nErrorStart, 0, m_nErrorEnd);
|
||||
m_xEditEngine->QuickInsertText(rNewWord, aSel);
|
||||
@@ -1721,7 +1724,7 @@ int SentenceEditWindow_Impl::ChangeMarkedWord(const OUString& rNewWord, Language
|
||||
//attributes following an error at the start of the text are not moved but expanded from the
|
||||
//text engine - this is done to keep full-paragraph-attributes
|
||||
//in the current case that handling is not desired
|
||||
- const EECharAttrib* pLangAttrib = FindCharAttrib(m_nErrorEnd, m_nErrorEnd, EE_CHAR_LANGUAGE, aAttribList);
|
||||
+ const EECharAttrib* pLangAttrib = FindCharAttrib(m_nErrorEnd, EE_CHAR_LANGUAGE, aAttribList);
|
||||
|
||||
if (pLangAttrib && !pLangAttrib->nStart && pLangAttrib->nEnd == nTextLen)
|
||||
{
|
||||
@@ -1776,7 +1779,7 @@ bool SentenceEditWindow_Impl::GetErrorDescription(SpellErrorDescription& rSpellE
|
||||
std::vector<EECharAttrib> aAttribList;
|
||||
m_xEditEngine->GetCharAttribs(0, aAttribList);
|
||||
|
||||
- if (const EECharAttrib* pEECharAttrib = FindCharAttrib(nPosition, nPosition, EE_CHAR_GRABBAG, aAttribList))
|
||||
+ if (const EECharAttrib* pEECharAttrib = FindCharAttrib(nPosition, EE_CHAR_GRABBAG, aAttribList))
|
||||
{
|
||||
ExtractErrorDescription(*pEECharAttrib, rSpellErrorDescription);
|
||||
return true;
|
||||
@@ -1895,7 +1898,7 @@ svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
|
||||
const EECharAttrib* pError = nullptr;
|
||||
while (nCursor < nTextLen)
|
||||
{
|
||||
- const EECharAttrib* pLang = FindCharAttrib(nCursor, nCursor, EE_CHAR_LANGUAGE, aAttribList);
|
||||
+ const EECharAttrib* pLang = FindCharAttrib(nCursor, EE_CHAR_LANGUAGE, aAttribList);
|
||||
if(pLang && pLang != pLastLang)
|
||||
{
|
||||
eLang = static_cast<const SvxLanguageItem*>(pLang->pAttr)->GetLanguage();
|
||||
@@ -1903,7 +1906,7 @@ svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
|
||||
lcl_InsertBreakPosition_Impl(aBreakPositions, pLang->nEnd, eLang);
|
||||
pLastLang = pLang;
|
||||
}
|
||||
- pError = FindCharAttrib(nCursor, nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
+ pError = FindCharAttrib(nCursor, EE_CHAR_GRABBAG, aAttribList);
|
||||
if (pError && pLastError != pError)
|
||||
{
|
||||
lcl_InsertBreakPosition_Impl(aBreakPositions, pError->nStart, eLang);
|
||||
diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx
|
||||
index 089addc59c07..258fa945912c 100644
|
||||
--- a/editeng/inc/editdoc.hxx
|
||||
+++ b/editeng/inc/editdoc.hxx
|
||||
@@ -747,6 +747,7 @@ private:
|
||||
|
||||
bool bOwnerOfPool:1;
|
||||
bool bModified:1;
|
||||
+ bool bDisableAttributeExpanding:1;
|
||||
|
||||
private:
|
||||
void ImplDestroyContents();
|
||||
@@ -761,6 +762,8 @@ public:
|
||||
bool IsModified() const { return bModified; }
|
||||
void SetModified( bool b );
|
||||
|
||||
+ void DisableAttributeExpanding() { bDisableAttributeExpanding = true; }
|
||||
+
|
||||
void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) { aModifyHdl = rLink; }
|
||||
|
||||
void CreateDefFont( bool bUseStyles );
|
||||
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
|
||||
index 73a356054741..aacc0b2c7b6b 100644
|
||||
--- a/editeng/source/editeng/editdoc.cxx
|
||||
+++ b/editeng/source/editeng/editdoc.cxx
|
||||
@@ -1906,7 +1906,8 @@ EditDoc::EditDoc( SfxItemPool* pPool ) :
|
||||
bIsTopToBottomVert(false),
|
||||
bIsFixedCellHeight(false),
|
||||
bOwnerOfPool(pPool == nullptr),
|
||||
- bModified(false)
|
||||
+ bModified(false),
|
||||
+ bDisableAttributeExpanding(false)
|
||||
{
|
||||
// Don't create an empty node, Clear() will be called in EditEngine-CTOR
|
||||
};
|
||||
@@ -2354,6 +2355,15 @@ void EditDoc::InsertAttribInSelection( ContentNode* pNode, sal_Int32 nStart, sal
|
||||
|
||||
RemoveAttribs( pNode, nStart, nEnd, pStartingAttrib, pEndingAttrib, rPoolItem.Which() );
|
||||
|
||||
+ // tdf#132288 By default inserting an attribute beside another that is of
|
||||
+ // the same type expands the original instead of inserting another. But the
|
||||
+ // spell check dialog doesn't want that behaviour
|
||||
+ if (bDisableAttributeExpanding)
|
||||
+ {
|
||||
+ pStartingAttrib = nullptr;
|
||||
+ pEndingAttrib = nullptr;
|
||||
+ }
|
||||
+
|
||||
if ( pStartingAttrib && pEndingAttrib &&
|
||||
( *(pStartingAttrib->GetItem()) == rPoolItem ) &&
|
||||
( *(pEndingAttrib->GetItem()) == rPoolItem ) )
|
||||
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
|
||||
index 458f71b34d3f..f46106a5773c 100644
|
||||
--- a/editeng/source/editeng/editeng.cxx
|
||||
+++ b/editeng/source/editeng/editeng.cxx
|
||||
@@ -2802,6 +2802,10 @@ bool EditEngine::IsPageOverflow() {
|
||||
return pImpEditEngine->IsPageOverflow();
|
||||
}
|
||||
|
||||
+void EditEngine::DisableAttributeExpanding() {
|
||||
+ pImpEditEngine->GetEditDoc().DisableAttributeExpanding();
|
||||
+}
|
||||
+
|
||||
EFieldInfo::EFieldInfo()
|
||||
{
|
||||
}
|
||||
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
|
||||
index f585ce8b5796..7d4129c0ad0b 100644
|
||||
--- a/include/editeng/editeng.hxx
|
||||
+++ b/include/editeng/editeng.hxx
|
||||
@@ -618,6 +618,11 @@ public:
|
||||
sal_Int32 GetOverflowingLineNum() const;
|
||||
void ClearOverflowingParaNum();
|
||||
bool IsPageOverflow();
|
||||
+
|
||||
+ // tdf#132288 By default inserting an attribute beside another that is of
|
||||
+ // the same type expands the original instead of inserting another. But the
|
||||
+ // spell check dialog doesn't want that behaviour
|
||||
+ void DisableAttributeExpanding();
|
||||
};
|
||||
|
||||
#endif // INCLUDED_EDITENG_EDITENG_HXX
|
||||
--
|
||||
2.25.3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,340 @@ |
||||
From 54f42e1b75dd795f9d53dce181397f114eeae21b Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Tue, 28 Apr 2020 16:43:31 +0200
|
||||
Subject: [PATCH] Restructure solenv/bin/assemble-flatpak.sh
|
||||
|
||||
...so that parts of it can be reused by the Flatpak build done from Fedora RPMs
|
||||
(see <https://src.fedoraproject.org/flatpaks/libreoffice>). The reused parts
|
||||
are split out into solenv/bin/assemble-flatpak-*.sh files.
|
||||
|
||||
(I can't remember any specific reason why I added the <releases> section to the
|
||||
Flathub org.libreoffice.LibreOffice.appdata.xml; maybe just because the file
|
||||
format allows for it and it appeared easy to generate the section when writing
|
||||
the file. For the Fedora LO RPMs, none of the existing appdata.xml files
|
||||
contained such a section, and generating one for the Fedora Flatpak case would
|
||||
require obtaining values for those LIBO_VERSION_* variables, so I just added a
|
||||
switch to solenv/bin/assemble-flatpak-appdata-step1.sh allowing not to write
|
||||
that section at all. Splitting solenv/bin/assemble-flatpak-appdata.sh in two
|
||||
steps is necessary because the Fedora Flatpak case wants to replace the
|
||||
screenshots in the first part of the generated
|
||||
org.libreoffice.LibreOffice.appdata.xml, but not in the appended original
|
||||
appdata.xml files, so needs to hook in between those two steps.)
|
||||
|
||||
Change-Id: Ic527f3d88ccbee85e86dad3569b8e73776adf273
|
||||
---
|
||||
solenv/bin/assemble-flatpak-appdata-step1.sh | 96 +++++++++++++++++
|
||||
solenv/bin/assemble-flatpak-appdata-step2.sh | 26 +++++
|
||||
solenv/bin/assemble-flatpak-desktop.sh | 42 ++++++++
|
||||
solenv/bin/assemble-flatpak.sh | 102 +------------------
|
||||
4 files changed, 169 insertions(+), 97 deletions(-)
|
||||
create mode 100755 solenv/bin/assemble-flatpak-appdata-step1.sh
|
||||
create mode 100755 solenv/bin/assemble-flatpak-appdata-step2.sh
|
||||
create mode 100755 solenv/bin/assemble-flatpak-desktop.sh
|
||||
|
||||
diff --git a/solenv/bin/assemble-flatpak-appdata-step1.sh b/solenv/bin/assemble-flatpak-appdata-step1.sh
|
||||
new file mode 100755
|
||||
index 000000000000..4658dd45d018
|
||||
--- /dev/null
|
||||
+++ b/solenv/bin/assemble-flatpak-appdata-step1.sh
|
||||
@@ -0,0 +1,96 @@
|
||||
+#! /bin/bash
|
||||
+#
|
||||
+# This file is part of the LibreOffice project.
|
||||
+#
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+#
|
||||
+
|
||||
+# Part of solenv/bin/assemble-flatpak.sh that is shared with a downstream mechanism of building a
|
||||
+# Flatpak from a Fedora libreoffice.spec file.
|
||||
+#
|
||||
+# Arguments:
|
||||
+# $1 pathname, ending in a slash, of the directory into which to put the target
|
||||
+# org.libreoffice.LibreOffice.appdata.xml file
|
||||
+# $2 "1" if a <releases> section shall be included in the target
|
||||
+# org.libreoffice.LibreOffice.appdata.xml file, "0" if not
|
||||
+
|
||||
+set -e
|
||||
+
|
||||
+## org.libreoffice.LibreOffice.appdata.xml is manually derived from the various
|
||||
+## inst/share/appdata/libreoffice-*.appdata.xml (at least recent GNOME Software
|
||||
+## doesn't show more than five screenshots anyway, so restrict to one each from
|
||||
+## the five libreoffice-*.appdata.xml: Writer, Calc, Impress, Draw, Base):
|
||||
+cat <<\EOF >"${1?}"org.libreoffice.LibreOffice.appdata.xml
|
||||
+<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<component type="desktop">
|
||||
+ <id>org.libreoffice.LibreOffice.desktop</id>
|
||||
+ <metadata_license>CC0-1.0</metadata_license>
|
||||
+ <project_license>MPL-2.0</project_license>
|
||||
+ <name>LibreOffice</name>
|
||||
+ <summary>The LibreOffice productivity suite</summary>
|
||||
+ <description>
|
||||
+ <p>LibreOffice is a powerful office suite. Its clean interface and
|
||||
+ feature-rich tools help you unleash your creativity and enhance your
|
||||
+ productivity. LibreOffice includes several applications that make it the most
|
||||
+ powerful Free and Open Source office suite on the market: Writer (word
|
||||
+ processing), Calc (spreadsheets), Impress (presentations), Draw (vector
|
||||
+ graphics and flowcharts), Base (databases), and Math (formula editing).</p>
|
||||
+ <p>LibreOffice supports opening and saving into a wide variety of formats, so
|
||||
+ you can easily share documents with users of other popular office suites
|
||||
+ without worrying about compatibility.</p>
|
||||
+ </description>
|
||||
+ <url type="homepage">http://www.libreoffice.org/discover/libreoffice/</url>
|
||||
+ <url type="bugtracker">https://bugs.documentfoundation.org/</url>
|
||||
+ <url type="donation">https://donate.libreoffice.org/</url>
|
||||
+ <url type="faq">https://wiki.documentfoundation.org/Faq</url>
|
||||
+ <url type="help">http://www.libreoffice.org/get-help/documentation/</url>
|
||||
+ <url type="translate">https://wiki.documentfoundation.org/Translating_LibreOffice</url>
|
||||
+ <screenshots>
|
||||
+ <screenshot type="default">
|
||||
+ <image>https://hub.libreoffice.org/screenshots/writer-01.png</image>
|
||||
+ <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://hub.libreoffice.org/screenshots/calc-02.png</image>
|
||||
+ <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://hub.libreoffice.org/screenshots/impress-01.png</image>
|
||||
+ <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://hub.libreoffice.org/screenshots/draw-02.png</image>
|
||||
+ <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://hub.libreoffice.org/screenshots/base-02.png</image>
|
||||
+ <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
+ </screenshot>
|
||||
+ </screenshots>
|
||||
+ <developer_name>The Document Foundation</developer_name>
|
||||
+ <update_contact>libreoffice_at_lists.freedesktop.org</update_contact>
|
||||
+ <kudos>
|
||||
+ <kudo>HiDpiIcon</kudo>
|
||||
+ <kudo>HighContrast</kudo>
|
||||
+ <kudo>ModernToolkit</kudo>
|
||||
+ <kudo>UserDocs</kudo>
|
||||
+ </kudos>
|
||||
+ <content_rating type="oars-1.0"/>
|
||||
+EOF
|
||||
+
|
||||
+if [ "${2?}" = 1 ]
|
||||
+then
|
||||
+ cat <<EOF >>"${1?}"org.libreoffice.LibreOffice.appdata.xml
|
||||
+ <releases>
|
||||
+ <release
|
||||
+ version="${LIBO_VERSION_MAJOR?}.${LIBO_VERSION_MINOR?}.${LIBO_VERSION_MICRO?}.${LIBO_VERSION_PATCH?}"
|
||||
+ date="$(date +%Y-%m-%d)"/>
|
||||
+ </releases>
|
||||
+EOF
|
||||
+fi
|
||||
+
|
||||
+cat <<\EOF >>"${1?}"org.libreoffice.LibreOffice.appdata.xml
|
||||
+</component>
|
||||
+EOF
|
||||
diff --git a/solenv/bin/assemble-flatpak-appdata-step2.sh b/solenv/bin/assemble-flatpak-appdata-step2.sh
|
||||
new file mode 100755
|
||||
index 000000000000..4f06e6b19148
|
||||
--- /dev/null
|
||||
+++ b/solenv/bin/assemble-flatpak-appdata-step2.sh
|
||||
@@ -0,0 +1,26 @@
|
||||
+#! /bin/bash
|
||||
+#
|
||||
+# This file is part of the LibreOffice project.
|
||||
+#
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+#
|
||||
+
|
||||
+# Part of solenv/bin/assemble-flatpak.sh that is shared with a downstream mechanism of building a
|
||||
+# Flatpak from a Fedora libreoffice.spec file.
|
||||
+#
|
||||
+# Arguments:
|
||||
+# $1 pathname, ending in a slash, of the directory containing the source libreoffice-*.appdata.xml
|
||||
+# files
|
||||
+# $2 pathname, ending in a slash, of the directory containing the target
|
||||
+# org.libreoffice.LibreOffice.appdata.xml file
|
||||
+
|
||||
+set -e
|
||||
+
|
||||
+# append the appdata for the different components
|
||||
+for i in "${1?}"libreoffice-*.appdata.xml
|
||||
+do
|
||||
+ sed "1 d; s/<id>libreoffice-/<id>org.libreoffice.LibreOffice./" "$i" \
|
||||
+ >>"${2?}"org.libreoffice.LibreOffice.appdata.xml
|
||||
+done
|
||||
diff --git a/solenv/bin/assemble-flatpak-desktop.sh b/solenv/bin/assemble-flatpak-desktop.sh
|
||||
new file mode 100755
|
||||
index 000000000000..6d06de4fbbbe
|
||||
--- /dev/null
|
||||
+++ b/solenv/bin/assemble-flatpak-desktop.sh
|
||||
@@ -0,0 +1,42 @@
|
||||
+#! /bin/bash
|
||||
+#
|
||||
+# This file is part of the LibreOffice project.
|
||||
+#
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+#
|
||||
+
|
||||
+# Part of solenv/bin/assemble-flatpak.sh that is shared with a downstream mechanism of building a
|
||||
+# Flatpak from a Fedora libreoffice.spec file.
|
||||
+#
|
||||
+# Arguments:
|
||||
+# $1 pathname, ending in a slash, of the directory containing the source libreoffice-*.desktop
|
||||
+# files
|
||||
+# $2 pathname, ending in a slash, of the directory into which to put the target
|
||||
+# org.libreoffice.LibreOffice.*.desktop files
|
||||
+
|
||||
+set -e
|
||||
+
|
||||
+## libreoffice-*.desktop -> org.libreoffice.LibreOffice.*.desktop:
|
||||
+for i in "${1?}"libreoffice-*.desktop
|
||||
+do
|
||||
+ sed -e 's/^Icon=libreoffice-/Icon=org.libreoffice.LibreOffice./' "$i" \
|
||||
+ >"${2?}"org.libreoffice.LibreOffice."${i#"${1?}"libreoffice-}"
|
||||
+done
|
||||
+mv "${2?}"org.libreoffice.LibreOffice.startcenter.desktop "${2?}"org.libreoffice.LibreOffice.desktop
|
||||
+
|
||||
+# Flatpak .desktop exports take precedence over system ones due to
|
||||
+# the order of XDG_DATA_DIRS - re-associating text/plain seems a bit much
|
||||
+sed -i "s/text\/plain;//" "${2?}"org.libreoffice.LibreOffice.writer.desktop
|
||||
+
|
||||
+desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-startcenter \
|
||||
+ --set-key=X-Flatpak-RenamedFrom --set-value='libreoffice-startcenter.desktop;' \
|
||||
+ "${2?}"org.libreoffice.LibreOffice.desktop
|
||||
+for i in base calc draw impress math writer xsltfilter
|
||||
+do
|
||||
+ desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-"$i" \
|
||||
+ --set-key=X-Flatpak-RenamedFrom \
|
||||
+ --set-value="libreoffice-$i.desktop;org.libreoffice.LibreOffice-$i.desktop;" \
|
||||
+ "${2?}"org.libreoffice.LibreOffice."$i".desktop
|
||||
+done
|
||||
diff --git a/solenv/bin/assemble-flatpak.sh b/solenv/bin/assemble-flatpak.sh
|
||||
index 0738fcd59ad2..8ca5bcf08c41 100755
|
||||
--- a/solenv/bin/assemble-flatpak.sh
|
||||
+++ b/solenv/bin/assemble-flatpak.sh
|
||||
@@ -16,30 +16,9 @@ set -e
|
||||
cp -r "${PREFIXDIR?}"/lib/libreoffice /app/
|
||||
ln -s /app/libreoffice/program/soffice /app/bin/libreoffice
|
||||
|
||||
-## libreoffice-*.desktop -> org.libreoffice.LibreOffice.*.desktop:
|
||||
mkdir -p /app/share/applications
|
||||
-for i in "${PREFIXDIR?}"/share/applications/libreoffice-*.desktop
|
||||
-do
|
||||
- sed -e 's/^Icon=libreoffice-/Icon=org.libreoffice.LibreOffice./' "$i" \
|
||||
- >/app/share/applications/org.libreoffice.LibreOffice."${i#"${PREFIXDIR?}"/share/applications/libreoffice-}"
|
||||
-done
|
||||
-mv /app/share/applications/org.libreoffice.LibreOffice.startcenter.desktop \
|
||||
- /app/share/applications/org.libreoffice.LibreOffice.desktop
|
||||
-
|
||||
-# Flatpak .desktop exports take precedence over system ones due to
|
||||
-# the order of XDG_DATA_DIRS - re-associating text/plain seems a bit much
|
||||
-sed -i "s/text\/plain;//" /app/share/applications/org.libreoffice.LibreOffice.writer.desktop
|
||||
-
|
||||
-desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-startcenter \
|
||||
- --set-key=X-Flatpak-RenamedFrom --set-value='libreoffice-startcenter.desktop;' \
|
||||
- /app/share/applications/org.libreoffice.LibreOffice.desktop
|
||||
-for i in base calc draw impress math writer xsltfilter
|
||||
-do
|
||||
- desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-"$i" \
|
||||
- --set-key=X-Flatpak-RenamedFrom \
|
||||
- --set-value="libreoffice-$i.desktop;org.libreoffice.LibreOffice-$i.desktop;" \
|
||||
- /app/share/applications/org.libreoffice.LibreOffice."$i".desktop
|
||||
-done
|
||||
+"${SRCDIR?}"/solenv/bin/assemble-flatpak-desktop.sh "${PREFIXDIR?}"/share/applications/ \
|
||||
+ /app/share/applications/
|
||||
|
||||
## icons/hicolor/*/apps/libreoffice-* ->
|
||||
## icons/hicolor/*/apps/org.libreoffice.LibreOffice-*:
|
||||
@@ -82,81 +61,10 @@ do
|
||||
ln -rs /app/share/runtime/locale/"${lang}"/registry/"${basename}".xcd "${i}"
|
||||
done
|
||||
|
||||
-## org.libreoffice.LibreOffice.appdata.xml is manually derived from the various
|
||||
-## inst/share/appdata/libreoffice-*.appdata.xml (at least recent GNOME Software
|
||||
-## doesn't show more than five screenshots anyway, so restrict to one each from
|
||||
-## the five libreoffice-*.appdata.xml: Writer, Calc, Impress, Draw, Base):
|
||||
mkdir -p /app/share/appdata
|
||||
-cat <<EOF >/app/share/appdata/org.libreoffice.LibreOffice.appdata.xml
|
||||
-<?xml version="1.0" encoding="UTF-8"?>
|
||||
-<component type="desktop">
|
||||
- <id>org.libreoffice.LibreOffice.desktop</id>
|
||||
- <metadata_license>CC0-1.0</metadata_license>
|
||||
- <project_license>MPL-2.0</project_license>
|
||||
- <name>LibreOffice</name>
|
||||
- <summary>The LibreOffice productivity suite</summary>
|
||||
- <description>
|
||||
- <p>LibreOffice is a powerful office suite. Its clean interface and
|
||||
- feature-rich tools help you unleash your creativity and enhance your
|
||||
- productivity. LibreOffice includes several applications that make it the most
|
||||
- powerful Free and Open Source office suite on the market: Writer (word
|
||||
- processing), Calc (spreadsheets), Impress (presentations), Draw (vector
|
||||
- graphics and flowcharts), Base (databases), and Math (formula editing).</p>
|
||||
- <p>LibreOffice supports opening and saving into a wide variety of formats, so
|
||||
- you can easily share documents with users of other popular office suites
|
||||
- without worrying about compatibility.</p>
|
||||
- </description>
|
||||
- <url type="homepage">http://www.libreoffice.org/discover/libreoffice/</url>
|
||||
- <url type="bugtracker">https://bugs.documentfoundation.org/</url>
|
||||
- <url type="donation">https://donate.libreoffice.org/</url>
|
||||
- <url type="faq">https://wiki.documentfoundation.org/Faq</url>
|
||||
- <url type="help">http://www.libreoffice.org/get-help/documentation/</url>
|
||||
- <url type="translate">https://wiki.documentfoundation.org/Translating_LibreOffice</url>
|
||||
- <screenshots>
|
||||
- <screenshot type="default">
|
||||
- <image>https://hub.libreoffice.org/screenshots/writer-01.png</image>
|
||||
- <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
- </screenshot>
|
||||
- <screenshot>
|
||||
- <image>https://hub.libreoffice.org/screenshots/calc-02.png</image>
|
||||
- <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
- </screenshot>
|
||||
- <screenshot>
|
||||
- <image>https://hub.libreoffice.org/screenshots/impress-01.png</image>
|
||||
- <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
- </screenshot>
|
||||
- <screenshot>
|
||||
- <image>https://hub.libreoffice.org/screenshots/draw-02.png</image>
|
||||
- <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
- </screenshot>
|
||||
- <screenshot>
|
||||
- <image>https://hub.libreoffice.org/screenshots/base-02.png</image>
|
||||
- <caption><!-- Describe this screenshot in less than ~10 words --></caption>
|
||||
- </screenshot>
|
||||
- </screenshots>
|
||||
- <developer_name>The Document Foundation</developer_name>
|
||||
- <update_contact>libreoffice_at_lists.freedesktop.org</update_contact>
|
||||
- <kudos>
|
||||
- <kudo>HiDpiIcon</kudo>
|
||||
- <kudo>HighContrast</kudo>
|
||||
- <kudo>ModernToolkit</kudo>
|
||||
- <kudo>UserDocs</kudo>
|
||||
- </kudos>
|
||||
- <content_rating type="oars-1.0"/>
|
||||
- <releases>
|
||||
- <release
|
||||
- version="${LIBO_VERSION_MAJOR?}.${LIBO_VERSION_MINOR?}.${LIBO_VERSION_MICRO?}.${LIBO_VERSION_PATCH?}"
|
||||
- date="$(date +%Y-%m-%d)"/>
|
||||
- </releases>
|
||||
-</component>
|
||||
-EOF
|
||||
-
|
||||
-# append the appdata for the different components
|
||||
-for i in "${PREFIXDIR?}"/share/appdata/libreoffice-*.appdata.xml
|
||||
-do
|
||||
- sed "1 d; s/<id>libreoffice-/<id>org.libreoffice.LibreOffice./" "$i" \
|
||||
- >>/app/share/appdata/org.libreoffice.LibreOffice.appdata.xml
|
||||
-done
|
||||
+"${SRCDIR?}"/solenv/bin/assemble-flatpak-appdata-step1.sh /app/share/appdata/ 1
|
||||
+"${SRCDIR?}"/solenv/bin/assemble-flatpak-appdata-step2.sh "${PREFIXDIR?}"/share/appdata/ \
|
||||
+ /app/share/appdata/
|
||||
|
||||
## see <https://github.com/flatpak/flatpak/blob/master/app/
|
||||
## flatpak-builtins-build-finish.c> for further places where build-finish would
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,150 @@ |
||||
From d7ed56975a828eac321959e4510ee14560847b1f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 28 Oct 2020 14:25:11 +0000
|
||||
Subject: [PATCH] Revert "tdf#69060: lock refreshing font data when loading a
|
||||
document"
|
||||
|
||||
This reverts commit 98d71c4e0847797a4ba9229a8e6d832a8a3d5e0f.
|
||||
---
|
||||
include/vcl/outdev.hxx | 3 ---
|
||||
include/vcl/svapp.hxx | 11 -----------
|
||||
sfx2/source/doc/objstor.cxx | 4 ----
|
||||
vcl/inc/svdata.hxx | 3 ---
|
||||
vcl/source/app/svapp.cxx | 5 -----
|
||||
vcl/source/outdev/font.cxx | 32 +-------------------------------
|
||||
6 files changed, 1 insertion(+), 57 deletions(-)
|
||||
|
||||
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
|
||||
index cd3c84d13305..55b466b42464 100644
|
||||
--- a/include/vcl/outdev.hxx
|
||||
+++ b/include/vcl/outdev.hxx
|
||||
@@ -1278,9 +1278,6 @@ public:
|
||||
//If bNewFontLists is true then drop and refetch lists of system fonts
|
||||
SAL_DLLPRIVATE static void ImplUpdateAllFontData( bool bNewFontLists );
|
||||
|
||||
- // Lock font updates for all output devices
|
||||
- static void LockFontUpdates(bool bLock);
|
||||
-
|
||||
protected:
|
||||
SAL_DLLPRIVATE const LogicalFontInstance* GetFontInstance() const;
|
||||
SAL_DLLPRIVATE long GetEmphasisAscent() const { return mnEmphasisAscent; }
|
||||
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
|
||||
index 16b8015b923a..4f7b9d6def31 100644
|
||||
--- a/include/vcl/svapp.hxx
|
||||
+++ b/include/vcl/svapp.hxx
|
||||
@@ -1326,17 +1326,6 @@ public:
|
||||
|
||||
///@}
|
||||
|
||||
- /** Lock font updates for all output devices
|
||||
-
|
||||
- @remark When performing operations that might involve multiple registration of fonts, such as
|
||||
- opening/closing documents with multiple embedded fonts, then each font addition/removal
|
||||
- might cause an event that initiates a rebuild of each OutputDevice's font lists.
|
||||
-
|
||||
- Locking font updates disables processing such events, and unlocking causes a single such
|
||||
- processing for all OutputDevices.
|
||||
- */
|
||||
- static void LockFontUpdates(bool bLock);
|
||||
-
|
||||
// For vclbootstrapprotector:
|
||||
static void setDeInitHook(Link<LinkParamNone*,void> const & hook);
|
||||
|
||||
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
|
||||
index 6d7b3f99ee69..ac9f4242a1bc 100644
|
||||
--- a/sfx2/source/doc/objstor.cxx
|
||||
+++ b/sfx2/source/doc/objstor.cxx
|
||||
@@ -582,10 +582,6 @@ bool SfxObjectShell::ImportFromGeneratedStream_Impl(
|
||||
bool SfxObjectShell::DoLoad( SfxMedium *pMed )
|
||||
{
|
||||
ModifyBlocker_Impl aBlock( this );
|
||||
- struct FontLockGuard {
|
||||
- FontLockGuard() { Application::LockFontUpdates(true); }
|
||||
- ~FontLockGuard() { Application::LockFontUpdates(false); }
|
||||
- } aFontLockGuard;
|
||||
|
||||
pMedium = pMed;
|
||||
pMedium->CanDisposeStorage_Impl( true );
|
||||
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
|
||||
index e41ec23488b3..dc10f3102ede 100644
|
||||
--- a/vcl/inc/svdata.hxx
|
||||
+++ b/vcl/inc/svdata.hxx
|
||||
@@ -338,9 +338,6 @@ struct ImplSVData
|
||||
VclPtr<WorkWindow> mpDefaultWin; // Default-Window
|
||||
bool mbDeInit = false; // Is VCL deinitializing
|
||||
std::unique_ptr<SalSystem> mpSalSystem; // SalSystem interface
|
||||
- int mnFontUpdatesLockCount = 0; // avoid repeated font updates
|
||||
- bool mbFontUpdatesPending = false; // need to update font data after unlock
|
||||
- bool mbFontUpdatesNewLists = false; // generate new font lists
|
||||
bool mbResLocaleSet = false; // SV-Resource-Manager
|
||||
std::locale maResLocale; // Resource locale
|
||||
ImplSchedulerContext maSchedCtx; // indepen data for class Scheduler
|
||||
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
|
||||
index c4c3be9699e3..de4eac9687fc 100644
|
||||
--- a/vcl/source/app/svapp.cxx
|
||||
+++ b/vcl/source/app/svapp.cxx
|
||||
@@ -1036,11 +1036,6 @@ void Application::RemoveUserEvent( ImplSVEvent * nUserEvent )
|
||||
}
|
||||
}
|
||||
|
||||
-void Application::LockFontUpdates(bool bLock)
|
||||
-{
|
||||
- OutputDevice::LockFontUpdates(bLock);
|
||||
-}
|
||||
-
|
||||
WorkWindow* Application::GetAppWindow()
|
||||
{
|
||||
return ImplGetSVData()->maWinData.mpAppWin;
|
||||
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
|
||||
index 22c61063bd21..e1fd7d107e63 100644
|
||||
--- a/vcl/source/outdev/font.cxx
|
||||
+++ b/vcl/source/outdev/font.cxx
|
||||
@@ -559,16 +559,7 @@ void OutputDevice::ImplClearAllFontData(bool bNewFontLists)
|
||||
|
||||
void OutputDevice::ImplRefreshAllFontData(bool bNewFontLists)
|
||||
{
|
||||
- auto svdata = ImplGetSVData();
|
||||
- DBG_TESTSOLARMUTEX();
|
||||
- if (!svdata->mnFontUpdatesLockCount)
|
||||
- ImplUpdateFontDataForAllFrames(&OutputDevice::ImplRefreshFontData, bNewFontLists);
|
||||
- else
|
||||
- {
|
||||
- svdata->mbFontUpdatesPending = true;
|
||||
- if (bNewFontLists)
|
||||
- svdata->mbFontUpdatesNewLists = true;
|
||||
- }
|
||||
+ ImplUpdateFontDataForAllFrames( &OutputDevice::ImplRefreshFontData, bNewFontLists );
|
||||
}
|
||||
|
||||
void OutputDevice::ImplUpdateAllFontData(bool bNewFontLists)
|
||||
@@ -614,27 +605,6 @@ void OutputDevice::ImplUpdateFontDataForAllFrames( const FontUpdateHandler_t pHd
|
||||
}
|
||||
}
|
||||
|
||||
-void OutputDevice::LockFontUpdates(bool bLock)
|
||||
-{
|
||||
- auto svdata = ImplGetSVData();
|
||||
- DBG_TESTSOLARMUTEX();
|
||||
- if (bLock)
|
||||
- {
|
||||
- ++svdata->mnFontUpdatesLockCount;
|
||||
- }
|
||||
- else if (svdata->mnFontUpdatesLockCount > 0)
|
||||
- {
|
||||
- --svdata->mnFontUpdatesLockCount;
|
||||
- if (!svdata->mnFontUpdatesLockCount && svdata->mbFontUpdatesPending)
|
||||
- {
|
||||
- ImplRefreshAllFontData(svdata->mbFontUpdatesNewLists);
|
||||
-
|
||||
- svdata->mbFontUpdatesPending = false;
|
||||
- svdata->mbFontUpdatesNewLists = false;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
void OutputDevice::BeginFontSubstitution()
|
||||
{
|
||||
ImplSVData* pSVData = ImplGetSVData();
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,64 @@ |
||||
From 13aba101eadfe4f67a930ac7231d26ece658bbec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Mon, 28 Sep 2020 14:55:47 +0100
|
||||
Subject: [PATCH] export HYPERLINK target in html clipboard export
|
||||
|
||||
Change-Id: Ia77e4bd8a5b54636d0e9e561360128202a81420b
|
||||
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103557
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Eike Rathke <erack@redhat.com>
|
||||
---
|
||||
sc/source/filter/html/htmlexp.cxx | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
|
||||
index 6122c9b6c45c..13792201c8b0 100644
|
||||
--- a/sc/source/filter/html/htmlexp.cxx
|
||||
+++ b/sc/source/filter/html/htmlexp.cxx
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <sfx2/docfile.hxx>
|
||||
#include <sfx2/frmhtmlw.hxx>
|
||||
#include <sfx2/objsh.hxx>
|
||||
+#include <svl/stritem.hxx>
|
||||
#include <svl/urihelper.hxx>
|
||||
#include <svtools/htmlkywd.hxx>
|
||||
#include <svtools/htmlout.hxx>
|
||||
@@ -1127,6 +1128,26 @@ void ScHTMLExport::WriteCell( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SC
|
||||
TAG_ON(aStr.makeStringAndClear().getStr());
|
||||
}
|
||||
|
||||
+ OUString aURL;
|
||||
+ bool bWriteHyperLink(false);
|
||||
+ if (aCell.meType == CELLTYPE_FORMULA)
|
||||
+ {
|
||||
+ ScFormulaCell* pFCell = aCell.mpFormula;
|
||||
+ if (pFCell->IsHyperLinkCell())
|
||||
+ {
|
||||
+ OUString aCellText;
|
||||
+ pFCell->GetURLResult(aURL, aCellText);
|
||||
+ bWriteHyperLink = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (bWriteHyperLink)
|
||||
+ {
|
||||
+ OString aURLStr = HTMLOutFuncs::ConvertStringToHTML(aURL, eDestEnc, &aNonConvertibleChars);
|
||||
+ OString aStr = OOO_STRING_SVTOOLS_HTML_anchor " " OOO_STRING_SVTOOLS_HTML_O_href "=\"" + aURLStr + "\"";
|
||||
+ TAG_ON(aStr.getStr());
|
||||
+ }
|
||||
+
|
||||
OUString aStrOut;
|
||||
bool bFieldText = false;
|
||||
|
||||
@@ -1174,6 +1195,8 @@ void ScHTMLExport::WriteCell( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SC
|
||||
if ( pGraphEntry )
|
||||
WriteGraphEntry( pGraphEntry );
|
||||
|
||||
+ if (bWriteHyperLink) { TAG_OFF(OOO_STRING_SVTOOLS_HTML_anchor); }
|
||||
+
|
||||
if ( bSetFont ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_font );
|
||||
if ( bCrossedOut ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_strikethrough );
|
||||
if ( bUnderline ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_underline );
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,40 @@ |
||||
From ddf72365b7e7c67b2580e328e55de6eb988b8787 Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Vignaud <thierry.vignaud@gmail.com>
|
||||
Date: Thu, 30 Jan 2020 11:19:20 +0000
|
||||
Subject: [PATCH] fix detecting qrcodegen
|
||||
|
||||
Change-Id: Ib945b57420083489273cefc5655eb50932b5a3f8
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
cui/source/dialogs/QrCodeGenDialog.cxx | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 388bee3..c061349 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -10092,7 +10092,7 @@ else
|
||||
AC_MSG_RESULT([external])
|
||||
SYSTEM_QRCODEGEN=TRUE
|
||||
AC_LANG_PUSH([C++])
|
||||
- AC_CHECK_HEADER(qrcodegen/QrCode.hpp, [],
|
||||
+ AC_CHECK_HEADER(qrcodegencpp/QrCode.hpp, [],
|
||||
[AC_MSG_ERROR(qrcodegen headers not found.)], [#include <stdexcept>])
|
||||
AC_CHECK_LIB([qrcodegencpp], [main], [:],
|
||||
[ AC_MSG_ERROR(qrcodegen C++ library not found.) ], [])
|
||||
diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx
|
||||
index 6277e76..f8dd327 100644
|
||||
--- a/cui/source/dialogs/QrCodeGenDialog.cxx
|
||||
+++ b/cui/source/dialogs/QrCodeGenDialog.cxx
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#if ENABLE_QRCODEGEN
|
||||
#if defined(SYSTEM_QRCODEGEN)
|
||||
-#include <qrcodegen/QrCode.hpp>
|
||||
+#include <qrcodegencpp/QrCode.hpp>
|
||||
#else
|
||||
#include <QrCode.hpp>
|
||||
#endif
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,48 +0,0 @@ |
||||
From 5d101a65c31e6c2f8dd0edffe05f69055cbd481c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Mon, 11 May 2020 20:46:43 +0100
|
||||
Subject: [PATCH] limit forms to http[s]
|
||||
|
||||
Change-Id: I3ed0bc626f693ec03f610dc7361f93cad914c9d8
|
||||
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93993
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
||||
---
|
||||
forms/source/xforms/submission.cxx | 3 +++
|
||||
forms/source/xforms/submission/submission.hxx | 6 ++++++
|
||||
2 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/forms/source/xforms/submission.cxx b/forms/source/xforms/submission.cxx
|
||||
index f20b72f11973..7e8517e89481 100644
|
||||
--- a/forms/source/xforms/submission.cxx
|
||||
+++ b/forms/source/xforms/submission.cxx
|
||||
@@ -253,6 +253,9 @@ bool Submission::doSubmit( const Reference< XInteractionHandler >& xHandler )
|
||||
return false;
|
||||
}
|
||||
|
||||
+ if (!xSubmission->IsWebProtocol())
|
||||
+ return false;
|
||||
+
|
||||
CSubmission::SubmissionResult aResult = xSubmission->submit( xHandler );
|
||||
|
||||
if (aResult == CSubmission::SUCCESS)
|
||||
diff --git a/forms/source/xforms/submission/submission.hxx b/forms/source/xforms/submission/submission.hxx
|
||||
index 77d59b1f740e..a459f471ba0d 100644
|
||||
--- a/forms/source/xforms/submission/submission.hxx
|
||||
+++ b/forms/source/xforms/submission/submission.hxx
|
||||
@@ -126,6 +126,12 @@ public:
|
||||
, m_xContext(::comphelper::getProcessComponentContext())
|
||||
{}
|
||||
|
||||
+ bool IsWebProtocol() const
|
||||
+ {
|
||||
+ INetProtocol eProtocol = m_aURLObj.GetProtocol();
|
||||
+ return eProtocol == INetProtocol::Http || eProtocol == INetProtocol::Https;
|
||||
+ }
|
||||
+
|
||||
virtual ~CSubmission() {}
|
||||
|
||||
virtual SubmissionResult submit(const css::uno::Reference< css::task::XInteractionHandler >& ) = 0;
|
||||
--
|
||||
2.25.4
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,26 @@ |
||||
From 06b19641b0eac7b7992fae861eb4807397c9aee4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 28 Oct 2020 10:03:23 +0000
|
||||
Subject: [PATCH] replace 'Palatino Linotype' with 'Liberation Serif'
|
||||
|
||||
for consistent font replacement
|
||||
|
||||
Change-Id: I3c124c0adcab8ac2dd7f989c2fa5c97182e32b64
|
||||
---
|
||||
sw/qa/extras/layout/data/forcepoint75-1.rtf | Bin 88740 -> 88738 bytes
|
||||
1 file changed, 0 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/sw/qa/extras/layout/data/forcepoint75-1.rtf b/sw/qa/extras/layout/data/forcepoint75-1.rtf
|
||||
index 01a52963757d8568e5ae8b80b7767c924c37a407..263a585c57e162caf1c9f9dd3aee4f3d8aa3edd2 100644
|
||||
GIT binary patch
|
||||
delta 85
|
||||
zcmZ3om37fp)(y#wVm_HksYQt;nfZAN!Kp==Y1XyXF=>XA=QD{5pi50&#At*e*!+}n
|
||||
M`%^~7{Sk~@09cV9Z2$lO
|
||||
|
||||
delta 104
|
||||
zcmZ3qm37Hh)(y#w_5q1Gi6xnN`3gQjqNK7Q)w;GiCe1J=ttdY?F)t>$Al)D)Ejc5x
|
||||
ds5rI6KmkMb<OPgIf*7LBj~KT<Vr1MO0RTX3C};ox
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,110 @@ |
||||
From 193b49763a03d63ba79db50c1fa0563ec0d6b0c3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 29 Jan 2020 12:44:52 +0000
|
||||
Subject: [PATCH] replace boost::bimap in sdext pdfimport
|
||||
|
||||
Change-Id: Ie324a0b81931bbd427483878a87beeca455ada18
|
||||
---
|
||||
sdext/source/pdfimport/inc/pdfiprocessor.hxx | 12 ++++-------
|
||||
sdext/source/pdfimport/tree/pdfiprocessor.cxx | 21 +++++++++++--------
|
||||
2 files changed, 16 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/sdext/source/pdfimport/inc/pdfiprocessor.hxx b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
|
||||
index 89f9d601b7b0..9e08d6a6a765 100644
|
||||
--- a/sdext/source/pdfimport/inc/pdfiprocessor.hxx
|
||||
+++ b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
|
||||
@@ -37,9 +37,6 @@
|
||||
#include "treevisitorfactory.hxx"
|
||||
#include "genericelements.hxx"
|
||||
|
||||
-#include <boost/bimap/bimap.hpp>
|
||||
-#include <boost/bimap/unordered_set_of.hpp>
|
||||
-
|
||||
namespace pdfi
|
||||
{
|
||||
|
||||
@@ -160,10 +157,8 @@ namespace pdfi
|
||||
typedef std::unordered_map<sal_Int32,FontAttributes> IdToFontMap;
|
||||
typedef std::unordered_map<FontAttributes,sal_Int32,FontAttrHash> FontToIdMap;
|
||||
|
||||
- typedef boost::bimaps::bimap<
|
||||
- boost::bimaps::unordered_set_of<GraphicsContext, GraphicsContextHash>,
|
||||
- boost::bimaps::unordered_set_of<sal_Int32>
|
||||
- > GCToIdBiMap;
|
||||
+ typedef std::unordered_map<sal_Int32,GraphicsContext> IdToGCMap;
|
||||
+ typedef std::unordered_map<GraphicsContext, sal_Int32, GraphicsContextHash> GCToIdMap;
|
||||
|
||||
typedef std::vector<GraphicsContext> GraphicsContextStack;
|
||||
|
||||
@@ -178,7 +173,8 @@ namespace pdfi
|
||||
|
||||
GraphicsContextStack m_aGCStack;
|
||||
sal_Int32 m_nNextGCId;
|
||||
- GCToIdBiMap m_aGCToId;
|
||||
+ IdToGCMap m_aIdToGC;
|
||||
+ GCToIdMap m_aGCToId;
|
||||
|
||||
ImageContainer m_aImages;
|
||||
|
||||
diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
|
||||
index c6baa7fee8b2..ed2eaf6510b9 100644
|
||||
--- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx
|
||||
+++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
|
||||
@@ -54,6 +54,7 @@ namespace pdfi
|
||||
m_aFontToId(),
|
||||
m_aGCStack(),
|
||||
m_nNextGCId( 1 ),
|
||||
+ m_aIdToGC(),
|
||||
m_aGCToId(),
|
||||
m_aImages(),
|
||||
m_nPages(0),
|
||||
@@ -65,12 +66,13 @@ namespace pdfi
|
||||
aDefFont.isBold = false;
|
||||